PuttyTools.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //---------------------------------------------------------------------------
  2. #ifndef PuttyToolsH
  3. #define PuttyToolsH
  4. //---------------------------------------------------------------------------
  5. enum TKeyType
  6. {
  7. ktUnopenable, ktUnknown,
  8. ktSSH1, ktSSH2,
  9. ktOpenSSHAuto, ktOpenSSHPEM, ktOpenSSHNew, ktSSHCom,
  10. ktSSH1Public, ktSSH2PublicRFC4716, ktSSH2PublicOpenSSH
  11. };
  12. TKeyType KeyType(UnicodeString FileName);
  13. bool IsKeyEncrypted(TKeyType KeyType, const UnicodeString & FileName, UnicodeString & Comment);
  14. struct TPrivateKey;
  15. TPrivateKey * LoadKey(TKeyType KeyType, const UnicodeString & FileName, const UnicodeString & Passphrase);
  16. void ChangeKeyComment(TPrivateKey * PrivateKey, const UnicodeString & Comment);
  17. void SaveKey(TKeyType KeyType, const UnicodeString & FileName,
  18. const UnicodeString & Passphrase, TPrivateKey * PrivateKey);
  19. void FreeKey(TPrivateKey * PrivateKey);
  20. UnicodeString GetPublicKeyLine(const UnicodeString & FileName, UnicodeString & Comment);
  21. extern const UnicodeString PuttyKeyExt;
  22. //---------------------------------------------------------------------------
  23. bool __fastcall HasGSSAPI(UnicodeString CustomPath);
  24. //---------------------------------------------------------------------------
  25. void __fastcall AES256EncodeWithMAC(char * Data, size_t Len, const char * Password,
  26. size_t PasswordLen, const char * Salt);
  27. //---------------------------------------------------------------------------
  28. void __fastcall NormalizeFingerprint(UnicodeString & Fingerprint, UnicodeString & KeyName);
  29. UnicodeString __fastcall KeyTypeFromFingerprint(UnicodeString Fingerprint);
  30. //---------------------------------------------------------------------------
  31. UnicodeString __fastcall GetPuTTYVersion();
  32. //---------------------------------------------------------------------------
  33. UnicodeString __fastcall Sha256(const char * Data, size_t Size);
  34. //---------------------------------------------------------------------------
  35. void __fastcall DllHijackingProtection();
  36. //---------------------------------------------------------------------------
  37. UnicodeString __fastcall ParseOpenSshPubLine(const UnicodeString & Line, const struct ssh_keyalg *& Algorithm);
  38. //---------------------------------------------------------------------------
  39. UnicodeString __fastcall GetKeyTypeHuman(const UnicodeString & KeyType);
  40. //---------------------------------------------------------------------------
  41. bool IsOpenSSH(const UnicodeString & SshImplementation);
  42. //---------------------------------------------------------------------------
  43. TStrings * SshCipherList();
  44. TStrings * SshKexList();
  45. TStrings * SshHostKeyList();
  46. TStrings * SshMacList();
  47. //---------------------------------------------------------------------------
  48. class TSessionData;
  49. void SaveAsPutty(const UnicodeString & Name, TSessionData * Data);
  50. class THierarchicalStorage;
  51. void WritePuttySettings(THierarchicalStorage * Storage, const UnicodeString & Settings);
  52. void SavePuttyDefaults(const UnicodeString & Name);
  53. //---------------------------------------------------------------------------
  54. bool RandomSeedExists();
  55. //---------------------------------------------------------------------------
  56. #endif