| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836 | 
							- //---------------------------------------------------------------------------
 
- #ifndef SessionDataH
 
- #define SessionDataH
 
- #include "Common.h"
 
- #include "Option.h"
 
- #include "FileBuffer.h"
 
- #include "NamedObjs.h"
 
- #include "HierarchicalStorage.h"
 
- #include "Configuration.h"
 
- #include <Xml.XMLIntf.hpp>
 
- //---------------------------------------------------------------------------
 
- enum TCipher { cipWarn, cip3DES, cipBlowfish, cipAES, cipDES, cipArcfour, cipChaCha20, cipAESGCM, cipCount };
 
- #define CIPHER_COUNT (cipCount)
 
- // explicit values to skip obsoleted fsExternalSSH, fsExternalSFTP
 
- enum TFSProtocol { fsSCPonly = 0, fsSFTP = 1, fsSFTPonly = 2, fsFTP = 5, fsWebDAV = 6, fsS3 = 7 };
 
- #define FSPROTOCOL_COUNT (fsS3+1)
 
- extern const wchar_t * ProxyMethodNames;
 
- enum TProxyMethod { pmNone, pmSocks4, pmSocks5, pmHTTP, pmTelnet, pmCmd };
 
- enum TKex { kexWarn, kexDHGroup1, kexDHGroup14, kexDHGroup15, kexDHGroup16, kexDHGroup17, kexDHGroup18, kexDHGEx, kexRSA, kexECDH, kexNTRUHybrid, kexCount };
 
- #define KEX_COUNT (kexCount)
 
- enum THostKey { hkWarn, hkRSA, hkDSA, hkECDSA, hkED25519, hkED448, hkCount };
 
- #define HOSTKEY_COUNT (hkCount)
 
- enum TGssLib { gssGssApi32, gssSspi, gssCustom };
 
- #define GSSLIB_COUNT (gssCustom+1)
 
- // names have to match PuTTY registry entries (see settings.c)
 
- enum TSshBug { sbHMAC2, sbDeriveKey2, sbRSAPad2,
 
-   sbPKSessID2, sbRekey2, sbMaxPkt2, sbIgnore2, sbOldGex2, sbWinAdj, sbChanReq };
 
- #define BUG_COUNT (sbChanReq+1)
 
- enum TSftpBug { sbSymlink, sbSignedTS };
 
- #define SFTP_BUG_COUNT (sbSignedTS+1)
 
- extern const wchar_t * PingTypeNames;
 
- enum TPingType { ptOff, ptNullPacket, ptDummyCommand };
 
- extern const wchar_t * FtpPingTypeNames;
 
- enum TFtpPingType { fptOff, fptDummyCommand0, fptDummyCommand, fptDirectoryListing };
 
- enum TAddressFamily { afAuto, afIPv4, afIPv6 };
 
- enum TFtps { ftpsNone, ftpsImplicit, ftpsExplicitSsl, ftpsExplicitTls };
 
- // ssl2 and ssh3 are equivalent of tls10 now
 
- enum TTlsVersion { ssl2 = 2, ssl3 = 3, tls10 = 10, tls11 = 11, tls12 = 12, tls13 = 13, tlsMin = tls10, tlsDefaultMin = tls12, tlsMax = tls13 };
 
- // has to match libs3 S3UriStyle
 
- enum TS3UrlStyle { s3usVirtualHost, s3usPath };
 
- enum TSessionSource { ssNone, ssStored, ssStoredModified };
 
- enum TSessionUrlFlags
 
- {
 
-   sufSpecific = 0x01,
 
-   sufUserName = 0x02,
 
-   sufPassword = 0x04,
 
-   sufHostKey = 0x08,
 
-   sufRawSettings = 0x10,
 
-   sufHttpForWebDAV = 0x20,
 
-   sufSession = sufUserName | sufPassword | sufHostKey,
 
-   sufComplete = sufSession | sufRawSettings,
 
-   sufOpen = sufUserName | sufPassword
 
- };
 
- enum TParseUrlFlags
 
- {
 
-   pufAllowStoredSiteWithProtocol = 0x01,
 
-   pufUnsafe = 0x02,
 
-   pufPreferProtocol = 0x04,
 
-   pufParseOnly = 0x08,
 
- };
 
- //---------------------------------------------------------------------------
 
- extern const UnicodeString CipherNames[CIPHER_COUNT];
 
- extern const UnicodeString KexNames[KEX_COUNT];
 
- extern const UnicodeString HostKeyNames[HOSTKEY_COUNT];
 
- extern const UnicodeString GssLibNames[GSSLIB_COUNT];
 
- extern const wchar_t SshProtList[][10];
 
- extern const TCipher DefaultCipherList[CIPHER_COUNT];
 
- extern const TKex DefaultKexList[KEX_COUNT];
 
- extern const THostKey DefaultHostKeyList[HOSTKEY_COUNT];
 
- extern const TGssLib DefaultGssLibList[GSSLIB_COUNT];
 
- extern const wchar_t FSProtocolNames[FSPROTOCOL_COUNT][16];
 
- extern const int DefaultSendBuf;
 
- extern const UnicodeString AnonymousUserName;
 
- extern const UnicodeString AnonymousPassword;
 
- extern const int SshPortNumber;
 
- extern const int FtpPortNumber;
 
- extern const int FtpsImplicitPortNumber;
 
- extern const int HTTPPortNumber;
 
- extern const int HTTPSPortNumber;
 
- extern const int TelnetPortNumber;
 
- extern const int ProxyPortNumber;
 
- extern const UnicodeString PuttySshProtocol;
 
- extern const UnicodeString PuttyTelnetProtocol;
 
- extern const UnicodeString SftpProtocol;
 
- extern const UnicodeString ScpProtocol;
 
- extern const UnicodeString FtpProtocol;
 
- extern const UnicodeString FtpsProtocol;
 
- extern const UnicodeString FtpesProtocol;
 
- extern const UnicodeString WebDAVProtocol;
 
- extern const UnicodeString WebDAVSProtocol;
 
- extern const UnicodeString S3Protocol;
 
- extern const UnicodeString SshProtocol;
 
- extern const UnicodeString WinSCPProtocolPrefix;
 
- extern const wchar_t UrlParamSeparator;
 
- extern const wchar_t UrlParamValueSeparator;
 
- extern const UnicodeString UrlHostKeyParamName;
 
- extern const UnicodeString UrlSaveParamName;
 
- extern const UnicodeString PassphraseOption;
 
- extern const UnicodeString S3HostName;
 
- extern const UnicodeString S3GoogleCloudHostName;
 
- //---------------------------------------------------------------------------
 
- class TStoredSessionList;
 
- //---------------------------------------------------------------------------
 
- class TSessionData : public TNamedObject
 
- {
 
- friend class TStoredSessionList;
 
- private:
 
-   UnicodeString FHostName;
 
-   int FPortNumber;
 
-   UnicodeString FUserName;
 
-   RawByteString FPassword;
 
-   RawByteString FNewPassword;
 
-   bool FChangePassword;
 
-   int FPingInterval;
 
-   TPingType FPingType;
 
-   bool FTryAgent;
 
-   bool FAgentFwd;
 
-   UnicodeString FListingCommand;
 
-   bool FAuthKI;
 
-   bool FAuthKIPassword;
 
-   bool FAuthGSSAPI;
 
-   bool FAuthGSSAPIKEX;
 
-   bool FGSSAPIFwdTGT;
 
-   bool FChangeUsername;
 
-   bool FCompression;
 
-   bool FSsh2DES;
 
-   bool FSshNoUserAuth;
 
-   TCipher FCiphers[CIPHER_COUNT];
 
-   TKex FKex[KEX_COUNT];
 
-   THostKey FHostKeys[HOSTKEY_COUNT];
 
-   TGssLib FGssLib[GSSLIB_COUNT];
 
-   UnicodeString FGssLibCustom;
 
-   bool FClearAliases;
 
-   TEOLType FEOLType;
 
-   bool FTrimVMSVersions;
 
-   bool FVMSAllRevisions;
 
-   UnicodeString FPublicKeyFile;
 
-   UnicodeString FPassphrase;
 
-   UnicodeString FDetachedCertificate;
 
-   UnicodeString FPuttyProtocol;
 
-   TFSProtocol FFSProtocol;
 
-   bool FModified;
 
-   UnicodeString FLocalDirectory;
 
-   UnicodeString FRemoteDirectory;
 
-   UnicodeString FOtherLocalDirectory;
 
-   bool FSpecial;
 
-   bool FSynchronizeBrowsing;
 
-   bool FUpdateDirectories;
 
-   bool FRequireDirectories;
 
-   bool FCacheDirectories;
 
-   bool FCacheDirectoryChanges;
 
-   bool FPreserveDirectoryChanges;
 
-   bool FSelected;
 
-   TAutoSwitch FLookupUserGroups;
 
-   UnicodeString FReturnVar;
 
-   bool FExitCode1IsError;
 
-   bool FScp1Compatibility;
 
-   UnicodeString FShell;
 
-   UnicodeString FSftpServer;
 
-   int FTimeout;
 
-   bool FUnsetNationalVars;
 
-   bool FIgnoreLsWarnings;
 
-   bool FTcpNoDelay;
 
-   int FSendBuf;
 
-   UnicodeString FSourceAddress;
 
-   UnicodeString FProtocolFeatures;
 
-   bool FSshSimple;
 
-   TProxyMethod FProxyMethod;
 
-   UnicodeString FProxyHost;
 
-   int FProxyPort;
 
-   UnicodeString FProxyUsername;
 
-   RawByteString FProxyPassword;
 
-   UnicodeString FProxyTelnetCommand;
 
-   UnicodeString FProxyLocalCommand;
 
-   TAutoSwitch FProxyDNS;
 
-   bool FProxyLocalhost;
 
-   int FFtpProxyLogonType;
 
-   TAutoSwitch FBugs[BUG_COUNT];
 
-   UnicodeString FPuttySettings;
 
-   UnicodeString FCustomParam1;
 
-   UnicodeString FCustomParam2;
 
-   bool FResolveSymlinks;
 
-   bool FFollowDirectorySymlinks;
 
-   TDateTime FTimeDifference;
 
-   bool FTimeDifferenceAuto;
 
-   int FSFTPDownloadQueue;
 
-   int FSFTPUploadQueue;
 
-   int FSFTPListingQueue;
 
-   int FSFTPMaxVersion;
 
-   unsigned long FSFTPMaxPacketSize;
 
-   TAutoSwitch FSFTPRealPath;
 
-   bool FUsePosixRename;
 
-   TDSTMode FDSTMode;
 
-   TAutoSwitch FSFTPBugs[SFTP_BUG_COUNT];
 
-   bool FDeleteToRecycleBin;
 
-   bool FOverwrittenToRecycleBin;
 
-   UnicodeString FRecycleBinPath;
 
-   UnicodeString FPostLoginCommands;
 
-   TAutoSwitch FSCPLsFullTime;
 
-   TAutoSwitch FFtpListAll;
 
-   TAutoSwitch FFtpHost;
 
-   TAutoSwitch FFtpWorkFromCwd;
 
-   bool FFtpAnyCodeForPwd;
 
-   bool FSslSessionReuse;
 
-   UnicodeString FTlsCertificateFile;
 
-   TAddressFamily FAddressFamily;
 
-   UnicodeString FRekeyData;
 
-   unsigned int FRekeyTime;
 
-   int FColor;
 
-   bool FTunnel;
 
-   UnicodeString FTunnelHostName;
 
-   int FTunnelPortNumber;
 
-   UnicodeString FTunnelUserName;
 
-   RawByteString FTunnelPassword;
 
-   UnicodeString FTunnelPublicKeyFile;
 
-   RawByteString FTunnelPassphrase;
 
-   int FTunnelLocalPortNumber;
 
-   UnicodeString FTunnelPortFwd;
 
-   UnicodeString FTunnelHostKey;
 
-   bool FFtpPasvMode;
 
-   TAutoSwitch FFtpForcePasvIp;
 
-   TAutoSwitch FFtpUseMlsd;
 
-   UnicodeString FFtpAccount;
 
-   int FFtpPingInterval;
 
-   TFtpPingType FFtpPingType;
 
-   TAutoSwitch FFtpTransferActiveImmediately;
 
-   TFtps FFtps;
 
-   TTlsVersion FMinTlsVersion;
 
-   TTlsVersion FMaxTlsVersion;
 
-   TAutoSwitch FCompleteTlsShutdown;
 
-   TAutoSwitch FNotUtf;
 
-   int FInternalEditorEncoding;
 
-   UnicodeString FS3DefaultRegion;
 
-   UnicodeString FS3SessionToken;
 
-   UnicodeString FS3RoleArn;
 
-   UnicodeString FS3RoleSessionName;
 
-   UnicodeString FS3Profile;
 
-   TS3UrlStyle FS3UrlStyle;
 
-   TAutoSwitch FS3MaxKeys;
 
-   bool FS3CredentialsEnv;
 
-   bool FS3RequesterPays;
 
-   bool FIsWorkspace;
 
-   UnicodeString FLink;
 
-   UnicodeString FNameOverride;
 
-   UnicodeString FHostKey;
 
-   bool FFingerprintScan;
 
-   bool FOverrideCachedHostKey;
 
-   UnicodeString FNote;
 
-   UnicodeString FWinTitle;
 
-   RawByteString FEncryptKey;
 
-   bool FWebDavLiberalEscaping;
 
-   bool FWebDavAuthLegacy;
 
-   UnicodeString FOrigHostName;
 
-   int FOrigPortNumber;
 
-   TProxyMethod FOrigProxyMethod;
 
-   TSessionSource FSource;
 
-   bool FSaveOnly;
 
-   UnicodeString FLogicalHostName;
 
-   void __fastcall SetHostName(UnicodeString value);
 
-   UnicodeString __fastcall GetHostNameExpanded();
 
-   UnicodeString GetHostNameSource();
 
-   void __fastcall SetPortNumber(int value);
 
-   void __fastcall SetUserName(UnicodeString value);
 
-   UnicodeString __fastcall GetUserNameExpanded();
 
-   UnicodeString GetUserNameSource();
 
-   void __fastcall SetPassword(UnicodeString value);
 
-   UnicodeString __fastcall GetPassword() const;
 
-   void __fastcall SetNewPassword(UnicodeString value);
 
-   UnicodeString __fastcall GetNewPassword() const;
 
-   void __fastcall SetChangePassword(bool value);
 
-   void __fastcall SetPingInterval(int value);
 
-   void __fastcall SetTryAgent(bool value);
 
-   void __fastcall SetAgentFwd(bool value);
 
-   void __fastcall SetAuthKI(bool value);
 
-   void __fastcall SetAuthKIPassword(bool value);
 
-   void __fastcall SetAuthGSSAPI(bool value);
 
-   void __fastcall SetAuthGSSAPIKEX(bool value);
 
-   void __fastcall SetGSSAPIFwdTGT(bool value);
 
-   void __fastcall SetChangeUsername(bool value);
 
-   void __fastcall SetCompression(bool value);
 
-   void __fastcall SetSsh2DES(bool value);
 
-   void __fastcall SetSshNoUserAuth(bool value);
 
-   void __fastcall SetCipher(int Index, TCipher value);
 
-   TCipher __fastcall GetCipher(int Index) const;
 
-   void __fastcall SetKex(int Index, TKex value);
 
-   TKex __fastcall GetKex(int Index) const;
 
-   void __fastcall SetHostKeys(int Index, THostKey value);
 
-   THostKey __fastcall GetHostKeys(int Index) const;
 
-   void __fastcall SetGssLib(int Index, TGssLib value);
 
-   TGssLib __fastcall GetGssLib(int Index) const;
 
-   void __fastcall SetGssLibCustom(UnicodeString value);
 
-   void __fastcall SetPublicKeyFile(UnicodeString value);
 
-   UnicodeString __fastcall GetPassphrase() const;
 
-   void __fastcall SetPassphrase(UnicodeString value);
 
-   void __fastcall SetDetachedCertificate(UnicodeString value);
 
-   void __fastcall SetPuttyProtocol(UnicodeString value);
 
-   bool __fastcall GetCanLogin();
 
-   bool __fastcall GetCanOpen();
 
-   bool __fastcall GetIsLocalBrowser();
 
-   void __fastcall SetPingIntervalDT(TDateTime value);
 
-   TDateTime __fastcall GetPingIntervalDT();
 
-   TDateTime __fastcall GetFtpPingIntervalDT();
 
-   void __fastcall SetTimeDifference(TDateTime value);
 
-   void __fastcall SetTimeDifferenceAuto(bool value);
 
-   void __fastcall SetPingType(TPingType value);
 
-   UnicodeString __fastcall GetSessionName();
 
-   UnicodeString __fastcall GetDefaultSessionName();
 
-   UnicodeString __fastcall GetProtocolUrl(bool HttpForWebDAV);
 
-   void __fastcall SetFSProtocol(TFSProtocol value);
 
-   UnicodeString __fastcall GetFSProtocolStr();
 
-   void __fastcall SetLocalDirectory(UnicodeString value);
 
-   void __fastcall SetOtherLocalDirectory(const UnicodeString & value);
 
-   UnicodeString __fastcall GetLocalDirectoryExpanded();
 
-   void __fastcall SetRemoteDirectory(UnicodeString value);
 
-   void __fastcall SetSynchronizeBrowsing(bool value);
 
-   void __fastcall SetUpdateDirectories(bool value);
 
-   void __fastcall SetCacheDirectories(bool value);
 
-   void __fastcall SetCacheDirectoryChanges(bool value);
 
-   void __fastcall SetPreserveDirectoryChanges(bool value);
 
-   void __fastcall SetSpecial(bool value);
 
-   UnicodeString __fastcall GetInfoTip();
 
-   bool __fastcall GetDefaultShell();
 
-   void __fastcall SetDetectReturnVar(bool value);
 
-   bool __fastcall GetDetectReturnVar();
 
-   void __fastcall SetListingCommand(UnicodeString value);
 
-   void __fastcall SetClearAliases(bool value);
 
-   void __fastcall SetDefaultShell(bool value);
 
-   void __fastcall SetEOLType(TEOLType value);
 
-   void __fastcall SetTrimVMSVersions(bool value);
 
-   void __fastcall SetVMSAllRevisions(bool value);
 
-   void __fastcall SetLookupUserGroups(TAutoSwitch value);
 
-   void __fastcall SetReturnVar(UnicodeString value);
 
-   void __fastcall SetExitCode1IsError(bool value);
 
-   void __fastcall SetScp1Compatibility(bool value);
 
-   void __fastcall SetShell(UnicodeString value);
 
-   void __fastcall SetSftpServer(UnicodeString value);
 
-   void __fastcall SetTimeout(int value);
 
-   void __fastcall SetUnsetNationalVars(bool value);
 
-   void __fastcall SetIgnoreLsWarnings(bool value);
 
-   void __fastcall SetTcpNoDelay(bool value);
 
-   void __fastcall SetSendBuf(int value);
 
-   void __fastcall SetSourceAddress(const UnicodeString & value);
 
-   void __fastcall SetProtocolFeatures(const UnicodeString & value);
 
-   void __fastcall SetSshSimple(bool value);
 
-   bool __fastcall GetUsesSsh();
 
-   void __fastcall SetCipherList(UnicodeString value);
 
-   UnicodeString __fastcall GetCipherList() const;
 
-   void __fastcall SetKexList(UnicodeString value);
 
-   UnicodeString __fastcall GetKexList() const;
 
-   void __fastcall SetHostKeyList(UnicodeString value);
 
-   UnicodeString __fastcall GetHostKeyList() const;
 
-   void __fastcall SetGssLibList(UnicodeString value);
 
-   UnicodeString __fastcall GetGssLibList() const;
 
-   void __fastcall SetProxyMethod(TProxyMethod value);
 
-   void __fastcall SetProxyHost(UnicodeString value);
 
-   void __fastcall SetProxyPort(int value);
 
-   void __fastcall SetProxyUsername(UnicodeString value);
 
-   void __fastcall SetProxyPassword(UnicodeString value);
 
-   void __fastcall SetProxyTelnetCommand(UnicodeString value);
 
-   void __fastcall SetProxyLocalCommand(UnicodeString value);
 
-   void __fastcall SetProxyDNS(TAutoSwitch value);
 
-   void __fastcall SetProxyLocalhost(bool value);
 
-   UnicodeString __fastcall GetProxyPassword() const;
 
-   void __fastcall SetFtpProxyLogonType(int value);
 
-   void __fastcall SetBug(TSshBug Bug, TAutoSwitch value);
 
-   TAutoSwitch __fastcall GetBug(TSshBug Bug) const;
 
-   UnicodeString __fastcall GetSessionKey();
 
-   void __fastcall SetPuttySettings(UnicodeString value);
 
-   void __fastcall SetCustomParam1(UnicodeString value);
 
-   void __fastcall SetCustomParam2(UnicodeString value);
 
-   void __fastcall SetResolveSymlinks(bool value);
 
-   void __fastcall SetFollowDirectorySymlinks(bool value);
 
-   void __fastcall SetSFTPDownloadQueue(int value);
 
-   void __fastcall SetSFTPUploadQueue(int value);
 
-   void __fastcall SetSFTPListingQueue(int value);
 
-   void __fastcall SetSFTPMaxVersion(int value);
 
-   void __fastcall SetSFTPMaxPacketSize(unsigned long value);
 
-   void __fastcall SetSFTPRealPath(TAutoSwitch value);
 
-   void SetUsePosixRename(bool value);
 
-   void __fastcall SetSFTPBug(TSftpBug Bug, TAutoSwitch value);
 
-   TAutoSwitch __fastcall GetSFTPBug(TSftpBug Bug) const;
 
-   void __fastcall SetSCPLsFullTime(TAutoSwitch value);
 
-   void __fastcall SetFtpListAll(TAutoSwitch value);
 
-   void __fastcall SetFtpHost(TAutoSwitch value);
 
-   void __fastcall SetFtpWorkFromCwd(TAutoSwitch value);
 
-   void SetFtpAnyCodeForPwd(bool value);
 
-   void __fastcall SetSslSessionReuse(bool value);
 
-   void __fastcall SetTlsCertificateFile(UnicodeString value);
 
-   UnicodeString __fastcall GetStorageKey();
 
-   UnicodeString __fastcall GetInternalStorageKey();
 
-   UnicodeString __fastcall GetSiteKey();
 
-   void __fastcall SetDSTMode(TDSTMode value);
 
-   void __fastcall SetDeleteToRecycleBin(bool value);
 
-   void __fastcall SetOverwrittenToRecycleBin(bool value);
 
-   void __fastcall SetRecycleBinPath(UnicodeString value);
 
-   void __fastcall SetPostLoginCommands(UnicodeString value);
 
-   void __fastcall SetAddressFamily(TAddressFamily value);
 
-   void __fastcall SetRekeyData(UnicodeString value);
 
-   void __fastcall SetRekeyTime(unsigned int value);
 
-   void __fastcall SetColor(int value);
 
-   void __fastcall SetTunnel(bool value);
 
-   void __fastcall SetTunnelHostName(UnicodeString value);
 
-   void __fastcall SetTunnelPortNumber(int value);
 
-   void __fastcall SetTunnelUserName(UnicodeString value);
 
-   void __fastcall SetTunnelPassword(UnicodeString value);
 
-   UnicodeString __fastcall GetTunnelPassword() const;
 
-   void __fastcall SetTunnelPublicKeyFile(UnicodeString value);
 
-   void __fastcall SetTunnelPassphrase(UnicodeString value);
 
-   UnicodeString __fastcall GetTunnelPassphrase() const;
 
-   void __fastcall SetTunnelPortFwd(UnicodeString value);
 
-   void __fastcall SetTunnelLocalPortNumber(int value);
 
-   bool __fastcall GetTunnelAutoassignLocalPortNumber();
 
-   void __fastcall SetTunnelHostKey(UnicodeString value);
 
-   void __fastcall SetFtpPasvMode(bool value);
 
-   void __fastcall SetFtpForcePasvIp(TAutoSwitch value);
 
-   void __fastcall SetFtpUseMlsd(TAutoSwitch value);
 
-   void __fastcall SetFtpAccount(UnicodeString value);
 
-   void __fastcall SetFtpPingInterval(int value);
 
-   void __fastcall SetFtpPingType(TFtpPingType value);
 
-   void __fastcall SetFtpTransferActiveImmediately(TAutoSwitch value);
 
-   void __fastcall SetFtps(TFtps value);
 
-   void __fastcall SetMinTlsVersion(TTlsVersion value);
 
-   void __fastcall SetMaxTlsVersion(TTlsVersion value);
 
-   void SetCompleteTlsShutdown(TAutoSwitch value);
 
-   void __fastcall SetNotUtf(TAutoSwitch value);
 
-   void __fastcall SetInternalEditorEncoding(int value);
 
-   void __fastcall SetS3DefaultRegion(UnicodeString value);
 
-   void __fastcall SetS3SessionToken(UnicodeString value);
 
-   void __fastcall SetS3RoleArn(UnicodeString value);
 
-   void __fastcall SetS3RoleSessionName(UnicodeString value);
 
-   void __fastcall SetS3Profile(UnicodeString value);
 
-   void __fastcall SetS3UrlStyle(TS3UrlStyle value);
 
-   void __fastcall SetS3MaxKeys(TAutoSwitch value);
 
-   void __fastcall SetS3CredentialsEnv(bool value);
 
-   void __fastcall SetS3RequesterPays(bool value);
 
-   void __fastcall SetLogicalHostName(UnicodeString value);
 
-   void __fastcall SetIsWorkspace(bool value);
 
-   void __fastcall SetLink(UnicodeString value);
 
-   void __fastcall SetNameOverride(UnicodeString value);
 
-   void __fastcall SetHostKey(UnicodeString value);
 
-   void __fastcall SetNote(UnicodeString value);
 
-   void __fastcall SetWinTitle(UnicodeString value);
 
-   UnicodeString __fastcall GetEncryptKey() const;
 
-   void __fastcall SetEncryptKey(UnicodeString value);
 
-   void __fastcall SetWebDavLiberalEscaping(bool value);
 
-   void __fastcall SetWebDavAuthLegacy(bool value);
 
-   TDateTime __fastcall GetTimeoutDT();
 
-   void __fastcall SavePasswords(THierarchicalStorage * Storage, bool PuttyExport, bool DoNotEncryptPasswords, bool SaveAll);
 
-   UnicodeString __fastcall GetLocalName();
 
-   UnicodeString __fastcall GetFolderName();
 
-   void __fastcall Modify();
 
-   UnicodeString __fastcall GetSourceName();
 
-   void __fastcall DoLoad(THierarchicalStorage * Storage, bool PuttyImport, bool & RewritePassword, bool Unsafe, bool RespectDisablePasswordStoring);
 
-   void __fastcall DoSave(THierarchicalStorage * Storage,
 
-     bool PuttyExport, const TSessionData * Default, bool DoNotEncryptPasswords);
 
-   UnicodeString __fastcall ReadXmlNode(_di_IXMLNode Node, const UnicodeString & Name, const UnicodeString & Default);
 
-   int __fastcall ReadXmlNode(_di_IXMLNode Node, const UnicodeString & Name, int Default);
 
-   _di_IXMLNode __fastcall FindSettingsNode(_di_IXMLNode Node, const UnicodeString & Name);
 
-   UnicodeString __fastcall ReadSettingsNode(_di_IXMLNode Node, const UnicodeString & Name, const UnicodeString & Default);
 
-   int __fastcall ReadSettingsNode(_di_IXMLNode Node, const UnicodeString & Name, int Default);
 
-   bool __fastcall IsSame(const TSessionData * Default, bool AdvancedOnly, TStrings * DifferentProperties, bool Decrypted);
 
-   UnicodeString __fastcall GetNameWithoutHiddenPrefix();
 
-   bool __fastcall HasStateData();
 
-   void __fastcall CopyStateData(TSessionData * SourceData);
 
-   void __fastcall CopyNonCoreData(TSessionData * SourceData);
 
-   UnicodeString __fastcall GetNormalizedPuttyProtocol() const;
 
-   void ReadPasswordsFromFiles();
 
-   static RawByteString __fastcall EncryptPassword(const UnicodeString & Password, UnicodeString Key);
 
-   static UnicodeString __fastcall DecryptPassword(const RawByteString & Password, UnicodeString Key);
 
-   static RawByteString __fastcall StronglyRecryptPassword(const RawByteString & Password, UnicodeString Key);
 
-   static bool __fastcall DoIsProtocolUrl(const UnicodeString & Url, const UnicodeString & Protocol, int & ProtocolLen);
 
-   static bool __fastcall IsProtocolUrl(const UnicodeString & Url, const UnicodeString & Protocol, int & ProtocolLen);
 
-   static void __fastcall AddSwitch(UnicodeString & Result, const UnicodeString & Name, bool Rtf);
 
-   static void __fastcall AddSwitch(
 
-     UnicodeString & Result, const UnicodeString & Name, const UnicodeString & Value, bool Rtf);
 
-   static void __fastcall AddSwitch(UnicodeString & Result, const UnicodeString & Name, int Value, bool Rtf);
 
-   static void __fastcall AddAssemblyProperty(
 
-     UnicodeString & Result, TAssemblyLanguage Language,
 
-     const UnicodeString & Name, const UnicodeString & Value);
 
-   static void __fastcall AddAssemblyProperty(
 
-     UnicodeString & Result, TAssemblyLanguage Language,
 
-     const UnicodeString & Name, const UnicodeString & Type,
 
-     const UnicodeString & Member);
 
-   static void __fastcall AddAssemblyProperty(
 
-     UnicodeString & Result, TAssemblyLanguage Language,
 
-     const UnicodeString & Name, int Value);
 
-   void __fastcall AddAssemblyProperty(
 
-     UnicodeString & Result, TAssemblyLanguage Language,
 
-     const UnicodeString & Name, bool Value);
 
-   TStrings * __fastcall GetRawSettingsForUrl();
 
-   void __fastcall DoCopyData(TSessionData * SourceData, bool NoRecrypt);
 
-   bool HasS3AutoCredentials();
 
-   template<class AlgoT>
 
-   void __fastcall SetAlgoList(AlgoT * List, const AlgoT * DefaultList, const UnicodeString * Names,
 
-     int Count, AlgoT WarnAlgo, UnicodeString value);
 
-   static void __fastcall Remove(THierarchicalStorage * Storage, const UnicodeString & Name);
 
-   __property UnicodeString InternalStorageKey = { read = GetInternalStorageKey };
 
- public:
 
-   __fastcall TSessionData(UnicodeString aName);
 
-   virtual __fastcall ~TSessionData();
 
-   TSessionData * __fastcall Clone();
 
-   void __fastcall Default();
 
-   void __fastcall DefaultSettings();
 
-   void __fastcall NonPersistant();
 
-   void __fastcall Load(THierarchicalStorage * Storage, bool PuttyImport);
 
-   void __fastcall ApplyRawSettings(TStrings * RawSettings, bool Unsafe);
 
-   void __fastcall ApplyRawSettings(THierarchicalStorage * Storage, bool Unsafe, bool RespectDisablePasswordStoring);
 
-   void __fastcall ImportFromFilezilla(_di_IXMLNode Node, const UnicodeString & Path, _di_IXMLNode SettingsNode);
 
-   void ImportFromOpenssh(TStrings * Lines);
 
-   void __fastcall Save(THierarchicalStorage * Storage, bool PuttyExport,
 
-     const TSessionData * Default = NULL);
 
-   void __fastcall SaveRecryptedPasswords(THierarchicalStorage * Storage);
 
-   void __fastcall RecryptPasswords();
 
-   bool __fastcall HasPassword();
 
-   bool __fastcall HasAnySessionPassword();
 
-   bool __fastcall HasAnyPassword();
 
-   void __fastcall ClearSessionPasswords();
 
-   void __fastcall MaskPasswords();
 
-   void __fastcall Remove();
 
-   void __fastcall CacheHostKeyIfNotCached();
 
-   virtual void __fastcall Assign(TPersistent * Source);
 
-   virtual int __fastcall Compare(TNamedObject * Other);
 
-   void __fastcall CopyData(TSessionData * Source);
 
-   void __fastcall CopyDataNoRecrypt(TSessionData * SourceData);
 
-   void __fastcall CopyDirectoriesStateData(TSessionData * SourceData);
 
-   bool __fastcall ParseUrl(UnicodeString Url, TOptions * Options,
 
-     TStoredSessionList * StoredSessions, bool & DefaultsOnly,
 
-     UnicodeString * FileName, bool * AProtocolDefined, UnicodeString * MaskedUrl, int Flags);
 
-   TStrings * __fastcall SaveToOptions(const TSessionData * Default, bool SaveName, bool PuttyExport);
 
-   void __fastcall ConfigureTunnel(int PortNumber);
 
-   void __fastcall RollbackTunnel();
 
-   TSessionData * CreateTunnelData(int TunnelLocalPortNumber);
 
-   void __fastcall ExpandEnvironmentVariables();
 
-   void __fastcall DisableAuthentationsExceptPassword();
 
-   bool __fastcall IsSame(const TSessionData * Default, bool AdvancedOnly);
 
-   bool __fastcall IsSameDecrypted(const TSessionData * Default);
 
-   bool __fastcall IsSameSite(const TSessionData * Default);
 
-   bool __fastcall IsInFolderOrWorkspace(const UnicodeString & Name);
 
-   UnicodeString __fastcall GenerateSessionUrl(unsigned int Flags);
 
-   bool __fastcall HasRawSettingsForUrl();
 
-   bool __fastcall HasSessionName();
 
-   bool HasAutoCredentials();
 
-   int GetDefaultPort();
 
-   UnicodeString ResolvePublicKeyFile();
 
-   UnicodeString GetSessionPasswordEncryptionKey() const;
 
-   UnicodeString __fastcall GenerateOpenCommandArgs(bool Rtf);
 
-   void __fastcall GenerateAssemblyCode(TAssemblyLanguage Language, UnicodeString & Head, UnicodeString & Tail, int & Indent);
 
-   void __fastcall LookupLastFingerprint();
 
-   bool __fastcall IsSecure();
 
-   static void __fastcall ValidatePath(const UnicodeString Path);
 
-   static void __fastcall ValidateName(const UnicodeString Name);
 
-   static UnicodeString __fastcall MakeValidName(const UnicodeString & Name);
 
-   static UnicodeString __fastcall ExtractLocalName(const UnicodeString & Name);
 
-   static UnicodeString __fastcall ExtractFolderName(const UnicodeString & Name);
 
-   static UnicodeString __fastcall ComposePath(const UnicodeString & Path, const UnicodeString & Name);
 
-   static bool __fastcall IsSensitiveOption(const UnicodeString & Option, const UnicodeString & Value);
 
-   static bool __fastcall IsOptionWithParameters(const UnicodeString & Option);
 
-   static bool __fastcall MaskPasswordInOptionParameter(const UnicodeString & Option, UnicodeString & Param);
 
-   static UnicodeString __fastcall FormatSiteKey(const UnicodeString & HostName, int PortNumber);
 
-   static TStrings * GetAllOptionNames(bool PuttyExport);
 
-   __property UnicodeString HostName  = { read=FHostName, write=SetHostName };
 
-   __property UnicodeString HostNameExpanded  = { read=GetHostNameExpanded };
 
-   __property UnicodeString HostNameSource = { read=GetHostNameSource };
 
-   __property int PortNumber  = { read=FPortNumber, write=SetPortNumber };
 
-   __property UnicodeString UserName  = { read=FUserName, write=SetUserName };
 
-   __property UnicodeString UserNameExpanded  = { read=GetUserNameExpanded };
 
-   __property UnicodeString UserNameSource  = { read=GetUserNameSource };
 
-   __property UnicodeString Password  = { read=GetPassword, write=SetPassword };
 
-   __property UnicodeString NewPassword  = { read=GetNewPassword, write=SetNewPassword };
 
-   __property bool ChangePassword  = { read=FChangePassword, write=SetChangePassword };
 
-   __property int PingInterval  = { read=FPingInterval, write=SetPingInterval };
 
-   __property bool TryAgent  = { read=FTryAgent, write=SetTryAgent };
 
-   __property bool AgentFwd  = { read=FAgentFwd, write=SetAgentFwd };
 
-   __property UnicodeString ListingCommand = { read = FListingCommand, write = SetListingCommand };
 
-   __property bool AuthKI  = { read=FAuthKI, write=SetAuthKI };
 
-   __property bool AuthKIPassword  = { read=FAuthKIPassword, write=SetAuthKIPassword };
 
-   __property bool AuthGSSAPI  = { read=FAuthGSSAPI, write=SetAuthGSSAPI };
 
-   __property bool AuthGSSAPIKEX  = { read=FAuthGSSAPIKEX, write=SetAuthGSSAPIKEX };
 
-   __property bool GSSAPIFwdTGT = { read=FGSSAPIFwdTGT, write=SetGSSAPIFwdTGT };
 
-   __property bool ChangeUsername  = { read=FChangeUsername, write=SetChangeUsername };
 
-   __property bool Compression  = { read=FCompression, write=SetCompression };
 
-   __property bool UsesSsh = { read = GetUsesSsh };
 
-   __property bool Ssh2DES  = { read=FSsh2DES, write=SetSsh2DES };
 
-   __property bool SshNoUserAuth  = { read=FSshNoUserAuth, write=SetSshNoUserAuth };
 
-   __property TCipher Cipher[int Index] = { read=GetCipher, write=SetCipher };
 
-   __property TKex Kex[int Index] = { read=GetKex, write=SetKex };
 
-   __property THostKey HostKeys[int Index] = { read=GetHostKeys, write=SetHostKeys };
 
-   __property TGssLib GssLib[int Index] = { read=GetGssLib, write=SetGssLib };
 
-   __property UnicodeString GssLibCustom = { read=FGssLibCustom, write=SetGssLibCustom };
 
-   __property UnicodeString PublicKeyFile  = { read=FPublicKeyFile, write=SetPublicKeyFile };
 
-   __property UnicodeString Passphrase  = { read=GetPassphrase, write=SetPassphrase };
 
-   __property UnicodeString DetachedCertificate  = { read=FDetachedCertificate, write=SetDetachedCertificate };
 
-   __property UnicodeString PuttyProtocol  = { read=FPuttyProtocol, write=SetPuttyProtocol };
 
-   __property TFSProtocol FSProtocol  = { read=FFSProtocol, write=SetFSProtocol  };
 
-   __property UnicodeString FSProtocolStr  = { read=GetFSProtocolStr };
 
-   __property bool Modified  = { read=FModified, write=FModified };
 
-   __property bool CanLogin  = { read=GetCanLogin };
 
-   __property bool CanOpen = { read=GetCanOpen };
 
-   __property bool IsLocalBrowser = { read=GetIsLocalBrowser };
 
-   __property bool ClearAliases = { read = FClearAliases, write = SetClearAliases };
 
-   __property TDateTime PingIntervalDT = { read = GetPingIntervalDT, write = SetPingIntervalDT };
 
-   __property TDateTime TimeDifference = { read = FTimeDifference, write = SetTimeDifference };
 
-   __property bool TimeDifferenceAuto = { read = FTimeDifferenceAuto, write = SetTimeDifferenceAuto };
 
-   __property TPingType PingType = { read = FPingType, write = SetPingType };
 
-   __property UnicodeString SessionName  = { read=GetSessionName };
 
-   __property UnicodeString DefaultSessionName  = { read=GetDefaultSessionName };
 
-   __property UnicodeString LocalDirectory  = { read=FLocalDirectory, write=SetLocalDirectory };
 
-   __property UnicodeString LocalDirectoryExpanded = { read = GetLocalDirectoryExpanded };
 
-   __property UnicodeString OtherLocalDirectory = { read=FOtherLocalDirectory, write=SetOtherLocalDirectory };
 
-   __property UnicodeString RemoteDirectory  = { read=FRemoteDirectory, write=SetRemoteDirectory };
 
-   __property bool SynchronizeBrowsing = { read=FSynchronizeBrowsing, write=SetSynchronizeBrowsing };
 
-   __property bool UpdateDirectories = { read=FUpdateDirectories, write=SetUpdateDirectories };
 
-   __property bool RequireDirectories = { read=FRequireDirectories, write=FRequireDirectories };
 
-   __property bool CacheDirectories = { read=FCacheDirectories, write=SetCacheDirectories };
 
-   __property bool CacheDirectoryChanges = { read=FCacheDirectoryChanges, write=SetCacheDirectoryChanges };
 
-   __property bool PreserveDirectoryChanges = { read=FPreserveDirectoryChanges, write=SetPreserveDirectoryChanges };
 
-   __property bool Special = { read=FSpecial, write=SetSpecial };
 
-   __property bool Selected  = { read=FSelected, write=FSelected };
 
-   __property UnicodeString InfoTip  = { read=GetInfoTip };
 
-   __property bool DefaultShell = { read = GetDefaultShell, write = SetDefaultShell };
 
-   __property bool DetectReturnVar = { read = GetDetectReturnVar, write = SetDetectReturnVar };
 
-   __property TEOLType EOLType = { read = FEOLType, write = SetEOLType };
 
-   __property bool TrimVMSVersions = { read = FTrimVMSVersions, write = SetTrimVMSVersions };
 
-   __property bool VMSAllRevisions = { read = FVMSAllRevisions, write = SetVMSAllRevisions };
 
-   __property TAutoSwitch LookupUserGroups = { read = FLookupUserGroups, write = SetLookupUserGroups };
 
-   __property UnicodeString ReturnVar = { read = FReturnVar, write = SetReturnVar };
 
-   __property bool ExitCode1IsError = { read = FExitCode1IsError, write = SetExitCode1IsError };
 
-   __property bool Scp1Compatibility = { read = FScp1Compatibility, write = SetScp1Compatibility };
 
-   __property UnicodeString Shell = { read = FShell, write = SetShell };
 
-   __property UnicodeString SftpServer = { read = FSftpServer, write = SetSftpServer };
 
-   __property int Timeout = { read = FTimeout, write = SetTimeout };
 
-   __property TDateTime TimeoutDT = { read = GetTimeoutDT };
 
-   __property bool UnsetNationalVars = { read = FUnsetNationalVars, write = SetUnsetNationalVars };
 
-   __property bool IgnoreLsWarnings  = { read=FIgnoreLsWarnings, write=SetIgnoreLsWarnings };
 
-   __property bool TcpNoDelay  = { read=FTcpNoDelay, write=SetTcpNoDelay };
 
-   __property int SendBuf  = { read=FSendBuf, write=SetSendBuf };
 
-   __property UnicodeString SourceAddress = { read=FSourceAddress, write=SetSourceAddress };
 
-   __property UnicodeString ProtocolFeatures = { read=FProtocolFeatures, write=SetProtocolFeatures };
 
-   __property bool SshSimple  = { read=FSshSimple, write=SetSshSimple };
 
-   __property UnicodeString CipherList  = { read=GetCipherList, write=SetCipherList };
 
-   __property UnicodeString KexList  = { read=GetKexList, write=SetKexList };
 
-   __property UnicodeString HostKeyList  = { read=GetHostKeyList, write=SetHostKeyList };
 
-   __property UnicodeString GssLibList  = { read=GetGssLibList, write=SetGssLibList };
 
-   __property TProxyMethod ProxyMethod  = { read=FProxyMethod, write=SetProxyMethod };
 
-   __property UnicodeString ProxyHost  = { read=FProxyHost, write=SetProxyHost };
 
-   __property int ProxyPort  = { read=FProxyPort, write=SetProxyPort };
 
-   __property UnicodeString ProxyUsername  = { read=FProxyUsername, write=SetProxyUsername };
 
-   __property UnicodeString ProxyPassword  = { read=GetProxyPassword, write=SetProxyPassword };
 
-   __property UnicodeString ProxyTelnetCommand  = { read=FProxyTelnetCommand, write=SetProxyTelnetCommand };
 
-   __property UnicodeString ProxyLocalCommand  = { read=FProxyLocalCommand, write=SetProxyLocalCommand };
 
-   __property TAutoSwitch ProxyDNS  = { read=FProxyDNS, write=SetProxyDNS };
 
-   __property bool ProxyLocalhost  = { read=FProxyLocalhost, write=SetProxyLocalhost };
 
-   __property int FtpProxyLogonType  = { read=FFtpProxyLogonType, write=SetFtpProxyLogonType };
 
-   __property TAutoSwitch Bug[TSshBug Bug]  = { read=GetBug, write=SetBug };
 
-   __property UnicodeString PuttySettings = { read = FPuttySettings, write = SetPuttySettings };
 
-   __property UnicodeString CustomParam1 = { read = FCustomParam1, write = SetCustomParam1 };
 
-   __property UnicodeString CustomParam2 = { read = FCustomParam2, write = SetCustomParam2 };
 
-   __property UnicodeString SessionKey = { read = GetSessionKey };
 
-   __property bool ResolveSymlinks = { read = FResolveSymlinks, write = SetResolveSymlinks };
 
-   __property bool FollowDirectorySymlinks = { read = FFollowDirectorySymlinks, write = SetFollowDirectorySymlinks };
 
-   __property int SFTPDownloadQueue = { read = FSFTPDownloadQueue, write = SetSFTPDownloadQueue };
 
-   __property int SFTPUploadQueue = { read = FSFTPUploadQueue, write = SetSFTPUploadQueue };
 
-   __property int SFTPListingQueue = { read = FSFTPListingQueue, write = SetSFTPListingQueue };
 
-   __property int SFTPMaxVersion = { read = FSFTPMaxVersion, write = SetSFTPMaxVersion };
 
-   __property unsigned long SFTPMaxPacketSize = { read = FSFTPMaxPacketSize, write = SetSFTPMaxPacketSize };
 
-   __property TAutoSwitch SFTPRealPath = { read = FSFTPRealPath, write = SetSFTPRealPath };
 
-   __property bool UsePosixRename = { read = FUsePosixRename, write = SetUsePosixRename };
 
-   __property TAutoSwitch SFTPBug[TSftpBug Bug]  = { read=GetSFTPBug, write=SetSFTPBug };
 
-   __property TAutoSwitch SCPLsFullTime = { read = FSCPLsFullTime, write = SetSCPLsFullTime };
 
-   __property TAutoSwitch FtpListAll = { read = FFtpListAll, write = SetFtpListAll };
 
-   __property TAutoSwitch FtpHost = { read = FFtpHost, write = SetFtpHost };
 
-   __property TAutoSwitch FtpWorkFromCwd = { read = FFtpWorkFromCwd, write = SetFtpWorkFromCwd };
 
-   __property bool FtpAnyCodeForPwd = { read = FFtpAnyCodeForPwd, write = SetFtpAnyCodeForPwd };
 
-   __property bool SslSessionReuse = { read = FSslSessionReuse, write = SetSslSessionReuse };
 
-   __property UnicodeString TlsCertificateFile = { read=FTlsCertificateFile, write=SetTlsCertificateFile };
 
-   __property TDSTMode DSTMode = { read = FDSTMode, write = SetDSTMode };
 
-   __property bool DeleteToRecycleBin = { read = FDeleteToRecycleBin, write = SetDeleteToRecycleBin };
 
-   __property bool OverwrittenToRecycleBin = { read = FOverwrittenToRecycleBin, write = SetOverwrittenToRecycleBin };
 
-   __property UnicodeString RecycleBinPath = { read = FRecycleBinPath, write = SetRecycleBinPath };
 
-   __property UnicodeString PostLoginCommands = { read = FPostLoginCommands, write = SetPostLoginCommands };
 
-   __property TAddressFamily AddressFamily = { read = FAddressFamily, write = SetAddressFamily };
 
-   __property UnicodeString RekeyData = { read = FRekeyData, write = SetRekeyData };
 
-   __property unsigned int RekeyTime = { read = FRekeyTime, write = SetRekeyTime };
 
-   __property int Color = { read = FColor, write = SetColor };
 
-   __property bool Tunnel = { read = FTunnel, write = SetTunnel };
 
-   __property UnicodeString TunnelHostName = { read = FTunnelHostName, write = SetTunnelHostName };
 
-   __property int TunnelPortNumber = { read = FTunnelPortNumber, write = SetTunnelPortNumber };
 
-   __property UnicodeString TunnelUserName = { read = FTunnelUserName, write = SetTunnelUserName };
 
-   __property UnicodeString TunnelPassword = { read = GetTunnelPassword, write = SetTunnelPassword };
 
-   __property UnicodeString TunnelPublicKeyFile = { read = FTunnelPublicKeyFile, write = SetTunnelPublicKeyFile };
 
-   __property UnicodeString TunnelPassphrase = { read = GetTunnelPassphrase, write = SetTunnelPassphrase };
 
-   __property bool TunnelAutoassignLocalPortNumber = { read = GetTunnelAutoassignLocalPortNumber };
 
-   __property int TunnelLocalPortNumber = { read = FTunnelLocalPortNumber, write = SetTunnelLocalPortNumber };
 
-   __property UnicodeString TunnelPortFwd = { read = FTunnelPortFwd, write = SetTunnelPortFwd };
 
-   __property UnicodeString TunnelHostKey = { read = FTunnelHostKey, write = SetTunnelHostKey };
 
-   __property bool FtpPasvMode = { read = FFtpPasvMode, write = SetFtpPasvMode };
 
-   __property TAutoSwitch FtpForcePasvIp = { read = FFtpForcePasvIp, write = SetFtpForcePasvIp };
 
-   __property TAutoSwitch FtpUseMlsd = { read = FFtpUseMlsd, write = SetFtpUseMlsd };
 
-   __property UnicodeString FtpAccount = { read = FFtpAccount, write = SetFtpAccount };
 
-   __property int FtpPingInterval  = { read=FFtpPingInterval, write=SetFtpPingInterval };
 
-   __property TDateTime FtpPingIntervalDT  = { read=GetFtpPingIntervalDT };
 
-   __property TFtpPingType FtpPingType = { read = FFtpPingType, write = SetFtpPingType };
 
-   __property TAutoSwitch FtpTransferActiveImmediately = { read = FFtpTransferActiveImmediately, write = SetFtpTransferActiveImmediately };
 
-   __property TFtps Ftps = { read = FFtps, write = SetFtps };
 
-   __property TTlsVersion MinTlsVersion = { read = FMinTlsVersion, write = SetMinTlsVersion };
 
-   __property TTlsVersion MaxTlsVersion = { read = FMaxTlsVersion, write = SetMaxTlsVersion };
 
-   __property TAutoSwitch CompleteTlsShutdown = { read = FCompleteTlsShutdown, write = SetCompleteTlsShutdown };
 
-   __property UnicodeString LogicalHostName = { read = FLogicalHostName, write = SetLogicalHostName };
 
-   __property TAutoSwitch NotUtf = { read = FNotUtf, write = SetNotUtf };
 
-   __property int InternalEditorEncoding = { read = FInternalEditorEncoding, write = SetInternalEditorEncoding };
 
-   __property UnicodeString S3DefaultRegion = { read = FS3DefaultRegion, write = SetS3DefaultRegion };
 
-   __property UnicodeString S3SessionToken = { read = FS3SessionToken, write = SetS3SessionToken };
 
-   __property UnicodeString S3RoleArn = { read = FS3RoleArn, write = SetS3RoleArn };
 
-   __property UnicodeString S3RoleSessionName = { read = FS3RoleSessionName, write = SetS3RoleSessionName };
 
-   __property UnicodeString S3Profile = { read = FS3Profile, write = SetS3Profile };
 
-   __property TS3UrlStyle S3UrlStyle = { read = FS3UrlStyle, write = SetS3UrlStyle };
 
-   __property TAutoSwitch S3MaxKeys = { read = FS3MaxKeys, write = SetS3MaxKeys };
 
-   __property bool S3CredentialsEnv = { read = FS3CredentialsEnv, write = SetS3CredentialsEnv };
 
-   __property bool S3RequesterPays = { read = FS3RequesterPays, write = SetS3RequesterPays };
 
-   __property bool IsWorkspace = { read = FIsWorkspace, write = SetIsWorkspace };
 
-   __property UnicodeString Link = { read = FLink, write = SetLink };
 
-   __property UnicodeString NameOverride = { read = FNameOverride, write = SetNameOverride };
 
-   __property UnicodeString HostKey = { read = FHostKey, write = SetHostKey };
 
-   __property bool FingerprintScan = { read = FFingerprintScan, write = FFingerprintScan };
 
-   __property bool OverrideCachedHostKey = { read = FOverrideCachedHostKey };
 
-   __property UnicodeString Note = { read = FNote, write = SetNote };
 
-   __property UnicodeString WinTitle = { read = FWinTitle, write = SetWinTitle };
 
-   __property UnicodeString EncryptKey = { read = GetEncryptKey, write = SetEncryptKey };
 
-   __property bool WebDavLiberalEscaping = { read = FWebDavLiberalEscaping, write = SetWebDavLiberalEscaping };
 
-   __property bool WebDavAuthLegacy = { read = FWebDavAuthLegacy, write = SetWebDavAuthLegacy };
 
-   __property UnicodeString StorageKey = { read = GetStorageKey };
 
-   __property UnicodeString SiteKey = { read = GetSiteKey };
 
-   __property UnicodeString OrigHostName = { read = FOrigHostName };
 
-   __property int OrigPortNumber = { read = FOrigPortNumber };
 
-   __property UnicodeString LocalName = { read = GetLocalName };
 
-   __property UnicodeString FolderName = { read = GetFolderName };
 
-   __property TSessionSource Source = { read = FSource };
 
-   __property UnicodeString SourceName = { read = GetSourceName };
 
-   __property bool SaveOnly = { read = FSaveOnly };
 
- };
 
- //---------------------------------------------------------------------------
 
- class TStoredSessionList : public TNamedObjectList
 
- {
 
- public:
 
-   __fastcall TStoredSessionList(bool aReadOnly = false);
 
-   void __fastcall Reload();
 
-   void __fastcall Save(bool All, bool Explicit);
 
-   void __fastcall Saved();
 
-   void __fastcall ImportFromFilezilla(const UnicodeString FileName, const UnicodeString ConfigurationFileName);
 
-   void __fastcall ImportFromKnownHosts(TStrings * Lines);
 
-   void ImportFromOpenssh(TStrings * Lines);
 
-   void __fastcall Export(const UnicodeString FileName);
 
-   void __fastcall Load(THierarchicalStorage * Storage, bool AsModified = false,
 
-     bool UseDefaults = false, bool PuttyImport = false);
 
-   void __fastcall Save(THierarchicalStorage * Storage, bool All = false);
 
-   void __fastcall SelectAll(bool Select);
 
-   bool Import(TStoredSessionList * From, bool OnlySelected, TList * Imported);
 
-   void __fastcall RecryptPasswords(TStrings * RecryptPasswordErrors);
 
-   TSessionData * __fastcall AtSession(int Index)
 
-     { return (TSessionData*)AtObject(Index); }
 
-   void __fastcall SelectSessionsToImport(TStoredSessionList * Dest, bool SSHOnly);
 
-   void __fastcall Cleanup();
 
-   void __fastcall UpdateStaticUsage();
 
-   int __fastcall IndexOf(TSessionData * Data);
 
-   TSessionData * __fastcall FindSame(TSessionData * Data);
 
-   TSessionData * __fastcall NewSession(UnicodeString SessionName, TSessionData * Session);
 
-   void __fastcall NewWorkspace(UnicodeString Name, TList * DataList);
 
-   bool __fastcall IsFolder(const UnicodeString & Name);
 
-   bool __fastcall IsWorkspace(const UnicodeString & Name);
 
-   bool __fastcall IsFolderOrWorkspace(const UnicodeString & Name);
 
-   TSessionData * __fastcall ParseUrl(UnicodeString Url, TOptions * Options, bool & DefaultsOnly,
 
-     UnicodeString * FileName = NULL, bool * ProtocolDefined = NULL, UnicodeString * MaskedUrl = NULL, int Flags = 0);
 
-   bool __fastcall IsUrl(UnicodeString Url);
 
-   bool __fastcall CanOpen(TSessionData * Data);
 
-   void __fastcall GetFolderOrWorkspace(const UnicodeString & Name, TList * List);
 
-   TStrings * __fastcall GetFolderOrWorkspaceList(const UnicodeString & Name);
 
-   TStrings * __fastcall GetWorkspaces();
 
-   bool __fastcall HasAnyWorkspace();
 
-   TSessionData * __fastcall SaveWorkspaceData(TSessionData * Data, int Index);
 
-   virtual __fastcall ~TStoredSessionList();
 
-   __property TSessionData * Sessions[int Index]  = { read=AtSession };
 
-   __property TSessionData * DefaultSettings  = { read=FDefaultSettings, write=SetDefaultSettings };
 
-   static int ImportHostKeys(
 
-     THierarchicalStorage * SourceStorage, THierarchicalStorage * TargetStorage, TStoredSessionList * Sessions, bool OnlySelected);
 
-   static void ImportHostKeys(THierarchicalStorage * SourceStorage, TStoredSessionList * Sessions, bool OnlySelected);
 
-   static void ImportHostKeys(const UnicodeString & SourceKey, TStoredSessionList * Sessions, bool OnlySelected);
 
-   static void __fastcall ImportSelectedKnownHosts(TStoredSessionList * Sessions);
 
-   static bool __fastcall OpenHostKeysSubKey(THierarchicalStorage * Storage, bool CanCreate);
 
-   static void SelectKnownHostsForSelectedSessions(TStoredSessionList * KnownHosts, TStoredSessionList * Sessions);
 
- private:
 
-   TSessionData * FDefaultSettings;
 
-   bool FReadOnly;
 
-   std::unique_ptr<TStrings> FPendingRemovals;
 
-   void __fastcall SetDefaultSettings(TSessionData * value);
 
-   void __fastcall DoSave(THierarchicalStorage * Storage, bool All,
 
-     bool RecryptPasswordOnly, TStrings * RecryptPasswordErrors);
 
-   void __fastcall DoSave(bool All, bool Explicit, bool RecryptPasswordOnly,
 
-     TStrings * RecryptPasswordErrors);
 
-   void __fastcall DoSave(THierarchicalStorage * Storage,
 
-     TSessionData * Data, bool All, bool RecryptPasswordOnly,
 
-     TSessionData * FactoryDefaults);
 
-   TSessionData * __fastcall ResolveWorkspaceData(TSessionData * Data);
 
-   TSessionData * GetFirstFolderOrWorkspaceSession(const UnicodeString & Name);
 
-   TSessionData * __fastcall CheckIsInFolderOrWorkspaceAndResolve(
 
-     TSessionData * Data, const UnicodeString & Name);
 
-   void __fastcall ImportLevelFromFilezilla(_di_IXMLNode Node, const UnicodeString & Path, _di_IXMLNode SettingsNode);
 
-   void __fastcall DoGetFolderOrWorkspace(const UnicodeString & Name, TList * List, bool NoRecrypt);
 
-   static THierarchicalStorage * __fastcall CreateHostKeysStorageForWritting();
 
- };
 
- //---------------------------------------------------------------------------
 
- UnicodeString GetExpandedLogFileName(UnicodeString LogFileName, TDateTime Started, TSessionData * SessionData);
 
- bool __fastcall IsSshProtocol(TFSProtocol FSProtocol);
 
- int __fastcall DefaultPort(TFSProtocol FSProtocol, TFtps Ftps);
 
- bool HasIP6LiteralBrackets(const UnicodeString & HostName);
 
- UnicodeString StripIP6LiteralBrackets(const UnicodeString & HostName);
 
- bool __fastcall IsIPv6Literal(const UnicodeString & HostName);
 
- UnicodeString __fastcall EscapeIPv6Literal(const UnicodeString & IP);
 
- TFSProtocol NormalizeFSProtocol(TFSProtocol FSProtocol);
 
- bool ParseOpensshDirective(const UnicodeString & ALine, UnicodeString & Directive, UnicodeString & Value);
 
- UnicodeString CutOpensshToken(UnicodeString & S);
 
- UnicodeString ConvertPathFromOpenssh(const UnicodeString & Path);
 
- //---------------------------------------------------------------------------
 
- #endif
 
 
  |