|
SmartFTP FTP Library
|
#include <olectl.h>#include <WinError.h>import oaidl.idl;import ocidl.idl;import propidl.idl;Go to the source code of this file.
Classes | |
| interface | IGlobal |
| Provides global configuration, statistics, and licensing management for the library. More... | |
| interface | IFTPPortPool |
| Manages a specific range of local ports for Active FTP data connections. More... | |
| interface | IGlobalSpeedLimit |
| interface | ISecurityConnectionInfo |
| Encapsulates the cryptographic parameters of an active TLS/SSL connection. More... | |
| interface | IStreamFilter |
| interface | IStreamFilterInfo |
| interface | IFTPClientId |
| Encapsulates the client application identity sent to the server via the CSID and CLNT commands. More... | |
| interface | IFTPServerId |
| Encapsulates the server identification and capability data returned in a CSID reply. More... | |
| interface | IFTPServerState |
| interface | IKey |
| Encapsulates a cryptographic key pair, public key, or certificate. More... | |
| interface | IProxySettings |
| IProxySettings Interface. More... | |
| interface | ISocketSettings |
| interface | ISpeedLimitSettings |
| interface | ICompletionHandler |
| interface | ITlsSocket |
| interface | ISFTPExtendedCheckFileResult |
| interface | ILogger |
| interface | IConnectionWithLogger |
| interface | IFileLogger |
| interface | IFTPItem |
| The IFTPItem interface is a representation of a folder/file. More... | |
| interface | IFTPItems |
| interface | ITransferProgressEvents |
| A callback interface for monitoring data transfer progress. More... | |
| interface | IFTPConnection |
| interface | IFTPParser |
| interface | IFTPParserD |
| Interface for parsing raw FTP directory listings. More... | |
| interface | IFTPFXP |
| interface | ISFTPStatVFS |
| interface | ISFTPVendorId |
| Encapsulates the software identification data exchanged during the SFTP version negotiation. More... | |
| interface | ISFTPServerState |
| interface | ISFTPSpaceAvailable |
| interface | ISSHConnectionInfo |
| Provides detailed information about the cryptographic algorithms used in the active SSH session. More... | |
| interface | ISSHServerState |
| Encapsulates information about the remote SSH server's identity and environment. More... | |
| interface | ISSHConnection |
| interface | ISFTPConnection |
| interface | IOpenSSLKey |
| interface | IKeyManager |
| interface | IConnection |
| interface | IAES128CTRWriteStream |
| interface | IAES128CTRReadStream |
| interface | IHashProgress |
| interface | ICryptoHash |
| interface | IParserWriteStream |
| interface | IUtils |
| interface | ISSHChannelClient |
| interface | ISSHKeyBlobHelper |
| Utility interface for extracting the raw SSH public key blob from a key object. More... | |
| interface | IBCryptKey |
| interface | INCryptKey |
| interface | INCryptKeyCustom |
| interface | sfFTPLib::_IFTPConnectionEvents |
| interface | sfFTPLib::IFTPConnectionEvents |
| class | sfFTPLib::FTPConnectionSTA |
| class | sfFTPLib::FTPConnectionMTA |
| class | sfFTPLib::FTPParser |
| class | sfFTPLib::FTPPortPool |
| The concrete implementation of the port pool manager. More... | |
| class | sfFTPLib::FTPFXP |
| The implementation class for Server-to-Server (FXP) transfers. More... | |
| class | sfFTPLib::GlobalSpeedLimit |
| The component class responsible for managing global bandwidth usage. More... | |
| class | sfFTPLib::Global |
| The central configuration and licensing manager for the library. More... | |
| interface | sfFTPLib::_ISFTPConnectionEvents |
| Defines the events fired by the SFTPConnection class. More... | |
| interface | sfFTPLib::ISFTPConnectionEvents |
| A callback interface for handling SFTP connection state changes. More... | |
| interface | sfFTPLib::_ISSHConnectionEvents |
| Defines the events fired by the SSHConnection class during the session lifecycle. More... | |
| interface | sfFTPLib::ISSHConnectionEvents |
| class | sfFTPLib::SFTPConnection |
| The main class for establishing SFTP (SSH File Transfer Protocol) connections. More... | |
| class | sfFTPLib::FTPItem |
| Represents a single file, directory, or symbolic link within a file system. More... | |
| class | sfFTPLib::OpenSSLKey |
| class | sfFTPLib::KeyManager |
| Provides a centralized toolkit for creating, loading, and managing SSH user identity keys. More... | |
| class | sfFTPLib::AES128CTRWriteStream |
| class | sfFTPLib::AES128CTRReadStream |
| class | sfFTPLib::CryptoHash |
| class | sfFTPLib::FTPClientId |
| Encapsulates the client application identity sent to the server. More... | |
| class | sfFTPLib::ParserWriteStream |
| class | sfFTPLib::SFTPVendorId |
| class | sfFTPLib::SSHConnection |
| The main class for establishing SSH (Secure Shell) sessions for command execution. More... | |
| class | sfFTPLib::Utils |
| class | sfFTPLib::SSHKeyBlobHelper |
| class | sfFTPLib::BCryptKey |
| class | sfFTPLib::NCryptKey |
| class | sfFTPLib::FileLogger |
Modules | |
| library | sfFTPLib |
Typedefs | |
| typedef enum FTPProtocol | FTPProtocol |
| Specifies the security protocol and encryption mode for the connection. | |
| typedef enum ProxyType | ProxyType |
| typedef enum PortMode | PortMode |
| Specifies how the client determines the IP address sent in the PORT command (Active Mode). | |
| typedef enum PassiveMode | PassiveMode |
| Specifies how the client handles the IP address returned in the FTP server's PASV response. | |
| typedef enum DataTransferType | DataTransferType |
| Defines the format used for data transfer. | |
| typedef enum DataTransferMode | DataTransferMode |
| Defines the transmission mode for the data connection. | |
| typedef enum DataProtection | DataProtection |
| Defines the security level of a communication channel (Control or Data). | |
| typedef enum ProtocolFamily | ProtocolFamily |
| typedef enum ServerCapability | ServerCapability |
| typedef enum ServerCapabilityState | ServerCapabilityState |
| typedef enum CaseSensitivity | CaseSensitivity |
| Defines how the server handles capitalization in filenames. | |
| typedef enum ParserFormat | ParserFormat |
| typedef enum ServerType | ServerType |
| Identifies the operating system or server software type of the remote host. | |
| typedef enum ServerSoftware | ServerSoftware |
| server software running on the remote server | |
| typedef enum OperatingSystem | OperatingSystem |
| typedef enum StatusEventType | StatusEventType |
| typedef enum ConnectionStatus | ConnectionStatus |
| typedef enum SFTPConnectionStatus | SFTPConnectionStatus |
| typedef enum LogFormat | LogFormat |
| typedef enum HashAlgo | HashAlgo |
| typedef enum KeyExchange | KeyExchange |
| Identifies the Key Exchange (KEX) algorithms supported by the SSH client. | |
| typedef enum Encryption | Encryption |
| Defines the symmetric encryption algorithms available for the SSH tunnel. | |
| typedef enum HMAC | HMAC |
| Defines the Message Authentication Code (HMAC) algorithms available for data integrity. | |
| typedef enum SSHCompression | SSHCompression |
| Identifies the compression algorithms available for the SSH connection. | |
| typedef enum FeatureDiscoveryMode | FeatureDiscoveryMode |
| Determines the timing of the FEAT (Feature Discovery) command. | |
| typedef enum ItemType | ItemType |
| Categorizes the type of a filesystem object (file, directory, link, etc.). | |
| typedef enum KeyType | KeyType |
| typedef enum KeyAlgo | KeyAlgo |
| typedef enum SSHPublicKeyAlgo | SSHPublicKeyAlgo |
| Defines the public key algorithms used for server host keys and client authentication. | |
| typedef enum CertificateType | CertificateType |
| typedef enum FTPItemAttribute | FTPItemAttribute |
| typedef enum SSHServerSoftware | SSHServerSoftware |
| typedef enum SFTPStatus | SFTPStatus |
| typedef enum GSSAPIMethod | GSSAPIMethod |
| typedef enum KeyFileFormat | KeyFileFormat |
| typedef enum sfFTPLib::_HRESULT | sfFTPLib::_HRESULT |
| typedef enum sfFTPLib::UnixPermissions | sfFTPLib::UnixPermissions |
| Defines the access permissions for files and directories on Unix-like systems. | |
| typedef enum sfFTPLib::SFTPItemAttributeBit | sfFTPLib::SFTPItemAttributeBit |
| typedef enum sfFTPLib::SFTPItemAttribute | sfFTPLib::SFTPItemAttribute |
| typedef enum sfFTPLib::LISTOption | sfFTPLib::LISTOption |
| Flags to control the behavior and output of the FTP LIST command. | |
| typedef enum sfFTPLib::DownloadFlags | sfFTPLib::DownloadFlags |
| Flags that control the behavior of the ISFTPConnection::DownloadFileEx operation. | |
| typedef enum sfFTPLib::SSHAuthentication | sfFTPLib::SSHAuthentication |
| Identifies the authentication methods defined in the SSH-2 protocol (RFC 4252). | |
Functions | |
| sfFTPLib::importlib (STDOLE_TLB) | |
| typedef enum CaseSensitivity CaseSensitivity |
Defines how the server handles capitalization in filenames.
This enumeration indicates whether the remote file system treats "File.txt" and "file.txt" as the same file or different files.
Platform Behavior:
| typedef enum CertificateType CertificateType |
| typedef enum ConnectionStatus ConnectionStatus |
| typedef enum DataProtection DataProtection |
Defines the security level of a communication channel (Control or Data).
This enumeration represents whether a specific channel is encrypted or sending data in clear text. It is used by both:
| typedef enum DataTransferMode DataTransferMode |
Defines the transmission mode for the data connection.
This enumeration corresponds to the arguments of the MODE command. It determines how the data is packaged and transmitted over the wire.
**Distinction from DataTransferType :**
| typedef enum DataTransferType DataTransferType |
Defines the format used for data transfer.
This enumeration corresponds to the arguments of the TYPE command. It controls whether the server modifies the data stream during transfer to accommodate different operating system standards (like line endings).
| typedef enum Encryption Encryption |
Defines the symmetric encryption algorithms available for the SSH tunnel.
These algorithms ensure the confidentiality of the data transmitted between the client and server. Once the initial handshake is complete, all traffic (shell commands, file transfers) is encrypted using one of these ciphers.
| typedef enum FeatureDiscoveryMode FeatureDiscoveryMode |
Determines the timing of the FEAT (Feature Discovery) command.
Different FTP servers behave differently regarding feature announcement. Some only reveal their full capabilities after a user has successfully authenticated, while others provide this information immediately upon connection.
| typedef enum FTPItemAttribute FTPItemAttribute |
| typedef enum FTPProtocol FTPProtocol |
Specifies the security protocol and encryption mode for the connection.
Usage: This enumeration is used to set the IFTPConnection::Protocol property of the IFTPConnection interface before calling the IFTPConnection::Connect method. It controls the initial handshake and subsequent data protection.
| typedef enum GSSAPIMethod GSSAPIMethod |
Defines the Message Authentication Code (HMAC) algorithms available for data integrity.
These algorithms ensure that the data packets sent between client and server have not been tampered with in transit.
The "Encrypt-then-MAC" (EtM) Advantage: Standard SSH (RFC 4253) uses "Encrypt-and-MAC": the packet is encrypted, and the MAC is calculated on the plaintext. This requires the receiver to decrypt potentially malicious data before verifying it. EtM (RFC 7366) calculates the MAC on the ciphertext. This allows the receiver to discard tampered packets before decryption, preventing "Padding Oracle" attacks.
Recommendation: Prioritize EtM algorithms (ftpHMACSHA2256Etm) whenever possible.
Categorizes the type of a filesystem object (file, directory, link, etc.).
The Context: Unlike Windows, which primarily deals with Files and Directories, Unix-like systems (Linux, macOS, BSD) treat almost everything as a "file", including hardware devices and communication channels.
Protocol Mapping: These integer values correspond directly to the SSH_FILEXFER_TYPE_* constants defined in the SFTP protocol's ATTRS data structure.
| typedef enum KeyExchange KeyExchange |
Identifies the Key Exchange (KEX) algorithms supported by the SSH client.
These values are used in the ISSHConnection::KeyExchanges property. The KEX algorithm is the first cryptographic negotiation in the SSH connection. It allows the client and server to safely agree on a shared secret session key over an insecure network.
| typedef enum KeyFileFormat KeyFileFormat |
| typedef enum OperatingSystem OperatingSystem |
| typedef enum ParserFormat ParserFormat |
| typedef enum PassiveMode PassiveMode |
Specifies how the client handles the IP address returned in the FTP server's PASV response.
Specifies how the client determines the IP address sent in the PORT command (Active Mode).
The Problem: In Active Mode (IFTPConnection::Passive = FALSE), the client must tell the server its own IP address so the server can open a connection back to the client.
Usage: Use this enum to set the IFTPConnection::PortMode property. It determines whether the component automatically uses the local machine's IP or uses a manually specified override.
| typedef enum ProtocolFamily ProtocolFamily |
| typedef enum ServerCapability ServerCapability |
| typedef enum ServerCapabilityState ServerCapabilityState |
| typedef enum ServerSoftware ServerSoftware |
server software running on the remote server
Detected from the welcome line or FEAT reply. Not reliable.
| typedef enum ServerType ServerType |
Identifies the operating system or server software type of the remote host.
The Mechanism: Upon connecting, the component sends the SYST command. The server responds with a string identifying its system type (RFC 959). The component parses this string to determine how to handle file paths and directory listings.
Why it matters:
| typedef enum SFTPConnectionStatus SFTPConnectionStatus |
| typedef enum SFTPStatus SFTPStatus |
| typedef enum SSHCompression SSHCompression |
Identifies the compression algorithms available for the SSH connection.
These values are used to negotiate the data compression method during the SSH handshake.
| typedef enum SSHPublicKeyAlgo SSHPublicKeyAlgo |
Defines the public key algorithms used for server host keys and client authentication.
These algorithms are used during the SSH handshake to verify the identity of the server (Host Key) and to authenticate the user (Public Key Authentication).
| typedef enum SSHServerSoftware SSHServerSoftware |
| typedef enum StatusEventType StatusEventType |
| enum CaseSensitivity |
Defines how the server handles capitalization in filenames.
This enumeration indicates whether the remote file system treats "File.txt" and "file.txt" as the same file or different files.
Platform Behavior:
| enum CertificateType |
| enum ConnectionStatus |
| enum DataProtection |
Defines the security level of a communication channel (Control or Data).
This enumeration represents whether a specific channel is encrypted or sending data in clear text. It is used by both:
| Enumerator | |
|---|---|
| ftpDataProtectionUnknown | |
| ftpDataProtectionClear | Data protection is disabled (PROT C). |
| ftpDataProtectionPrivate | Data protection is enabled (PROT P). |
| enum DataTransferMode |
Defines the transmission mode for the data connection.
This enumeration corresponds to the arguments of the MODE command. It determines how the data is packaged and transmitted over the wire.
**Distinction from DataTransferType :**
| enum DataTransferType |
Defines the format used for data transfer.
This enumeration corresponds to the arguments of the TYPE command. It controls whether the server modifies the data stream during transfer to accommodate different operating system standards (like line endings).
| enum Encryption |
Defines the symmetric encryption algorithms available for the SSH tunnel.
These algorithms ensure the confidentiality of the data transmitted between the client and server. Once the initial handshake is complete, all traffic (shell commands, file transfers) is encrypted using one of these ciphers.
| Enumerator | |
|---|---|
| ftpEncryptionUnknown | Unknown or invalid algorithm. |
| ftpEncryption3DES | Triple-DES (3DES).
|
| ftpEncryptionAES128CBC | AES in Cipher Block Chaining (CBC) mode (128-bit).
|
| ftpEncryptionAES192CBC | AES in Cipher Block Chaining (CBC) mode (192-bit).
|
| ftpEncryptionAES256CBC | AES in Cipher Block Chaining (CBC) mode (256-bit).
|
| ftpEncryptionAES128CTR | AES in Counter (CTR) mode (128-bit). Turns the block cipher into a stream cipher. Pros: Secure, parallelizable, no padding required (immune to padding oracles). |
| ftpEncryptionAES192CTR | AES in Counter (CTR) mode (192-bit). |
| ftpEncryptionAES256CTR | AES in Counter (CTR) mode (256-bit). |
| ftpEncryptionAES128GCM | AES in Galois/Counter Mode (GCM) (128-bit). Authenticated Encryption (AEAD): Provides both confidentiality and integrity in a single pass. Performance: extremely fast on modern CPUs with AES-NI instruction sets. |
| ftpEncryptionAES256GCM | AES in Galois/Counter Mode (GCM) (256-bit). Authenticated Encryption (AEAD): Provides both confidentiality and integrity in a single pass. Performance: extremely fast on modern CPUs with AES-NI instruction sets. |
| enum FeatureDiscoveryMode |
Determines the timing of the FEAT (Feature Discovery) command.
Different FTP servers behave differently regarding feature announcement. Some only reveal their full capabilities after a user has successfully authenticated, while others provide this information immediately upon connection.
| enum FTPItemAttribute |
| enum FTPProtocol |
Specifies the security protocol and encryption mode for the connection.
Usage: This enumeration is used to set the IFTPConnection::Protocol property of the IFTPConnection interface before calling the IFTPConnection::Connect method. It controls the initial handshake and subsequent data protection.
| enum GSSAPIMethod |
| enum HashAlgo |
| Enumerator | |
|---|---|
| ftpHashAlgoUnknown | |
| ftpHashAlgoCRC32 | CRC32. Length: 32 bit. |
| ftpHashAlgoMD5 | MD5. Length: 128 bit. Reference: RFC 1321. |
| ftpHashAlgoSHA1 | SHA1. Length: 168 bit. Reference: RFC 3174. |
| ftpHashAlgoSHA256 | SHA256. |
| ftpHashAlgoSHA384 | SHA384. |
| ftpHashAlgoSHA512 | SHA512. |
| ftpHashAlgoMicrosoftQuickXorHash | Microsoft QuickXorHash Reference: Code Snippets: QuickXorHash Algorithm. |
| enum HMAC |
Defines the Message Authentication Code (HMAC) algorithms available for data integrity.
These algorithms ensure that the data packets sent between client and server have not been tampered with in transit.
The "Encrypt-then-MAC" (EtM) Advantage: Standard SSH (RFC 4253) uses "Encrypt-and-MAC": the packet is encrypted, and the MAC is calculated on the plaintext. This requires the receiver to decrypt potentially malicious data before verifying it. EtM (RFC 7366) calculates the MAC on the ciphertext. This allows the receiver to discard tampered packets before decryption, preventing "Padding Oracle" attacks.
Recommendation: Prioritize EtM algorithms (ftpHMACSHA2256Etm) whenever possible.
| enum ItemType |
Categorizes the type of a filesystem object (file, directory, link, etc.).
The Context: Unlike Windows, which primarily deals with Files and Directories, Unix-like systems (Linux, macOS, BSD) treat almost everything as a "file", including hardware devices and communication channels.
Protocol Mapping: These integer values correspond directly to the SSH_FILEXFER_TYPE_* constants defined in the SFTP protocol's ATTRS data structure.
| enum KeyAlgo |
| enum KeyExchange |
Identifies the Key Exchange (KEX) algorithms supported by the SSH client.
These values are used in the ISSHConnection::KeyExchanges property. The KEX algorithm is the first cryptographic negotiation in the SSH connection. It allows the client and server to safely agree on a shared secret session key over an insecure network.
| Enumerator | |
|---|---|
| ftpKeyExchangeUnknown | |
| ftpKeyExchangeDiffieHellmanGroup14SHA1 | Diffie-Hellman Group 14 (2048-bit) with SHA-1. Protocol String: diffie-hellman-group14-sha1 Status: Legacy. Use Case: Required for compatibility with older network equipment (Cisco IOS, older Linux). Security: 2048-bit MODP is considered secure, but SHA-1 is cryptographically weak. |
| ftpKeyExchangeDiffieHellmanGroupExchangeSHA1 | Diffie-Hellman Group Exchange with SHA-1. Protocol String: diffie-hellman-group-exchange-sha1 RFC: 4419 Mechanism: The client requests a group size, and the server provides one. Security: Weak due to SHA-1 usage. |
| ftpKeyExchangeDiffieHellmanGroupExchangeSHA256 | Diffie-Hellman Group Exchange with SHA-256. Protocol String: diffie-hellman-group-exchange-sha256 RFC: 4419 Security: Strong. Uses SHA-256 for integrity. |
| ftpKeyExchangeDiffieHellmanGroup14SHA256 | Diffie-Hellman Group 14 (2048-bit) with SHA-256. Protocol String: diffie-hellman-group14-sha256 Status: Standard. Security: Good balance of compatibility and security. |
| ftpKeyExchangeDiffieHellmanGroup16SHA512 | Diffie-Hellman Group 16 (4096-bit) with SHA-512. Protocol String: diffie-hellman-group16-sha512 Status: High Security. Pros: Very strong against brute force. Cons: Significantly slower handshake due to large prime calculations. |
| ftpKeyExchangeECDH256 | Elliptic Curve Diffie-Hellman (NIST P-256). Protocol String: ecdh-sha2-nistp256 Security: Standard NSA Suite B curve. |
| ftpKeyExchangeECDH384 | Elliptic Curve Diffie-Hellman (NIST P-384). Protocol String: ecdh-sha2-nistp384 |
| ftpKeyExchangeECDH521 | Elliptic Curve Diffie-Hellman (NIST P-521). Protocol String: ecdh-sha2-nistp521 |
| ftpKeyExchangeCurve25519 | Curve25519 (X25519) with SHA-256. Protocol String: curve25519-sha256 Status: Recommended. Pros: Extremely fast and secure. Immune to timing attacks. |
| ftpKeyExchangeCurve25519libssh | Legacy libssh-specific Curve25519 identifier. Protocol String: curve25519-sha256@libssh.org Status: Deprecated. Use ftpKeyExchangeCurve25519 instead. |
| ftpKeyExchangeMlKem768x25519 | Hybrid Post-Quantum Key Exchange (ML-KEM-768 + X25519). Algorithm: mlkem768x25519-sha256 Status: Cutting Edge. Purpose: Combines standard Elliptic Curve (X25519) with Post-Quantum Cryptography (Kyber/ML-KEM). This ensures that traffic captured today cannot be decrypted by quantum computers in the future ("Harvest Now, Decrypt Later"). |
| enum KeyFileFormat |
| enum KeyType |
| enum LogFormat |
| enum OperatingSystem |
| enum ParserFormat |
| enum PassiveMode |
Specifies how the client handles the IP address returned in the FTP server's PASV response.
| enum PortMode |
Specifies how the client determines the IP address sent in the PORT command (Active Mode).
The Problem: In Active Mode (IFTPConnection::Passive = FALSE), the client must tell the server its own IP address so the server can open a connection back to the client.
Usage: Use this enum to set the IFTPConnection::PortMode property. It determines whether the component automatically uses the local machine's IP or uses a manually specified override.
| Enumerator | |
|---|---|
| ftpPortModeDefault | Use the local machine's IP address. The component detects the local network interface's IP address and sends it in the PORT command. Use Case: Works for Intranets or when the client has a direct public IP. Fails behind NAT. |
| ftpPortModeManual | Use the custom IP address defined in the IFTPConnection::PortIP property. The component sends the specific string found in the IFTPConnection::PortIP property. If IFTPConnection::PortIP is empty, this falls back to ftpPortModeDefault. Use Case: Essential for clients behind NAT. You must set IFTPConnection::PortIP to your router's WAN IP so the server knows the correct return address. |
| enum ProtocolFamily |
| enum ProxyType |
| enum ServerCapability |
| enum ServerSoftware |
server software running on the remote server
Detected from the welcome line or FEAT reply. Not reliable.
| enum ServerType |
Identifies the operating system or server software type of the remote host.
The Mechanism: Upon connecting, the component sends the SYST command. The server responds with a string identifying its system type (RFC 959). The component parses this string to determine how to handle file paths and directory listings.
Why it matters:
| enum SFTPConnectionStatus |
| enum SFTPStatus |
| enum SSHCompression |
Identifies the compression algorithms available for the SSH connection.
These values are used to negotiate the data compression method during the SSH handshake.
| enum SSHPublicKeyAlgo |
Defines the public key algorithms used for server host keys and client authentication.
These algorithms are used during the SSH handshake to verify the identity of the server (Host Key) and to authenticate the user (Public Key Authentication).
| Enumerator | |
|---|---|
| ftpSSHPublicKeyAlgoUnknown | |
| ftpSSHPublicKeyAlgoRSA | RSA with SHA-1.
|
| ftpSSHPublicKeyAlgoRSASHA2256 | RSA with SHA-256 (RFC 8332). Recommended RSA variant. |
| ftpSSHPublicKeyAlgoRSASHA2512 | RSA with SHA-512 (RFC 8332). Strongest RSA variant. |
| ftpSSHPublicKeyAlgoECDSA256 | NIST P-256 Curve. Standard balance of speed and security. |
| ftpSSHPublicKeyAlgoECDSA384 | NIST P-384 Curve. Increased security strength over P-256. |
| ftpSSHPublicKeyAlgoECDSA521 | NIST P-521 Curve. Maximum security strength among standard NIST curves. |
| ftpSSHPublicKeyAlgoEd25519 | Edwards-curve Digital Signature Algorithm (Curve25519). Highly recommended: Immune to many side-channel attacks and significantly faster than ECDSA. |
| ftpSSHPublicKeyAlgoEd448 | Ed448 (Goldilocks curve). Higher security level than Ed25519. |
| ftpSSHPublicKeyAlgoMlDsa44 | NIST Post-Quantum standard (Module-Lattice-Based Digital Signature). Designed to be secure against future quantum computer attacks. |
| ftpSSHPublicKeyAlgoMlDsa65 | NIST Post-Quantum standard. Increased security strength (Category 3). |
| ftpSSHPublicKeyAlgoMlDsa87 | NIST Post-Quantum standard. Maximum security strength (Category 5). |
| ftpSSHPublicKeyAlgox509v3RSA | RSA key wrapped in an X.509 certificate. |
| ftpSSHPublicKeyAlgox509v3ECDSA256 | ECDSA P-256 key wrapped in an X.509 certificate. |
| ftpSSHPublicKeyAlgox509v3ECDSA384 | ECDSA P-384 key wrapped in an X.509 certificate. |
| ftpSSHPublicKeyAlgox509v3ECDSA521 | ECDSA P-521 key wrapped in an X.509 certificate. |
| ftpSSHPublicKeyAlgox509v3RSA2048SHA256 | RSA-2048 key with SHA-256 wrapped in an X.509 certificate. |
| ftpSSHPublicKeyAlgoRSASHA2256CertOpenSSH | OpenSSH Certificate using RSA key with SHA-256 signature. |
| ftpSSHPublicKeyAlgoRSASHA2512CertOpenSSH | OpenSSH Certificate using RSA key with SHA-512 signature. |
| ftpSSHPublicKeyAlgoEd25519CertOpenSSH | OpenSSH Certificate using Ed25519 key. Modern, high-speed standard. |
| ftpSSHPublicKeyAlgoRSACertOpenSSH | Legacy OpenSSH Certificate using RSA key (SHA-1). Deprecated. |
| ftpSSHPublicKeyAlgoDSACertOpenSSH | Legacy OpenSSH Certificate using DSA key. Deprecated. |
| ftpSSHPublicKeyAlgoECDSA256CertOpenSSH | OpenSSH Certificate using ECDSA P-256 key. |
| ftpSSHPublicKeyAlgoECDSA384CertOpenSSH | OpenSSH Certificate using ECDSA P-384 key. |
| ftpSSHPublicKeyAlgoECDSA521CertOpenSSH | OpenSSH Certificate using ECDSA P-521 key. |
| ftpSSHPublicKeyAlgoDSA | Digital Signature Algorithm.
|
| enum SSHServerSoftware |
| enum StatusEventType |