SecureBlackbox 2020 iOS Edition

Questions / Feedback?

FTPServer Class

Properties   Methods   Events   Configuration Settings   Errors  

The FTPServer class provides server-side functionality for FTP and FTPS protocols.

Syntax

SecureBlackboxFTPServer
SecureBlackboxFTPServerSwift

Remarks

FTPServer supports FTP (File Transfer Protocol) and FTPS (FTP-over-SSL) protocols. The FTPS protocol allows you to securely perform file transfer operations on the server over Transport Layer Security (TLS). TLS is a successor to the now deprecated SSL protocol, although the latter abbreviation is still widely used.

Property List


The following is the full list of the properties of the class with short descriptions. Click on the links for further details.

- activeWhether the server is active and can accept incoming connections.
- allowAnonymousAllows and disallows anonymous connections.
- clientFileEntryEntryFormatThe file listing format: cfefUnknown 0 cfefUnix 1 cfefWindows 2 cfefMLSD 3 .
- clientFileEntryFileDateFile last modification date.
- clientFileEntryFileTypeThe type of the entry: cfetUnknown 0 cfetDirectory 1 cfetFile 2 cfetSymlink 3 cfetSpecial 4 cfetCurrentDirectory 5 cfetParentDirectory 6 .
- clientFileEntryHandleAllows to get or set a 'handle', a unique identifier of the underlying property object.
- clientFileEntryNameThe file or directory name.
- clientFileEntryPathThe full path to the file or directory.
- clientFileEntryRawDataThe unparsed entry as returned by the server.
- clientFileEntrySizeFile size in bytes.
- dataHostHost address for incoming data channel connections.
- dataPortRangeFromSpecifies the lower port range bound for passive mode data connections.
- dataPortRangeToSpecifies the upper port range bound for passive mode data connections.
- externalCryptoCustomParamsCustom parameters to be passed to the signing service (uninterpreted).
- externalCryptoDataAdditional data to be included in the async state and mirrored back by the requestor.
- externalCryptoExternalHashCalculationSpecifies whether the message hash is to be calculated at the external endpoint.
- externalCryptoHashAlgorithmSpecifies the request's signature hash algorithm.
- externalCryptoKeyIDThe ID of the pre-shared key used for DC request authentication.
- externalCryptoKeySecretThe pre-shared key used for DC request authentication.
- externalCryptoMethodSpecifies the asynchronous signing method.
- externalCryptoModeSpecifies the external cryptography mode.
- externalCryptoPublicKeyAlgorithmProvide public key algorithm here if the certificate is not available on the pre-signing stage.
- handshakeTimeoutSpecifies the handshake timeout in milliseconds.
- hostSpecifies the server host.
- implicitSSLEnables or disables implicit SSL mode.
- passiveModeHostThe IP address of the passive mode host.
- pinnedClientAddressThe client's IP address.
- pinnedClientChainValidationDetailsThe details of a certificate chain validation outcome.
- pinnedClientChainValidationResultThe outcome of a certificate chain validation routine.
- pinnedClientCiphersuiteThe cipher suite employed by this connection.
- pinnedClientClientAuthenticatedSpecifies whether client authentication was performed during this connection.
- pinnedClientDigestAlgorithmThe digest algorithm used in a TLS-enabled connection.
- pinnedClientEncryptionAlgorithmThe symmetric encryption algorithm used in a TLS-enabled connection.
- pinnedClientIDThe client connection's unique identifier.
- pinnedClientKeyExchangeAlgorithmThe key exchange algorithm used in a TLS-enabled connection.
- pinnedClientKeyExchangeKeyBitsThe length of the key exchange key of a TLS-enabled connection.
- pinnedClientNamedECCurveThe elliptic curve used in this connection.
- pinnedClientPFSCipherIndicates whether the chosen ciphersuite provides perfect forward secrecy (PFS).
- pinnedClientPortThe remote port of the client connection.
- pinnedClientPublicKeyBitsThe length of the public key.
- pinnedClientResumedSessionIndicates whether a TLS-enabled connection was spawned from another TLS connection.
- pinnedClientSecureConnectionIndicates whether TLS or SSL is enabled for this connection.
- pinnedClientSignatureAlgorithmThe signature algorithm used in a TLS handshake.
- pinnedClientSymmetricBlockSizeThe block size of the symmetric algorithm used.
- pinnedClientSymmetricKeyBitsThe key length of the symmetric algorithm used.
- pinnedClientTotalBytesReceivedThe total number of bytes received over this connection.
- pinnedClientTotalBytesSentThe total number of bytes sent over this connection.
- pinnedClientValidationLogContains the server certificate's chain validation log.
- pinnedClientVersionIndicates the version of SSL/TLS protocol negotiated during this connection.
- pinnedClientCertCountThe number of records in the PinnedClientCert arrays.
- pinnedClientCertBytes:(int)pinnedClientCertIndexReturns raw certificate data in DER format.
- pinnedClientCertCAKeyID:(int)pinnedClientCertIndexA unique identifier (fingerprint) of the CA certificate's private key.
- pinnedClientCertFingerprint:(int)pinnedClientCertIndexContains the fingerprint (a hash imprint) of this certificate.
- pinnedClientCertHandle:(int)pinnedClientCertIndexAllows to get or set a 'handle', a unique identifier of the underlying property object.
- pinnedClientCertIssuer:(int)pinnedClientCertIndexThe common name of the certificate issuer (CA), typically a company name.
- pinnedClientCertIssuerRDN:(int)pinnedClientCertIndexA collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate issuer.
- pinnedClientCertKeyAlgorithm:(int)pinnedClientCertIndexSpecifies the public key algorithm of this certificate.
- pinnedClientCertKeyBits:(int)pinnedClientCertIndexReturns the length of the public key.
- pinnedClientCertKeyFingerprint:(int)pinnedClientCertIndexReturns a fingerprint of the public key contained in the certificate.
- pinnedClientCertKeyUsage:(int)pinnedClientCertIndexIndicates the purposes of the key contained in the certificate, in the form of an OR'ed flag set.
- pinnedClientCertPublicKeyBytes:(int)pinnedClientCertIndexContains the certificate's public key in DER format.
- pinnedClientCertSelfSigned:(int)pinnedClientCertIndexIndicates whether the certificate is self-signed (root) or signed by an external CA.
- pinnedClientCertSerialNumber:(int)pinnedClientCertIndexReturns the certificate's serial number.
- pinnedClientCertSigAlgorithm:(int)pinnedClientCertIndexIndicates the algorithm that was used by the CA to sign this certificate.
- pinnedClientCertSubject:(int)pinnedClientCertIndexThe common name of the certificate holder, typically an individual's name, a URL, an e-mail address, or a company name.
- pinnedClientCertSubjectKeyID:(int)pinnedClientCertIndexContains a unique identifier (fingerprint) of the certificate's private key.
- pinnedClientCertSubjectRDN:(int)pinnedClientCertIndexA collection of information, in the form of [OID, Value] pairs, uniquely identifying the certificate holder (subject).
- pinnedClientCertValidFrom:(int)pinnedClientCertIndexThe time point at which the certificate becomes valid, in UTC.
- pinnedClientCertValidTo:(int)pinnedClientCertIndexThe time point at which the certificate expires, in UTC.
- portThe port number to listen for incoming connections on.
- readOnlyMakes the server's file system read-only for all users.
- rootDirectorySpecifies the server's root directory.
- serverCertCountThe number of records in the ServerCert arrays.
- serverCertBytes:(int)serverCertIndexReturns raw certificate data in DER format.
- serverCertHandle:(int)serverCertIndexAllows to get or set a 'handle', a unique identifier of the underlying property object.
- sessionTimeoutSpecifies the session timeout in milliseconds.
- socketIncomingSpeedLimitThe maximum number of bytes to read from the socket, per second.
- socketLocalAddressThe local network interface to bind the socket to.
- socketLocalPortThe local port number to bind the socket to.
- socketOutgoingSpeedLimitThe maximum number of bytes to write to the socket, per second.
- socketTimeoutThe maximum period of waiting, in milliseconds, after which the socket operation is considered unsuccessful.
- socketUseIPv6Enables or disables IP protocol version 6.
- TLSAutoValidateCertificatesSpecifies whether server-side TLS certificates should be validated automatically using internal validation rules.
- TLSBaseConfigurationSelects the base configuration for the TLS settings.
- TLSCiphersuitesA list of ciphersuites separated with commas or semicolons.
- TLSECCurvesDefines the elliptic curves to enable.
- TLSForceResumeIfDestinationChangesWhether to force TLS session resumption when the destination address changes.
- TLSPreSharedIdentityDefines the identity used when the PSK (Pre-Shared Key) key-exchange mechanism is negotiated.
- TLSPreSharedKeyContains the pre-shared for the PSK (Pre-Shared Key) key-exchange mechanism, encoded with base16.
- TLSPreSharedKeyCiphersuiteDefines the ciphersuite used for PSK (Pre-Shared Key) negotiation.
- TLSRenegotiationAttackPreventionModeSelects renegotiation attack prevention mechanism.
- TLSRevocationCheckSpecifies the kind(s) of revocation check to perform.
- TLSSSLOptionsVarious SSL (TLS) protocol options, set of cssloExpectShutdownMessage 0x001 Wait for the close-notify message when shutting down the connection cssloOpenSSLDTLSWorkaround 0x002 (DEPRECATED) Use a DTLS version workaround when talking to very old OpenSSL versions cssloDisableKexLengthAlignment 0x004 Do not align the client-side PMS by the RSA modulus size.
- TLSTLSModeSpecifies the TLS mode to use.
- TLSUseExtendedMasterSecretEnables Extended Master Secret Extension, as defined in RFC 7627.
- TLSUseSessionResumptionEnables or disables TLS session resumption capability.
- TLSVersionsTh SSL/TLS versions to enable by default.
- userCountThe number of records in the User arrays.
- userAssociatedData:(int)userIndexContains the user's Associated Data when SSH AEAD (Authenticated Encryption with Associated Data) algorithm is used.
- userBasePath:(int)userIndexBase path for this user in the server's file system.
- userCert:(int)userIndexContains the user's certificate.
- userData:(int)userIndexContains uninterpreted user-defined data that should be associated with the user account, such as comments or custom settings.
- userHandle:(int)userIndexAllows to get or set a 'handle', a unique identifier of the underlying property object.
- userHashAlgorithm:(int)userIndexSpecifies the hash algorithm used to generate TOTP (Time-based One-Time Passwords) passwords for this user.
- userIncomingSpeedLimit:(int)userIndexSpecifies the incoming speed limit for this user.
- userOutgoingSpeedLimit:(int)userIndexSpecifies the outgoing speed limit for this user.
- userPassword:(int)userIndexThe user's authentication password.
- userSharedSecret:(int)userIndexContains the user's secret key, which is essentially a shared secret between the client and server.
- userUsername:(int)userIndexThe registered name (login) of the user.
- useUTF8Enables or disables UTF8 file name conversions.

Method List


The following is the full list of the methods of the class with short descriptions. Click on the links for further details.

- configSets or retrieves a configuration setting.
- dropClientTerminates a client connection.
- getClientBufferObtains a pending connection buffer.
- listClientsEnumerates the connected clients.
- pinClientTakes a snapshot of the connection's properties.
- setClientBufferCommits a data buffer to the connection.
- setClientFileEntryCommits a file entry to the connection.
- startStarts the server.
- stopStops the server.

Event List


The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.

- onAcceptReports an incoming connection.
- onAfterChangeDirectorySignals the completion of a directory change operation.
- onAfterCreateDirectorySignals the completion of a directory creation operation.
- onAfterRemoveDirectorySignals the completion of a directory removal operation.
- onAfterRemoveFileSignals the completion of a file removal operation.
- onAfterRenameFileSignals the completion of a file renaming operation.
- onAfterRequestAttributesSignals the completion of an attribute request.
- onAuthAttemptFires when a connected client makes an authentication attempt.
- onBeforeChangeDirectoryNotifies about an incoming change directory request.
- onBeforeCreateDirectoryNotifies about an incoming create directory request.
- onBeforeDownloadFileNotifies about an incoming file download request.
- onBeforeFindNotifies about an incoming file listing request.
- onBeforeRemoveDirectoryNotifies about an incoming directory removal request.
- onBeforeRemoveFileNotifies about an incoming file removal request.
- onBeforeRenameFileNotifies about an incoming file rename request.
- onBeforeRequestAttributesNotifies about an incoming attributes request.
- onBeforeSendReplyNotifies the application of a command reply being sent.
- onBeforeUploadFileNotifies about an incoming file upload request.
- onCertificateValidateFires when a client certificate needs to be validated.
- onChangeDirectoryAn override for a directory change operation.
- onCommandProcessedSignals that a command has been processed by the server.
- onCommandReceivedSignals that a command has been received from the client.
- onConnectReports an accepted connection.
- onCreateDirectoryAn override for a directory creation operation.
- onDisconnectFires to report a disconnected client.
- onDownloadFileAn override for a file download initiation operation.
- onErrorInformation about errors during data delivery.
- onExternalSignHandles remote or external signing initiated by the server protocol.
- onFindCloseSignals the completion of a directory listing request.
- onFindInitAn override for a directory listing initiation operation.
- onFindNextAn override for a directory listing entry request operation.
- onNotificationThis event notifies the application about an underlying control flow event.
- onReadFileRequests a piece of file data from the application.
- onRemoveDirectoryAn override for a directory removal operation.
- onRemoveFileAn override for a file remove operation.
- onRenameFileAn override for a file rename operation.
- onRequestAttributesAn override for an attribute request.
- onTransferCompletedThis event is fired when a customized upload or download operation completes.
- onUploadFileAn override for a file upload initiation operation.
- onWriteFileHands a piece of file data to the application.

Configuration Settings


The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.

ActiveChannelThe channel to which the event that is being invoked corresponds.
ClientAuthEnables or disables certificate-based client authentication.
DualStackAllows the use of IPv4 and IPv6 simultaneously.
RefreshUsersEnables or disables real-time propagation of user information.
SecurityOptionsVarious options of the secure connection.
CheckKeyIntegrityBeforeUseEnables or disable private key integrity check before use.
CookieCachingSpecifies whether a cookie cache should be used for HTTP(S) transports.
CookiesGets or sets local cookies for the class (supported for HTTPClient, RESTClient and SOAPClient only).
DefDeriveKeyIterationsSpecifies the default key derivation algorithm iteration count.
EnableClientSideSSLFFDHEEnables or disables finite field DHE key exchange support in TLS clients.
GlobalCookiesGets or sets global cookies for all the HTTP transports.
HttpUserAgentSpecifies the user agent name to be used by all HTTP clients.
LogDestinationSpecifies the debug log destination.
LogDetailsSpecifies the debug log details to dump.
LogFileSpecifies the debug log filename.
LogFiltersSpecifies the debug log filters.
LogFlushModeSpecifies the log flush mode.
LogLevelSpecifies the debug log level.
LogMaxEventCountSpecifies the maximum number of events to cache before further action is taken.
LogRotationModeSpecifies the log rotation mode.
MaxASN1BufferLengthSpecifies the maximal allowed length for ASN.1 primitive tag data.
MaxASN1TreeDepthSpecifies the maximal depth for processed ASN.1 trees.
OCSPHashAlgorithmSpecifies the hash algorithm to be used to identify certificates in OCSP requests.
UseOwnDNSResolverSpecifies whether the client classes should use own DNS resolver.
UseSharedSystemStoragesSpecifies whether the validation engine should use a global per-process copy of the system certificate stores.
UseSystemOAEPAndPSSEnforces or disables the use of system-driven RSA OAEP and PSS computations.
UseSystemRandomEnables or disables the use of the OS PRNG.

Copyright (c) 2022 /n software inc. - All rights reserved.
SecureBlackbox 2020 iOS Edition - Version 20.0 [Build 8166]