| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | //---------------------------------------------------------------------------#ifndef PuttyToolsH#define PuttyToolsH//---------------------------------------------------------------------------#include <SessionData.h>//---------------------------------------------------------------------------enum TKeyType{  ktUnopenable, ktUnknown,  ktSSH1, ktSSH2,  ktOpenSSHAuto, ktOpenSSHPEM, ktOpenSSHNew, ktSSHCom,  ktSSH1Public, ktSSH2PublicRFC4716, ktSSH2PublicOpenSSH};TKeyType KeyType(UnicodeString FileName);bool IsKeyEncrypted(TKeyType KeyType, const UnicodeString & FileName, UnicodeString & Comment);struct TPrivateKey;TPrivateKey * LoadKey(TKeyType KeyType, const UnicodeString & FileName, const UnicodeString & Passphrase);UnicodeString TestKey(TKeyType KeyType, const UnicodeString & FileName);void ChangeKeyComment(TPrivateKey * PrivateKey, const UnicodeString & Comment);void AddCertificateToKey(TPrivateKey * PrivateKey, const UnicodeString & CertificateFileName);void SaveKey(TKeyType KeyType, const UnicodeString & FileName,  const UnicodeString & Passphrase, TPrivateKey * PrivateKey);void FreeKey(TPrivateKey * PrivateKey);RawByteString LoadPublicKey(  const UnicodeString & FileName, UnicodeString & Algorithm, UnicodeString & Comment, bool & HasCertificate);UnicodeString GetPublicKeyLine(const UnicodeString & FileName, UnicodeString & Comment, bool & HasCertificate);extern const UnicodeString PuttyKeyExt;//---------------------------------------------------------------------------bool __fastcall HasGSSAPI(UnicodeString CustomPath);//---------------------------------------------------------------------------void __fastcall AES256EncodeWithMAC(char * Data, size_t Len, const char * Password,  size_t PasswordLen, const char * Salt);//---------------------------------------------------------------------------void __fastcall NormalizeFingerprint(UnicodeString & Fingerprint, UnicodeString & KeyName);UnicodeString __fastcall KeyTypeFromFingerprint(UnicodeString Fingerprint);//---------------------------------------------------------------------------UnicodeString __fastcall GetPuTTYVersion();//---------------------------------------------------------------------------UnicodeString __fastcall Sha256(const char * Data, size_t Size);UnicodeString CalculateFileChecksum(TStream * Stream, const UnicodeString & Alg);//---------------------------------------------------------------------------UnicodeString __fastcall ParseOpenSshPubLine(const UnicodeString & Line, const struct ssh_keyalg *& Algorithm);void ParseCertificatePublicKey(const UnicodeString & Str, RawByteString & PublicKey, UnicodeString & Fingerprint);bool IsCertificateValidityExpressionValid(  const UnicodeString & Str, UnicodeString & Error, int & ErrorStart, int & ErrorLen);//---------------------------------------------------------------------------bool IsOpenSSH(const UnicodeString & SshImplementation);//---------------------------------------------------------------------------TStrings * SshCipherList();TStrings * SshKexList();int HostKeyToPutty(THostKey HostKey);TStrings * SshHostKeyList();TStrings * SshMacList();//---------------------------------------------------------------------------class TSessionData;void SaveAsPutty(const UnicodeString & Name, TSessionData * Data);class THierarchicalStorage;void WritePuttySettings(THierarchicalStorage * Storage, const UnicodeString & Settings);void SavePuttyDefaults(const UnicodeString & Name);//---------------------------------------------------------------------------bool RandomSeedExists();//---------------------------------------------------------------------------#endif
 |