AS3Receiver Module
Properties Methods Events Config Settings Errors
The AS3Receiver module is used to process AS3 messages and generate receipts.
Syntax
IPWorksEDI.As3receiver
Remarks
The AS3Receiver class allows you to receive AS3 messages over FTP, as specified in [AS3] and RFC 3335. The class can act as a FTP client, decrypt and verify incoming messages, and generate receipts including Message Disposition Notifications (MDNs). The class is designed to interoperate easily with a standard FTP server.
BASIC OPERATION
You should first log in to the FTP server by invoking Logon. If you need to search the FTP server for requests you may set RemotePath, invoke ListDirectory, etc. When you find the desired files you may then download them invoking ReadRequest. Alternatively, if you acquire the AS3 data by other means you may simply set Request.
ReadRequest (or ParseHeaders) will determine information such as AS3From and AS3To, which will allow you to set the appropriate certificates. You may specify your certificate with the Certificate property, and your trading partner's (signing) certificate with the SignerCert property.
Then, invoke ProcessRequest to process the request and generate the MDN receipt as specified in [AS3]. If the request was processed successfully, EDIData will contain the transmitted EDI data. If a problem occurred, EDIData will not be populated and an exception will be thrown. In either case MDNReceipt will contain the RFC-compliant receipt, which should be returned to the client.
The MDNReceipt may be returned over the same FTP connection by invoking SendResponse. If it is necessary to create a new connection or send receipts to a different server you may Logoff and Logon at will.
To create log files, set LogDirectory prior to invoking ProcessRequest. This will log all incoming and outgoing data, and will also write the received EDI files to disk.
EXAMPLE
AS3Receiver1.User = "myusername"
AS3Receiver1.Password = "mypassword"
AS3Receiver1.RemoteHost = "ftp.mytradingpartner.com"
AS3Receiver1.Logon()
// You may need to search the server for received files at this point
AS3Receiver1.ReadRequest("1053-ji094986.as3")
// At this point, you should check the values of AS2From and AS2To.
AS3Receiver1.Certificate = new Certificate(CertStoreTypes.cstPFXFile, "\\my_server_directory\\my_pfx_file.pfx", "my password", "CN=Me");
AS3Receiver1.SignerCert = (...);
AS3Receiver1.LogDirectory = "c:\\my_server_directory\\my_log_directory";
AS3Receiver1.ProcessRequest();
// It will probably be necessary to change the RemotePath or even logon
// to a different server here.
AS3Receiver1.SendResponse("1053-ji094986-mdn.as3");
Additional functionality allows the user to examine details of the client's
request, to permit certain types of errors, or to customize the outgoing MDN.
See the property and method list for details.
Property List
The following is the full list of the properties of the module with short descriptions. Click on the links for further details.
AS3From | The identity of the sending system. |
AS3To | The identity of the receiving system. |
AS3VersionIncoming | The version of AS3 being used. |
AS3VersionOutgoing | The version of AS3 being used. |
Attachments | Collection of files attached to the current message. |
CertEncoded | This is the certificate (PEM/base64 encoded). |
CertStore | This is the name of the certificate store for the client certificate. |
CertStorePassword | If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store. |
CertStoreType | This is the type of certificate store for this certificate. |
CertSubject | This is the subject of the certificate used for client authentication. |
CompressionFormat | The compression format used on the incoming message. |
Connected | This shows whether the module is connected. |
EDIData | The EDI data sent in Request . |
Firewall | A set of properties related to firewall access. |
FTPCommand | An FTP command to be sent directly to the FTP server. |
FTPLastReply | The last reply from the FTP server. |
LocalHost | The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
LogDirectory | The path to a directory for logging. |
LogFile | The log file written. |
MDNReceipt | The MDN-based receipt generated by the module. |
MDNTo | The URL for the Message Disposition Notification (MDN). |
MessageId | The message ID of the incoming message. |
Passive | This controls whether or not to direct the server into a passive mode. It is recommended if behind a firewall. |
Password | This is the password used to log in. |
RemoteHost | This is the domain name or IP address of the FTP server. |
RemotePath | This is the current path in the FTP server. |
RemotePort | This is the port for the FTP service (default is 21). |
Request | The AS3 request to process. |
RequestHeaders | The headers in the AS3 request. |
RequestHeadersString | The headers in the AS3 request. |
ScanResult | The result of invoking ParseRequest . |
SignerCertEncoded | This is the certificate (PEM/base64 encoded). |
SignerCertStore | This is the name of the certificate store for the client certificate. |
SignerCertStorePassword | If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store. |
SignerCertStoreType | This is the type of certificate store for this certificate. |
SignerCertSubject | This is the subject of the certificate used for client authentication. |
SSLAcceptServerCertEncoded | This is the certificate (PEM/base64 encoded). |
SSLCertEncoded | This is the certificate (PEM/base64 encoded). |
SSLCertStore | This is the name of the certificate store for the client certificate. |
SSLCertStorePassword | If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store. |
SSLCertStoreType | This is the type of certificate store for this certificate. |
SSLCertSubject | This is the subject of the certificate used for client authentication. |
SSLProvider | This specifies the SSL/TLS implementation to use. |
SSLServerCertEncoded | This is the certificate (PEM/base64 encoded). |
SSLStartMode | Determines how the module starts the SSL negotiation. By default, SSL will not be used. |
Timeout | A timeout for the module. |
User | This property contains the user identifier to use to log in. |
Method List
The following is the full list of the methods of the module with short descriptions. Click on the links for further details.
Abort | The method aborts the current upload or download. |
ChangeRemotePath | This method changes the current path on the FTP server. |
Config | Sets or retrieves a configuration setting. |
CreateMDNReceipt | Creates MDNReceipt . |
DeleteFile | This method removes a file specified by FileName from an FTP server. |
GetFileSize | Gets the size of a file on the FTP server. |
GetFileTime | Gets the last modification time of a file on the FTP server. |
ListDirectory | List the current directory on an FTP server. |
ListDirectoryLong | List the current directory on an FTP server. |
Logoff | This method is used to log off from the FTP server by posting a QUIT command. |
Logon | Logon to the FTP RemoteHost using the current User and Password . |
ParseRequest | Parses the EDI message and determines the EDIData . |
ProcessRequest | Processes the EDI data, and generates the receipt. |
ReadRequest | Reads the AS3 request from the FTP server. |
Reset | Resets the state of the control. |
SendResponse | Uploads the MDN receipt. |
Event List
The following is the full list of the events fired by the module with short descriptions. Click on the links for further details.
ConnectionStatus | This event is fired to indicate changes in the connection state. |
DirList | This event is fired when a directory entry is received. |
EndTransfer | This event is fired when a file finishes downloading or uploading. |
Error | Information about errors during data delivery. |
Log | Fired with log information while processing a message. |
PITrail | This event traces the commands sent to the server, and the respective replies. |
SignerCertInfo | This event is fired during verification of the signed message. |
SSLServerAuthentication | Fired after the server presents its certificate to the client. |
SSLStatus | Shows the progress of the secure connection. |
StartTransfer | This event fires when a file starts downloading or uploading. |
Transfer | This event is fired during the file download or upload. |
Config Settings
The following is a list of config settings for the module with short descriptions. Click on the links for further details.
LogFilename | The base name of the log file. |
ActiveModeIP | Allows the specification of the IP address that the server will connect to for active mode connections. |
ActiveModePORTAddress | Allows the specification of the PORT address value for active mode connections. |
AppendToLocalFile | Append downloaded files to a local file. |
ApplyFileMaskLocally | Whether to filter the directory listing locally or on the server. |
AutoSelectDataIP | Automatically select the data connection IP. |
CalculatePercentDone | Enables or Disables calculating the percent complete for downloads. |
CheckTotalEntry | Whether to ignore directory listing total lines. |
DILinger | When set to True, DI connections are terminated gracefully. |
DILingerTime | Time in seconds to have the DI connection linger. |
FileTimeFormat | The format of file time reported by the server. |
IgnoreEntries | Directory entry data to ignore. |
MaskSensitive | Masks passwords in logs. |
ModeZCompressionLevel | Used to specify the level of compression used. |
PortRange | Allows the specification of a port range where the module listens for active mode connections. |
PreserveFileTime | Attempts to preserve timestamps when transferring files. |
RealTimeUpload | Enables real time uploading. |
RealTimeUploadAgeLimit | The age limit in seconds when using RealTimeUpload. |
ReusePISSLSessionInDI | Whether the PI SSL session will be reused for the DI connection. |
ReuseSSLSessionInDI | Whether the SSL session will be reused for the DI connection. |
UseClearChannel | Allows for the Clear Command Channel (CCC) command. |
UseClearDataChannel | Allows for the PROT C command. |
UseEPSV | Allows extended passive mode. |
UseMLSD | Uses listings for machine processing. |
UseMLST | Uses single file listing for machine processing. |
UseModeZ | Allows compression to be used when transferring data. |
UseOldAUTHSSL | Allows use of the 'AUTH SSL' command instead of 'AUTH TLS'. |
UseProtWhenImplicit | Sends the PROT P command to the server. |
UseRemoteHostAddressForPassive | Instructs the module to use the address specified by RemoteHost when establishing a data connection. |
VirtualHostName | Sends the HOST command to the server. |
ConnectionTimeout | Sets a separate timeout value for establishing a connection. |
FirewallAutoDetect | Tells the module whether or not to automatically detect and use firewall system settings, if available. |
FirewallHost | Name or IP address of firewall (optional). |
FirewallPassword | Password to be used if authentication is to be used when connecting through the firewall. |
FirewallPort | The TCP port for the FirewallHost;. |
FirewallType | Determines the type of firewall to connect through. |
FirewallUser | A user name if authentication is to be used connecting through a firewall. |
KeepAliveInterval | The retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received. |
KeepAliveTime | The inactivity time in milliseconds before a TCP keep-alive packet is sent. |
Linger | When set to True, connections are terminated gracefully. |
LingerTime | Time in seconds to have the connection linger. |
LocalHost | The name of the local host through which connections are initiated or accepted. |
LocalPort | The port in the local host where the module binds. |
MaxLineLength | The maximum amount of data to accumulate when no EOL is found. |
MaxTransferRate | The transfer rate limit in bytes per second. |
ProxyExceptionsList | A semicolon separated list of hosts and IPs to bypass when using a proxy. |
TCPKeepAlive | Determines whether or not the keep alive socket option is enabled. |
TcpNoDelay | Whether or not to delay when sending packets. |
UseIPv6 | Whether to use IPv6. |
LogSSLPackets | Controls whether SSL packets are logged when using the internal security API. |
OpenSSLCADir | The path to a directory containing CA certificates. |
OpenSSLCAFile | Name of the file containing the list of CA's trusted by your application. |
OpenSSLCipherList | A string that controls the ciphers to be used by SSL. |
OpenSSLPrngSeedData | The data to seed the pseudo random number generator (PRNG). |
ReuseSSLSession | Determines if the SSL session is reused. |
SSLCACerts | A newline separated list of CA certificate to use during SSL client authentication. |
SSLCheckCRL | Whether to check the Certificate Revocation List for the server certificate. |
SSLCheckOCSP | Whether to use OCSP to check the status of the server certificate. |
SSLCipherStrength | The minimum cipher strength used for bulk encryption. |
SSLEnabledCipherSuites | The cipher suite to be used in an SSL negotiation. |
SSLEnabledProtocols | Used to enable/disable the supported security protocols. |
SSLEnableRenegotiation | Whether the renegotiation_info SSL extension is supported. |
SSLIncludeCertChain | Whether the entire certificate chain is included in the SSLServerAuthentication event. |
SSLKeyLogFile | The location of a file where per-session secrets are written for debugging purposes. |
SSLNegotiatedCipher | Returns the negotiated ciphersuite. |
SSLNegotiatedCipherStrength | Returns the negotiated ciphersuite strength. |
SSLNegotiatedCipherSuite | Returns the negotiated ciphersuite. |
SSLNegotiatedKeyExchange | Returns the negotiated key exchange algorithm. |
SSLNegotiatedKeyExchangeStrength | Returns the negotiated key exchange algorithm strength. |
SSLNegotiatedVersion | Returns the negotiated protocol version. |
SSLSecurityFlags | Flags that control certificate verification. |
SSLServerCACerts | A newline separated list of CA certificate to use during SSL server certificate validation. |
TLS12SignatureAlgorithms | Defines the allowed TLS 1.2 signature algorithms when SSLProvider is set to Internal. |
TLS12SupportedGroups | The supported groups for ECC. |
TLS13KeyShareGroups | The groups for which to pregenerate key shares. |
TLS13SignatureAlgorithms | The allowed certificate signature algorithms. |
TLS13SupportedGroups | The supported groups for (EC)DHE key exchange. |
AbsoluteTimeout | Determines whether timeouts are inactivity timeouts or absolute timeouts. |
FirewallData | Used to send extra data to the firewall. |
InBufferSize | The size in bytes of the incoming queue of the socket. |
OutBufferSize | The size in bytes of the outgoing queue of the socket. |
BuildInfo | Information about the product's build. |
CodePage | The system code page used for Unicode to Multibyte translations. |
LicenseInfo | Information about the current license. |
UseInternalSecurityAPI | Tells the module whether or not to use the system security libraries or an internal implementation. |
AS3From Property (AS3Receiver Module)
The identity of the sending system.
Syntax
public var as3From: String { get {...} }
@property (nonatomic,readonly,assign,getter=AS3From) NSString* AS3From; - (NSString*)AS3From;
Default Value
""
Remarks
May be company name, DUNS number, or anything agreed on by trading partners.
This property is read-only.
AS3To Property (AS3Receiver Module)
The identity of the receiving system.
Syntax
public var as3To: String { get {...} }
@property (nonatomic,readonly,assign,getter=AS3To) NSString* AS3To; - (NSString*)AS3To;
Default Value
""
Remarks
May be company name, DUNS number, or anything agreed on by trading partners.
This property is read-only.
AS3VersionIncoming Property (AS3Receiver Module)
The version of AS3 being used.
Syntax
public var as3VersionIncoming: String { get {...} }
@property (nonatomic,readonly,assign,getter=AS3VersionIncoming) NSString* AS3VersionIncoming; - (NSString*)AS3VersionIncoming;
Default Value
"1.0"
Remarks
The version of AS3 being used on the incoming transmission. Should be "1.0".
This property is read-only.
AS3VersionOutgoing Property (AS3Receiver Module)
The version of AS3 being used.
Syntax
public var as3VersionOutgoing: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=AS3VersionOutgoing,setter=setAS3VersionOutgoing:) NSString* AS3VersionOutgoing; - (NSString*)AS3VersionOutgoing; - (void)setAS3VersionOutgoing :(NSString*)newAS3VersionOutgoing;
Default Value
"1.0"
Remarks
The version of AS3 being used on the outgoing transmission. Should be "1.0".
Attachments Property (AS3Receiver Module)
Collection of files attached to the current message.
Syntax
public var attachments: Array<EDIAttachment> { get {...} }
@property (nonatomic,readonly,assign,getter=attachmentCount) int attachmentCount; - (int)attachmentCount; - (NSString*)attachmentContentType:(int)attachmentIndex; - (NSString*)attachmentData:(int)attachmentIndex; - (NSData*)attachmentDataB:(int)attachmentIndex; - (NSString*)attachmentFilename:(int)attachmentIndex; - (NSString*)attachmentHeaders:(int)attachmentIndex; - (NSString*)attachmentName:(int)attachmentIndex;
Default Value
""
Remarks
This property contains the user identifier to be used when logging in. It must be set before the class connects to the FTP server.
CertEncoded Property (AS3Receiver Module)
This is the certificate (PEM/base64 encoded).
Syntax
public var certEncoded: String { get {...} set {...} }
public var certEncodedB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=certEncoded,setter=setCertEncoded:) NSString* certEncoded; - (NSString*)certEncoded; - (void)setCertEncoded :(NSString*)newCertEncoded; @property (nonatomic,readwrite,assign,getter=certEncodedB,setter=setCertEncodedB:) NSData* certEncodedB; - (NSData*)certEncodedB; - (void)setCertEncodedB :(NSData*)newCertEncoded;
Default Value
""
Remarks
This is the certificate (PEM/base64 encoded). This property is used to assign a specific certificate. The CertStore and CertSubject properties also may be used to specify a certificate.
When CertEncoded is set, a search is initiated in the current CertStore for the private key of the certificate. If the key is found, CertSubject is updated to reflect the full subject of the selected certificate; otherwise, CertSubject is set to an empty string.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setCertEncodedB(certEncoded: Data) throws public func setCertEncoded(certEncoded: String) throws
CertStore Property (AS3Receiver Module)
This is the name of the certificate store for the client certificate.
Syntax
public var certStore: String { get {...} set {...} }
public var certStoreB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=certStore,setter=setCertStore:) NSString* certStore; - (NSString*)certStore; - (void)setCertStore :(NSString*)newCertStore; @property (nonatomic,readwrite,assign,getter=certStoreB,setter=setCertStoreB:) NSData* certStoreB; - (NSData*)certStoreB; - (void)setCertStoreB :(NSData*)newCertStore;
Default Value
"MY"
Remarks
This is the name of the certificate store for the client certificate.
The CertStoreType property denotes the type of the certificate store specified by CertStore. If the store is password protected, specify the password in CertStorePassword.
CertStore is used in conjunction with the CertSubject property to specify client certificates. If CertStore has a value, and CertSubject or CertEncoded is set, a search for a certificate is initiated. Please see the CertSubject property for details.
Designations of certificate stores are platform-dependent.
The following are designations of the most common User and Machine certificate stores in Windows:
MY | A certificate store holding personal certificates with their associated private keys. |
CA | Certifying authority certificates. |
ROOT | Root certificates. |
When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
CertStorePassword Property (AS3Receiver Module)
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
Syntax
public var certStorePassword: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=certStorePassword,setter=setCertStorePassword:) NSString* certStorePassword; - (NSString*)certStorePassword; - (void)setCertStorePassword :(NSString*)newCertStorePassword;
Default Value
""
Remarks
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
CertStoreType Property (AS3Receiver Module)
This is the type of certificate store for this certificate.
Syntax
public var certStoreType: As3receiverCertStoreTypes { get {...} set {...} }
public enum As3receiverCertStoreTypes: Int32 { case cstUser = 0 case cstMachine = 1 case cstPFXFile = 2 case cstPFXBlob = 3 case cstJKSFile = 4 case cstJKSBlob = 5 case cstPEMKeyFile = 6 case cstPEMKeyBlob = 7 case cstPublicKeyFile = 8 case cstPublicKeyBlob = 9 case cstSSHPublicKeyBlob = 10 case cstP7BFile = 11 case cstP7BBlob = 12 case cstSSHPublicKeyFile = 13 case cstPPKFile = 14 case cstPPKBlob = 15 case cstXMLFile = 16 case cstXMLBlob = 17 case cstJWKFile = 18 case cstJWKBlob = 19 case cstSecurityKey = 20 case cstBCFKSFile = 21 case cstBCFKSBlob = 22 case cstAuto = 99 }
@property (nonatomic,readwrite,assign,getter=certStoreType,setter=setCertStoreType:) int certStoreType; - (int)certStoreType; - (void)setCertStoreType :(int)newCertStoreType;
Default Value
0
Remarks
This is the type of certificate store for this certificate.
The class supports both public and private keys in a variety of formats. When the cstAuto value is used the class will automatically determine the type. This property can take one of the following values:
0 (cstUser - default) | For Windows, this specifies that the certificate store is a certificate store owned by the current user. Note: this store type is not available in Java. |
1 (cstMachine) | For Windows, this specifies that the certificate store is a machine store. Note: this store type is not available in Java. |
2 (cstPFXFile) | The certificate store is the name of a PFX (PKCS12) file containing certificates. |
3 (cstPFXBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in PFX (PKCS12) format. |
4 (cstJKSFile) | The certificate store is the name of a Java Key Store (JKS) file containing certificates. Note: this store type is only available in Java. |
5 (cstJKSBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in Java Key Store (JKS) format. Note: this store type is only available in Java. |
6 (cstPEMKeyFile) | The certificate store is the name of a PEM-encoded file that contains a private key and an optional certificate. |
7 (cstPEMKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains a private key and an optional certificate. |
8 (cstPublicKeyFile) | The certificate store is the name of a file that contains a PEM- or DER-encoded public key certificate. |
9 (cstPublicKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains a PEM- or DER-encoded public key certificate. |
10 (cstSSHPublicKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains an SSH-style public key. |
11 (cstP7BFile) | The certificate store is the name of a PKCS7 file containing certificates. |
12 (cstP7BBlob) | The certificate store is a string (binary) representing a certificate store in PKCS7 format. |
13 (cstSSHPublicKeyFile) | The certificate store is the name of a file that contains an SSH-style public key. |
14 (cstPPKFile) | The certificate store is the name of a file that contains a PPK (PuTTY Private Key). |
15 (cstPPKBlob) | The certificate store is a string (binary) that contains a PPK (PuTTY Private Key). |
16 (cstXMLFile) | The certificate store is the name of a file that contains a certificate in XML format. |
17 (cstXMLBlob) | The certificate store is a string that contains a certificate in XML format. |
18 (cstJWKFile) | The certificate store is the name of a file that contains a JWK (JSON Web Key). |
19 (cstJWKBlob) | The certificate store is a string that contains a JWK (JSON Web Key). |
20 (cstSecurityKey) | The certificate is present on a physical security key accessible via a PKCS11 interface.
To use a security key the necessary data must first be collected using the CertMgr class. The ListStoreCertificates method may be called after setting CertStoreType to cstSecurityKey, CertStorePassword to the PIN, and CertStore to the full path of the PKCS11 dll. The certificate information returned in the CertList event's CertEncoded parameter may be saved for later use. When using a certificate, pass the previously saved security key information as the CertStore and set CertStorePassword to the PIN. Code Example: SSH Authentication with Security Key
|
21 (cstBCFKSFile) | The certificate store is the name of a file that contains a BCFKS (Bouncy Castle FIPS Key Store). Note: this store type is only available in Java and .NET. |
22 (cstBCFKSBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in BCFKS (Bouncy Castle FIPS Key Store) format. Note: this store type is only available in Java and .NET. |
99 (cstAuto) | The store type is automatically detected from the input data. This setting may be used with both public and private keys and can detect any of the supported formats automatically. |
CertSubject Property (AS3Receiver Module)
This is the subject of the certificate used for client authentication.
Syntax
public var certSubject: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=certSubject,setter=setCertSubject:) NSString* certSubject; - (NSString*)certSubject; - (void)setCertSubject :(NSString*)newCertSubject;
Default Value
""
Remarks
This is the subject of the certificate used for client authentication.
This property must be set after all other certificate properites are set. When this property is set, a search is performed in the current certificate store certificate with matching subject.
If a matching certificate is found, the property is set to the full subject of the matching certificate.
If an exact match is not found, the store is searched for subjects containing the value of the property.
If a match is still not found, the property is set to an empty string, and no certificate is selected.
The special value "*" picks a random certificate in the certificate store.
The certificate subject is a comma separated list of distinguished name fields and values. For instance "CN=www.server.com, OU=test, C=US, E=support@nsoftware.com". Common fields and their meanings are displayed below.
Field | Meaning |
CN | Common Name. This is commonly a host name like www.server.com. |
O | Organization |
OU | Organizational Unit |
L | Locality |
S | State |
C | Country |
E | Email Address |
If a field value contains a comma it must be quoted.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setCertSubject(certSubject: String) throws
CompressionFormat Property (AS3Receiver Module)
The compression format used on the incoming message.
Syntax
public var compressionFormat: As3receiverCompressionFormats { get {...} }
public enum As3receiverCompressionFormats: Int32 { case cfNone = 0 case cfZLIB = 1 }
@property (nonatomic,readonly,assign,getter=compressionFormat) int compressionFormat; - (int)compressionFormat;
Default Value
0
Remarks
The compression format used on the incoming message, if any. Compressed messages will automatically be decompressed by the class.
This property is read-only.
Connected Property (AS3Receiver Module)
This shows whether the module is connected.
Syntax
public var connected: Bool { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=connected,setter=setConnected:) BOOL connected; - (BOOL)connected; - (void)setConnected :(BOOL)newConnected;
Default Value
False
Remarks
This property is used to determine whether or not the class is connected to the remote host.
Note: It is recommended to use the Connect or Disconnect method instead of setting this property.
EDIData Property (AS3Receiver Module)
The EDI data sent in Request .
Syntax
public var ediData: EDIData { get {...} }
@property (nonatomic,readonly,assign,getter=EDIData) NSString* EDIData; - (NSString*)EDIData; @property (nonatomic,readonly,assign,getter=EDIDataB) NSData* EDIDataB; - (NSData*)EDIDataB; @property (nonatomic,readonly,assign,getter=EDIType) NSString* EDIType; - (NSString*)EDIType; @property (nonatomic,readonly,assign,getter=EDIFilename) NSString* EDIFilename; - (NSString*)EDIFilename; @property (nonatomic,readonly,assign,getter=EDIName) NSString* EDIName; - (NSString*)EDIName;
Default Value
""
Remarks
This property contains the user identifier to be used when logging in. It must be set before the class connects to the FTP server.
Firewall Property (AS3Receiver Module)
A set of properties related to firewall access.
Syntax
public var firewall: Firewall { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=firewallAutoDetect,setter=setFirewallAutoDetect:) BOOL firewallAutoDetect; - (BOOL)firewallAutoDetect; - (void)setFirewallAutoDetect :(BOOL)newFirewallAutoDetect; @property (nonatomic,readwrite,assign,getter=firewallType,setter=setFirewallType:) int firewallType; - (int)firewallType; - (void)setFirewallType :(int)newFirewallType; @property (nonatomic,readwrite,assign,getter=firewallHost,setter=setFirewallHost:) NSString* firewallHost; - (NSString*)firewallHost; - (void)setFirewallHost :(NSString*)newFirewallHost; @property (nonatomic,readwrite,assign,getter=firewallPassword,setter=setFirewallPassword:) NSString* firewallPassword; - (NSString*)firewallPassword; - (void)setFirewallPassword :(NSString*)newFirewallPassword; @property (nonatomic,readwrite,assign,getter=firewallPort,setter=setFirewallPort:) int firewallPort; - (int)firewallPort; - (void)setFirewallPort :(int)newFirewallPort; @property (nonatomic,readwrite,assign,getter=firewallUser,setter=setFirewallUser:) NSString* firewallUser; - (NSString*)firewallUser; - (void)setFirewallUser :(NSString*)newFirewallUser;
Default Value
""
Remarks
This property contains the user identifier to be used when logging in. It must be set before the class connects to the FTP server.
FTPCommand Property (AS3Receiver Module)
An FTP command to be sent directly to the FTP server.
Syntax
public var ftpCommand: String { set {...} }
@property (nonatomic,readwrite,assign,getter=FTPCommand,setter=setFTPCommand:) NSString* FTPCommand; - (NSString*)FTPCommand; - (void)setFTPCommand :(NSString*)newFTPCommand;
Default Value
""
Remarks
An FTP command to be sent directly to the FTP server.
This property is write-only.
FTPLastReply Property (AS3Receiver Module)
The last reply from the FTP server.
Syntax
public var ftpLastReply: String { get {...} }
@property (nonatomic,readonly,assign,getter=FTPLastReply) NSString* FTPLastReply; - (NSString*)FTPLastReply;
Default Value
""
Remarks
The last reply from the FTP server.
This property is read-only.
LocalHost Property (AS3Receiver Module)
The name of the local host or user-assigned IP interface through which connections are initiated or accepted.
Syntax
public var localHost: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=localHost,setter=setLocalHost:) NSString* localHost; - (NSString*)localHost; - (void)setLocalHost :(NSString*)newLocalHost;
Default Value
""
Remarks
The LocalHost property contains the name of the local host as obtained by the gethostname() system call, or if the user has assigned an IP address, the value of that address.
In multi-homed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the class initiate connections (or accept in the case of server classs) only through that interface.
If the class is connected, the LocalHost property shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multi-homed hosts (machines with more than one IP interface).
NOTE: LocalHost is not persistent. You must always set it in code, and never in the property window.
LogDirectory Property (AS3Receiver Module)
The path to a directory for logging.
Syntax
public var logDirectory: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=logDirectory,setter=setLogDirectory:) NSString* logDirectory; - (NSString*)logDirectory; - (void)setLogDirectory :(NSString*)newLogDirectory;
Default Value
""
Remarks
Setting LogDirectory will instruct the component to log the details of each transmission to unique files in the specified directory. For each request processed, the class will log the original EDI data, the complete text of the outgoing request and the incoming response.
The class will write a file for each transmission, with extension ".log". In case of error an additional file will be written with extension ".err", and the error will be reported in both files. Raw AS3 messages created or downloaded by the class will be written with extension ".as3", and MDNs created or downloaded will be written with extension ".as3-mdn".
The filenames will be chosen automatically by the class. Each filename will be the system time, in the format YYYY-MM-DD-HH-MM-SS-MMMM, with extensions "-2", "-3", used in case files of those names already exist. After each transaction is processed LogFile will contain the name of the files just written, minus the extension ".log" or ".err".
If logs cannot be written an exception will be thrown.
LogFile Property (AS3Receiver Module)
The log file written.
Syntax
public var logFile: String { get {...} }
@property (nonatomic,readonly,assign,getter=logFile) NSString* logFile; - (NSString*)logFile;
Default Value
""
Remarks
In case LogDirectory is specified two log files will be written in the specified directory and LogFile will contain the path.
LogFile will in fact refer to several files with appropriate extensions. A diagnostic log will be written with filename LogFile + ".log", and any EDI data read will be written with filename LogFile + ".dat". Raw AS3 messages and MDNs will also be written with extensions ".as3" and ".as3-mdn".
This property is read-only.
MDNReceipt Property (AS3Receiver Module)
The MDN-based receipt generated by the module.
Syntax
public var mdnReceipt: MDNReceipt { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=MDNReceiptContent,setter=setMDNReceiptContent:) NSString* MDNReceiptContent; - (NSString*)MDNReceiptContent; - (void)setMDNReceiptContent :(NSString*)newMDNReceiptContent; @property (nonatomic,readwrite,assign,getter=MDNReceiptContentB,setter=setMDNReceiptContentB:) NSData* MDNReceiptContentB; - (NSData*)MDNReceiptContentB; - (void)setMDNReceiptContentB :(NSData*)newMDNReceiptContent; @property (nonatomic,readonly,assign,getter=MDNReceiptHeaderCount) int MDNReceiptHeaderCount; - (int)MDNReceiptHeaderCount; @property (nonatomic,readonly,assign,getter=MDNReceiptHeaderField) NSString* MDNReceiptHeaderField; - (NSString*)MDNReceiptHeaderField; @property (nonatomic,readwrite,assign,getter=MDNReceiptHeaderIndex,setter=setMDNReceiptHeaderIndex:) int MDNReceiptHeaderIndex; - (int)MDNReceiptHeaderIndex; - (void)setMDNReceiptHeaderIndex :(int)newMDNReceiptHeaderIndex; @property (nonatomic,readwrite,assign,getter=MDNReceiptHeaders,setter=setMDNReceiptHeaders:) NSString* MDNReceiptHeaders; - (NSString*)MDNReceiptHeaders; - (void)setMDNReceiptHeaders :(NSString*)newMDNReceiptHeaders; @property (nonatomic,readonly,assign,getter=MDNReceiptHeaderValue) NSString* MDNReceiptHeaderValue; - (NSString*)MDNReceiptHeaderValue; @property (nonatomic,readonly,assign,getter=MDNReceiptMDN) NSString* MDNReceiptMDN; - (NSString*)MDNReceiptMDN; @property (nonatomic,readonly,assign,getter=MDNReceiptMessage) NSString* MDNReceiptMessage; - (NSString*)MDNReceiptMessage; @property (nonatomic,readonly,assign,getter=MDNReceiptMICValue) NSString* MDNReceiptMICValue; - (NSString*)MDNReceiptMICValue; @property (nonatomic,readonly,assign,getter=MDNReceiptSigningProtocol) NSString* MDNReceiptSigningProtocol; - (NSString*)MDNReceiptSigningProtocol;
Default Value
""
Remarks
This property contains the user identifier to be used when logging in. It must be set before the class connects to the FTP server.
MDNTo Property (AS3Receiver Module)
The URL for the Message Disposition Notification (MDN).
Syntax
public var mdnTo: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=MDNTo,setter=setMDNTo:) NSString* MDNTo; - (NSString*)MDNTo; - (void)setMDNTo :(NSString*)newMDNTo;
Default Value
""
Remarks
MDNTo corresponds to the Disposition-Notification-To header of RequestHeaders. If nonempty, the client has requested that an MDN-based receipt be returned to the URL specified. This receipt will be generated in a call to ProcessRequest or CreateMDNReceipt, and may be sent by calling SendResponse.
The receipt and headers will be contained in MDNReceipt.
According to RFC specifications, MDNReceipt must be sent if requested by the client.
MessageId Property (AS3Receiver Module)
The message ID of the incoming message.
Syntax
public var messageId: String { get {...} }
@property (nonatomic,readonly,assign,getter=messageId) NSString* messageId; - (NSString*)messageId;
Default Value
""
Remarks
MessageId corresponds to the Message-Id header of Request, and will be used as the Original-Message-Id header of MDNReceipt.
This property is read-only.
Passive Property (AS3Receiver Module)
This controls whether or not to direct the server into a passive mode. It is recommended if behind a firewall.
Syntax
public var passive: Bool { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=passive,setter=setPassive:) BOOL passive; - (BOOL)passive; - (void)setPassive :(BOOL)newPassive;
Default Value
True
Remarks
This property controls whether or not to direct the server into a passive mode. Many firewalls will not allow the FTP server to open a connection from outside to the higher ports where the FTP client class expects them to be. If Passive is set to TRUE, the class will use the PASV command instead of the PORT command and thus will direct the server into a passive mode: connections are initiated only by the client.
Password Property (AS3Receiver Module)
This is the password used to log in.
Syntax
public var password: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=password,setter=setPassword:) NSString* password; - (NSString*)password; - (void)setPassword :(NSString*)newPassword;
Default Value
""
Remarks
This property contains the password used to log in. It must be set before the class connects to the FTP server.
RemoteHost Property (AS3Receiver Module)
This is the domain name or IP address of the FTP server.
Syntax
public var remoteHost: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=remoteHost,setter=setRemoteHost:) NSString* remoteHost; - (NSString*)remoteHost; - (void)setRemoteHost :(NSString*)newRemoteHost;
Default Value
""
Remarks
This property specifies the IP address (IP number in dotted internet format) or the domain name of the FTP server. It is set before a connection is attempted and cannot be changed once a connection is in progress.
If this property is set to a domain name, a DNS request is initiated and upon successful termination of the request, this property is set to the corresponding address. If the search is not successful, an error is returned.
If the class is configured to use a SOCKS firewall, the value assigned to this property may be preceded with an "*". If this is the case, the host name is passed to the firewall unresolved and the firewall performs the DNS resolution.
RemotePath Property (AS3Receiver Module)
This is the current path in the FTP server.
Syntax
public var remotePath: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=remotePath,setter=setRemotePath:) NSString* remotePath; - (NSString*)remotePath; - (void)setRemotePath :(NSString*)newRemotePath;
Default Value
""
Remarks
This property shows the current working directory on the FTP server. It also can be used to change the working directory by setting it to an absolute directory path, or a relative path with respect to the existing value of this property.
If the first two bytes of the new path are "..", then a change to one level higher in the directory tree is performed.
Setting this property causes the class to send the appropriate command to the remote server only if it is connected.
Example 1. Changing Directory:
FTPControl.Logon()
FTPControl.RemotePath = "/home/user"
RemotePort Property (AS3Receiver Module)
This is the port for the FTP service (default is 21).
Syntax
public var remotePort: Int32 { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=remotePort,setter=setRemotePort:) int remotePort; - (int)remotePort; - (void)setRemotePort :(int)newRemotePort;
Default Value
21
Remarks
This property contains the port for the FTP service, which defaults to 21 if not set. A valid port number (a value between 1 and 65535) is required for the connection to take place. The property must be set before a connection is attempted and cannot be changed once a connection is established. Any attempt to change this property while connected will fail with an error.
For an implicit Secure Sockets Layer (SSL), use port 990 (please see the SSLStartMode property for more information).
Request Property (AS3Receiver Module)
The AS3 request to process.
Syntax
public var request: String { get {...} set {...} }
public var requestB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=request,setter=setRequest:) NSString* request; - (NSString*)request; - (void)setRequest :(NSString*)newRequest; @property (nonatomic,readwrite,assign,getter=requestB,setter=setRequestB:) NSData* requestB; - (NSData*)requestB; - (void)setRequestB :(NSData*)newRequest;
Default Value
""
Remarks
You may specify the request manually, or you may load the request from the FTP server by invoking ReadRequest.
The request may contain the AS3 headers, or these may be specified separately in RequestHeaders. Any methods which read or process the request will split the request into headers and body and populate Request and RequestHeaders appropriately.
RequestHeaders Property (AS3Receiver Module)
The headers in the AS3 request.
Syntax
public var requestHeaders: Array<Header> { get {...} }
@property (nonatomic,readwrite,assign,getter=requestHeaderCount,setter=setRequestHeaderCount:) int requestHeaderCount; - (int)requestHeaderCount; - (void)setRequestHeaderCount :(int)newRequestHeaderCount; - (NSString*)requestHeaderField:(int)requestHeaderIndex; - (void)setRequestHeaderField:(int)requestHeaderIndex :(NSString*)newRequestHeaderField; - (NSString*)requestHeaderValue:(int)requestHeaderIndex; - (void)setRequestHeaderValue:(int)requestHeaderIndex :(NSString*)newRequestHeaderValue;
Default Value
""
Remarks
This property contains the user identifier to be used when logging in. It must be set before the class connects to the FTP server.
RequestHeadersString Property (AS3Receiver Module)
The headers in the AS3 request.
Syntax
public var requestHeadersString: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=requestHeadersString,setter=setRequestHeadersString:) NSString* requestHeadersString; - (NSString*)requestHeadersString; - (void)setRequestHeadersString :(NSString*)newRequestHeadersString;
Default Value
""
Remarks
The headers will be parsed from the request by calls to methods such as ParseHeaders, ParseRequest, or ProcessRequest is invoked.
ScanResult Property (AS3Receiver Module)
The result of invoking ParseRequest .
Syntax
public var scanResult: Int32 { get {...} }
@property (nonatomic,readonly,assign,getter=scanResult) int scanResult; - (int)scanResult;
Default Value
0
Remarks
ScanResult will contain information about any errors that occurred while invoking ParseRequest or ProcessRequest. ScanResult will contain 0 if no errors occurred, otherwise it will contain one or more of the following errors. If multiple errors are reported the results will be OR-ed together.
0x01 | Unable to decrypt data. |
0x02 | Unable to decompress data. |
0x04 | Unable to validate integrity of data. |
0x08 | Unable to verify the signature. |
0x10 | Client requested unsupported signature type. |
0x20 | Client requested unsupported MIC algorithm. |
0x40 | Insufficient message security, as determined by the Config entries RequireSign and RequireEncrypt. |
0x80 | Unexpected processing error. An exception was encountered outside of message processing, such as configuration issues in the class. |
0x100 | Duplicate filename. |
0x200 | Illegal filename. |
0x400 | Empty filename. |
0x800 | Error writing incoming file. |
This property is read-only.
SignerCertEncoded Property (AS3Receiver Module)
This is the certificate (PEM/base64 encoded).
Syntax
public var signerCertEncoded: String { get {...} set {...} }
public var signerCertEncodedB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=signerCertEncoded,setter=setSignerCertEncoded:) NSString* signerCertEncoded; - (NSString*)signerCertEncoded; - (void)setSignerCertEncoded :(NSString*)newSignerCertEncoded; @property (nonatomic,readwrite,assign,getter=signerCertEncodedB,setter=setSignerCertEncodedB:) NSData* signerCertEncodedB; - (NSData*)signerCertEncodedB; - (void)setSignerCertEncodedB :(NSData*)newSignerCertEncoded;
Default Value
""
Remarks
This is the certificate (PEM/base64 encoded). This property is used to assign a specific certificate. The SignerCertStore and SignerCertSubject properties also may be used to specify a certificate.
When SignerCertEncoded is set, a search is initiated in the current SignerCertStore for the private key of the certificate. If the key is found, SignerCertSubject is updated to reflect the full subject of the selected certificate; otherwise, SignerCertSubject is set to an empty string.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setSignerCertEncodedB(signerCertEncoded: Data) throws public func setSignerCertEncoded(signerCertEncoded: String) throws
SignerCertStore Property (AS3Receiver Module)
This is the name of the certificate store for the client certificate.
Syntax
public var signerCertStore: String { get {...} set {...} }
public var signerCertStoreB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=signerCertStore,setter=setSignerCertStore:) NSString* signerCertStore; - (NSString*)signerCertStore; - (void)setSignerCertStore :(NSString*)newSignerCertStore; @property (nonatomic,readwrite,assign,getter=signerCertStoreB,setter=setSignerCertStoreB:) NSData* signerCertStoreB; - (NSData*)signerCertStoreB; - (void)setSignerCertStoreB :(NSData*)newSignerCertStore;
Default Value
"MY"
Remarks
This is the name of the certificate store for the client certificate.
The SignerCertStoreType property denotes the type of the certificate store specified by SignerCertStore. If the store is password protected, specify the password in SignerCertStorePassword.
SignerCertStore is used in conjunction with the SignerCertSubject property to specify client certificates. If SignerCertStore has a value, and SignerCertSubject or SignerCertEncoded is set, a search for a certificate is initiated. Please see the SignerCertSubject property for details.
Designations of certificate stores are platform-dependent.
The following are designations of the most common User and Machine certificate stores in Windows:
MY | A certificate store holding personal certificates with their associated private keys. |
CA | Certifying authority certificates. |
ROOT | Root certificates. |
When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
SignerCertStorePassword Property (AS3Receiver Module)
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
Syntax
public var signerCertStorePassword: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=signerCertStorePassword,setter=setSignerCertStorePassword:) NSString* signerCertStorePassword; - (NSString*)signerCertStorePassword; - (void)setSignerCertStorePassword :(NSString*)newSignerCertStorePassword;
Default Value
""
Remarks
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
SignerCertStoreType Property (AS3Receiver Module)
This is the type of certificate store for this certificate.
Syntax
public var signerCertStoreType: As3receiverSignerCertStoreTypes { get {...} set {...} }
public enum As3receiverSignerCertStoreTypes: Int32 { case cstUser = 0 case cstMachine = 1 case cstPFXFile = 2 case cstPFXBlob = 3 case cstJKSFile = 4 case cstJKSBlob = 5 case cstPEMKeyFile = 6 case cstPEMKeyBlob = 7 case cstPublicKeyFile = 8 case cstPublicKeyBlob = 9 case cstSSHPublicKeyBlob = 10 case cstP7BFile = 11 case cstP7BBlob = 12 case cstSSHPublicKeyFile = 13 case cstPPKFile = 14 case cstPPKBlob = 15 case cstXMLFile = 16 case cstXMLBlob = 17 case cstJWKFile = 18 case cstJWKBlob = 19 case cstSecurityKey = 20 case cstBCFKSFile = 21 case cstBCFKSBlob = 22 case cstAuto = 99 }
@property (nonatomic,readwrite,assign,getter=signerCertStoreType,setter=setSignerCertStoreType:) int signerCertStoreType; - (int)signerCertStoreType; - (void)setSignerCertStoreType :(int)newSignerCertStoreType;
Default Value
0
Remarks
This is the type of certificate store for this certificate.
The class supports both public and private keys in a variety of formats. When the cstAuto value is used the class will automatically determine the type. This property can take one of the following values:
0 (cstUser - default) | For Windows, this specifies that the certificate store is a certificate store owned by the current user. Note: this store type is not available in Java. |
1 (cstMachine) | For Windows, this specifies that the certificate store is a machine store. Note: this store type is not available in Java. |
2 (cstPFXFile) | The certificate store is the name of a PFX (PKCS12) file containing certificates. |
3 (cstPFXBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in PFX (PKCS12) format. |
4 (cstJKSFile) | The certificate store is the name of a Java Key Store (JKS) file containing certificates. Note: this store type is only available in Java. |
5 (cstJKSBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in Java Key Store (JKS) format. Note: this store type is only available in Java. |
6 (cstPEMKeyFile) | The certificate store is the name of a PEM-encoded file that contains a private key and an optional certificate. |
7 (cstPEMKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains a private key and an optional certificate. |
8 (cstPublicKeyFile) | The certificate store is the name of a file that contains a PEM- or DER-encoded public key certificate. |
9 (cstPublicKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains a PEM- or DER-encoded public key certificate. |
10 (cstSSHPublicKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains an SSH-style public key. |
11 (cstP7BFile) | The certificate store is the name of a PKCS7 file containing certificates. |
12 (cstP7BBlob) | The certificate store is a string (binary) representing a certificate store in PKCS7 format. |
13 (cstSSHPublicKeyFile) | The certificate store is the name of a file that contains an SSH-style public key. |
14 (cstPPKFile) | The certificate store is the name of a file that contains a PPK (PuTTY Private Key). |
15 (cstPPKBlob) | The certificate store is a string (binary) that contains a PPK (PuTTY Private Key). |
16 (cstXMLFile) | The certificate store is the name of a file that contains a certificate in XML format. |
17 (cstXMLBlob) | The certificate store is a string that contains a certificate in XML format. |
18 (cstJWKFile) | The certificate store is the name of a file that contains a JWK (JSON Web Key). |
19 (cstJWKBlob) | The certificate store is a string that contains a JWK (JSON Web Key). |
20 (cstSecurityKey) | The certificate is present on a physical security key accessible via a PKCS11 interface.
To use a security key the necessary data must first be collected using the CertMgr class. The ListStoreCertificates method may be called after setting CertStoreType to cstSecurityKey, CertStorePassword to the PIN, and CertStore to the full path of the PKCS11 dll. The certificate information returned in the CertList event's CertEncoded parameter may be saved for later use. When using a certificate, pass the previously saved security key information as the SignerCertStore and set SignerCertStorePassword to the PIN. Code Example: SSH Authentication with Security Key
|
21 (cstBCFKSFile) | The certificate store is the name of a file that contains a BCFKS (Bouncy Castle FIPS Key Store). Note: this store type is only available in Java and .NET. |
22 (cstBCFKSBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in BCFKS (Bouncy Castle FIPS Key Store) format. Note: this store type is only available in Java and .NET. |
99 (cstAuto) | The store type is automatically detected from the input data. This setting may be used with both public and private keys and can detect any of the supported formats automatically. |
SignerCertSubject Property (AS3Receiver Module)
This is the subject of the certificate used for client authentication.
Syntax
public var signerCertSubject: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=signerCertSubject,setter=setSignerCertSubject:) NSString* signerCertSubject; - (NSString*)signerCertSubject; - (void)setSignerCertSubject :(NSString*)newSignerCertSubject;
Default Value
""
Remarks
This is the subject of the certificate used for client authentication.
This property must be set after all other certificate properites are set. When this property is set, a search is performed in the current certificate store certificate with matching subject.
If a matching certificate is found, the property is set to the full subject of the matching certificate.
If an exact match is not found, the store is searched for subjects containing the value of the property.
If a match is still not found, the property is set to an empty string, and no certificate is selected.
The special value "*" picks a random certificate in the certificate store.
The certificate subject is a comma separated list of distinguished name fields and values. For instance "CN=www.server.com, OU=test, C=US, E=support@nsoftware.com". Common fields and their meanings are displayed below.
Field | Meaning |
CN | Common Name. This is commonly a host name like www.server.com. |
O | Organization |
OU | Organizational Unit |
L | Locality |
S | State |
C | Country |
E | Email Address |
If a field value contains a comma it must be quoted.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setSignerCertSubject(signerCertSubject: String) throws
SSLAcceptServerCertEncoded Property (AS3Receiver Module)
This is the certificate (PEM/base64 encoded).
Syntax
public var sslAcceptServerCertEncoded: String { get {...} set {...} }
public var sslAcceptServerCertEncodedB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=SSLAcceptServerCertEncoded,setter=setSSLAcceptServerCertEncoded:) NSString* SSLAcceptServerCertEncoded; - (NSString*)SSLAcceptServerCertEncoded; - (void)setSSLAcceptServerCertEncoded :(NSString*)newSSLAcceptServerCertEncoded; @property (nonatomic,readwrite,assign,getter=SSLAcceptServerCertEncodedB,setter=setSSLAcceptServerCertEncodedB:) NSData* SSLAcceptServerCertEncodedB; - (NSData*)SSLAcceptServerCertEncodedB; - (void)setSSLAcceptServerCertEncodedB :(NSData*)newSSLAcceptServerCertEncoded;
Default Value
""
Remarks
This is the certificate (PEM/base64 encoded). This property is used to assign a specific certificate. The SSLAcceptServerCertStore and SSLAcceptServerCertSubject properties also may be used to specify a certificate.
When SSLAcceptServerCertEncoded is set, a search is initiated in the current SSLAcceptServerCertStore for the private key of the certificate. If the key is found, SSLAcceptServerCertSubject is updated to reflect the full subject of the selected certificate; otherwise, SSLAcceptServerCertSubject is set to an empty string.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setSSLAcceptServerCertEncodedB(sslAcceptServerCertEncoded: Data) throws public func setSSLAcceptServerCertEncoded(sslAcceptServerCertEncoded: String) throws
SSLCertEncoded Property (AS3Receiver Module)
This is the certificate (PEM/base64 encoded).
Syntax
public var sslCertEncoded: String { get {...} set {...} }
public var sslCertEncodedB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=SSLCertEncoded,setter=setSSLCertEncoded:) NSString* SSLCertEncoded; - (NSString*)SSLCertEncoded; - (void)setSSLCertEncoded :(NSString*)newSSLCertEncoded; @property (nonatomic,readwrite,assign,getter=SSLCertEncodedB,setter=setSSLCertEncodedB:) NSData* SSLCertEncodedB; - (NSData*)SSLCertEncodedB; - (void)setSSLCertEncodedB :(NSData*)newSSLCertEncoded;
Default Value
""
Remarks
This is the certificate (PEM/base64 encoded). This property is used to assign a specific certificate. The SSLCertStore and SSLCertSubject properties also may be used to specify a certificate.
When SSLCertEncoded is set, a search is initiated in the current SSLCertStore for the private key of the certificate. If the key is found, SSLCertSubject is updated to reflect the full subject of the selected certificate; otherwise, SSLCertSubject is set to an empty string.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setSSLCertEncodedB(sslCertEncoded: Data) throws public func setSSLCertEncoded(sslCertEncoded: String) throws
SSLCertStore Property (AS3Receiver Module)
This is the name of the certificate store for the client certificate.
Syntax
public var sslCertStore: String { get {...} set {...} }
public var sslCertStoreB: Data { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=SSLCertStore,setter=setSSLCertStore:) NSString* SSLCertStore; - (NSString*)SSLCertStore; - (void)setSSLCertStore :(NSString*)newSSLCertStore; @property (nonatomic,readwrite,assign,getter=SSLCertStoreB,setter=setSSLCertStoreB:) NSData* SSLCertStoreB; - (NSData*)SSLCertStoreB; - (void)setSSLCertStoreB :(NSData*)newSSLCertStore;
Default Value
"MY"
Remarks
This is the name of the certificate store for the client certificate.
The SSLCertStoreType property denotes the type of the certificate store specified by SSLCertStore. If the store is password protected, specify the password in SSLCertStorePassword.
SSLCertStore is used in conjunction with the SSLCertSubject property to specify client certificates. If SSLCertStore has a value, and SSLCertSubject or SSLCertEncoded is set, a search for a certificate is initiated. Please see the SSLCertSubject property for details.
Designations of certificate stores are platform-dependent.
The following are designations of the most common User and Machine certificate stores in Windows:
MY | A certificate store holding personal certificates with their associated private keys. |
CA | Certifying authority certificates. |
ROOT | Root certificates. |
When the certificate store type is PFXFile, this property must be set to the name of the file. When the type is PFXBlob, the property must be set to the binary contents of a PFX file (i.e. PKCS12 certificate store).
SSLCertStorePassword Property (AS3Receiver Module)
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
Syntax
public var sslCertStorePassword: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=SSLCertStorePassword,setter=setSSLCertStorePassword:) NSString* SSLCertStorePassword; - (NSString*)SSLCertStorePassword; - (void)setSSLCertStorePassword :(NSString*)newSSLCertStorePassword;
Default Value
""
Remarks
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
SSLCertStoreType Property (AS3Receiver Module)
This is the type of certificate store for this certificate.
Syntax
public var sslCertStoreType: As3receiverSSLCertStoreTypes { get {...} set {...} }
public enum As3receiverSSLCertStoreTypes: Int32 { case cstUser = 0 case cstMachine = 1 case cstPFXFile = 2 case cstPFXBlob = 3 case cstJKSFile = 4 case cstJKSBlob = 5 case cstPEMKeyFile = 6 case cstPEMKeyBlob = 7 case cstPublicKeyFile = 8 case cstPublicKeyBlob = 9 case cstSSHPublicKeyBlob = 10 case cstP7BFile = 11 case cstP7BBlob = 12 case cstSSHPublicKeyFile = 13 case cstPPKFile = 14 case cstPPKBlob = 15 case cstXMLFile = 16 case cstXMLBlob = 17 case cstJWKFile = 18 case cstJWKBlob = 19 case cstSecurityKey = 20 case cstBCFKSFile = 21 case cstBCFKSBlob = 22 case cstAuto = 99 }
@property (nonatomic,readwrite,assign,getter=SSLCertStoreType,setter=setSSLCertStoreType:) int SSLCertStoreType; - (int)SSLCertStoreType; - (void)setSSLCertStoreType :(int)newSSLCertStoreType;
Default Value
0
Remarks
This is the type of certificate store for this certificate.
The class supports both public and private keys in a variety of formats. When the cstAuto value is used the class will automatically determine the type. This property can take one of the following values:
0 (cstUser - default) | For Windows, this specifies that the certificate store is a certificate store owned by the current user. Note: this store type is not available in Java. |
1 (cstMachine) | For Windows, this specifies that the certificate store is a machine store. Note: this store type is not available in Java. |
2 (cstPFXFile) | The certificate store is the name of a PFX (PKCS12) file containing certificates. |
3 (cstPFXBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in PFX (PKCS12) format. |
4 (cstJKSFile) | The certificate store is the name of a Java Key Store (JKS) file containing certificates. Note: this store type is only available in Java. |
5 (cstJKSBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in Java Key Store (JKS) format. Note: this store type is only available in Java. |
6 (cstPEMKeyFile) | The certificate store is the name of a PEM-encoded file that contains a private key and an optional certificate. |
7 (cstPEMKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains a private key and an optional certificate. |
8 (cstPublicKeyFile) | The certificate store is the name of a file that contains a PEM- or DER-encoded public key certificate. |
9 (cstPublicKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains a PEM- or DER-encoded public key certificate. |
10 (cstSSHPublicKeyBlob) | The certificate store is a string (binary or base64-encoded) that contains an SSH-style public key. |
11 (cstP7BFile) | The certificate store is the name of a PKCS7 file containing certificates. |
12 (cstP7BBlob) | The certificate store is a string (binary) representing a certificate store in PKCS7 format. |
13 (cstSSHPublicKeyFile) | The certificate store is the name of a file that contains an SSH-style public key. |
14 (cstPPKFile) | The certificate store is the name of a file that contains a PPK (PuTTY Private Key). |
15 (cstPPKBlob) | The certificate store is a string (binary) that contains a PPK (PuTTY Private Key). |
16 (cstXMLFile) | The certificate store is the name of a file that contains a certificate in XML format. |
17 (cstXMLBlob) | The certificate store is a string that contains a certificate in XML format. |
18 (cstJWKFile) | The certificate store is the name of a file that contains a JWK (JSON Web Key). |
19 (cstJWKBlob) | The certificate store is a string that contains a JWK (JSON Web Key). |
20 (cstSecurityKey) | The certificate is present on a physical security key accessible via a PKCS11 interface.
To use a security key the necessary data must first be collected using the CertMgr class. The ListStoreCertificates method may be called after setting CertStoreType to cstSecurityKey, CertStorePassword to the PIN, and CertStore to the full path of the PKCS11 dll. The certificate information returned in the CertList event's CertEncoded parameter may be saved for later use. When using a certificate, pass the previously saved security key information as the SSLCertStore and set SSLCertStorePassword to the PIN. Code Example: SSH Authentication with Security Key
|
21 (cstBCFKSFile) | The certificate store is the name of a file that contains a BCFKS (Bouncy Castle FIPS Key Store). Note: this store type is only available in Java and .NET. |
22 (cstBCFKSBlob) | The certificate store is a string (binary or base64-encoded) representing a certificate store in BCFKS (Bouncy Castle FIPS Key Store) format. Note: this store type is only available in Java and .NET. |
99 (cstAuto) | The store type is automatically detected from the input data. This setting may be used with both public and private keys and can detect any of the supported formats automatically. |
SSLCertSubject Property (AS3Receiver Module)
This is the subject of the certificate used for client authentication.
Syntax
public var sslCertSubject: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=SSLCertSubject,setter=setSSLCertSubject:) NSString* SSLCertSubject; - (NSString*)SSLCertSubject; - (void)setSSLCertSubject :(NSString*)newSSLCertSubject;
Default Value
""
Remarks
This is the subject of the certificate used for client authentication.
This property must be set after all other certificate properites are set. When this property is set, a search is performed in the current certificate store certificate with matching subject.
If a matching certificate is found, the property is set to the full subject of the matching certificate.
If an exact match is not found, the store is searched for subjects containing the value of the property.
If a match is still not found, the property is set to an empty string, and no certificate is selected.
The special value "*" picks a random certificate in the certificate store.
The certificate subject is a comma separated list of distinguished name fields and values. For instance "CN=www.server.com, OU=test, C=US, E=support@nsoftware.com". Common fields and their meanings are displayed below.
Field | Meaning |
CN | Common Name. This is commonly a host name like www.server.com. |
O | Organization |
OU | Organizational Unit |
L | Locality |
S | State |
C | Country |
E | Email Address |
If a field value contains a comma it must be quoted.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setSSLCertSubject(sslCertSubject: String) throws
SSLProvider Property (AS3Receiver Module)
This specifies the SSL/TLS implementation to use.
Syntax
public var sslProvider: As3receiverSSLProviders { get {...} set {...} }
public enum As3receiverSSLProviders: Int32 { case sslpAutomatic = 0 case sslpPlatform = 1 case sslpInternal = 2 }
@property (nonatomic,readwrite,assign,getter=SSLProvider,setter=setSSLProvider:) int SSLProvider; - (int)SSLProvider; - (void)setSSLProvider :(int)newSSLProvider;
Default Value
0
Remarks
This property specifies the SSL/TLS implementation to use. In most cases the default value of 0 (Automatic) is recommended and should not be changed. When set to 0 (Automatic) the class will select whether to use the platform implementation or the internal implementation depending on the operating system as well as the TLS version being used.
Possible values are:
0 (sslpAutomatic - default) | Automatically selects the appropriate implementation. |
1 (sslpPlatform) | Uses the platform/system implementation. |
2 (sslpInternal) | Uses the internal implementation. |
In most cases using the default value (Automatic) is recommended. The class will select a provider depending on the current platform.
When Automatic is selected the platform implementation will be used by default in all cases in the macOS edition.
SSLServerCertEncoded Property (AS3Receiver Module)
This is the certificate (PEM/base64 encoded).
Syntax
public var sslServerCertEncoded: String { get {...} }
public var sslServerCertEncodedB: Data { get {...} }
@property (nonatomic,readonly,assign,getter=SSLServerCertEncoded) NSString* SSLServerCertEncoded; - (NSString*)SSLServerCertEncoded; @property (nonatomic,readonly,assign,getter=SSLServerCertEncodedB) NSData* SSLServerCertEncodedB; - (NSData*)SSLServerCertEncodedB;
Default Value
""
Remarks
This is the certificate (PEM/base64 encoded). This property is used to assign a specific certificate. The SSLServerCertStore and SSLServerCertSubject properties also may be used to specify a certificate.
When SSLServerCertEncoded is set, a search is initiated in the current SSLServerCertStore for the private key of the certificate. If the key is found, SSLServerCertSubject is updated to reflect the full subject of the selected certificate; otherwise, SSLServerCertSubject is set to an empty string.
This property is read-only.
If an error occurs when setting this property an error will not be thrown. This property has a related method which will throw an error:
public func setSSLServerCertEncodedB(sslServerCertEncoded: Data) throws public func setSSLServerCertEncoded(sslServerCertEncoded: String) throws
SSLStartMode Property (AS3Receiver Module)
Determines how the module starts the SSL negotiation. By default, SSL will not be used.
Syntax
public var sslStartMode: As3receiverSSLStartModes { get {...} set {...} }
public enum As3receiverSSLStartModes: Int32 { case sslAutomatic = 0 case sslImplicit = 1 case sslExplicit = 2 case sslNone = 3 }
@property (nonatomic,readwrite,assign,getter=SSLStartMode,setter=setSSLStartMode:) int SSLStartMode; - (int)SSLStartMode; - (void)setSSLStartMode :(int)newSSLStartMode;
Default Value
3
Remarks
The SSLStartMode property may have one of the following values:
0 (sslAutomatic - default) | If the remote port is set to the standard plaintext port of the protocol (where applicable), the class will behave the same as if SSLStartMode is set to sslExplicit. In all other cases, SSL negotiation will be implicit (sslImplicit). |
1 (sslImplicit) | The SSL negotiation will start immediately after the connection is established. |
2 (sslExplicit) | The class will first connect in plaintext, and then explicitly start SSL negotiation through a protocol command such as STARTTLS. |
3 (sslNone) | No SSL negotiation, no SSL security. All communication will be in plaintext mode. |
Timeout Property (AS3Receiver Module)
A timeout for the module.
Syntax
public var timeout: Int32 { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=timeout,setter=setTimeout:) int timeout; - (int)timeout; - (void)setTimeout :(int)newTimeout;
Default Value
60
Remarks
If the Timeout property is set to 0, all operations will run uninterrupted until successful completion or an error condition is encountered.
If Timeout is set to a positive value, the class will wait for the operation to complete before returning control.
The class will use DoEvents to enter an efficient wait loop during any potential waiting period, making sure that all system events are processed immediately as they arrive. This ensures that the host application does not "freeze" and remains responsive.
If Timeout expires, and the operation is not yet complete, the class .
Please note that by default, all timeouts are inactivity timeouts, i.e. the timeout period is extended by Timeout seconds when any amount of data is successfully sent or received.
The default value for the Timeout property is 60 seconds.
User Property (AS3Receiver Module)
This property contains the user identifier to use to log in.
Syntax
public var user: String { get {...} set {...} }
@property (nonatomic,readwrite,assign,getter=user,setter=setUser:) NSString* user; - (NSString*)user; - (void)setUser :(NSString*)newUser;
Default Value
""
Remarks
This property contains the user identifier to be used when logging in. It must be set before the class connects to the FTP server.
Abort Method (AS3Receiver Module)
The method aborts the current upload or download.
Syntax
public func abort() throws -> Void
- (void)abort;
Remarks
This method sends an ABOR command to the FTP server. It is used to interrupt file uploads and downloads.
ChangeRemotePath Method (AS3Receiver Module)
This method changes the current path on the FTP server.
Syntax
- (void)changeRemotePath:(NSString*)remotePath;
Remarks
This method changes the current path on the FTP server to the specified RemotePath. When called, the class will issue a command to the server to change the directory. The RemotePath parameter may hold an absolute or relative path.
Absolute Paths
If the path begins with a /, it is considered an absolute path and must specify the entire path from the root of the server. For instance:
component.ChangeRemotePath("/home/testuser/myfolder");
Relative Paths
If the path does not begin with a /, it is considered a relative path and is resolved in relation to the current directory. For instance, a value of myfolder will indicate a subfolder of the current directory. The special value .. refers to the parent directory of the current path. For instance:
//Change to the 'myfolder' sub-directory
component.ChangeRemotePath("myfolder");
//Navigate up two levels and then into the 'another/folder' path.
component.ChangeRemotePath("../../another/folder");
Config Method (AS3Receiver Module)
Sets or retrieves a configuration setting.
Syntax
- (NSString*)config:(NSString*)configurationString;
Remarks
Config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.
To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.
CreateMDNReceipt Method (AS3Receiver Module)
Creates MDNReceipt .
Syntax
- (void)createMDNReceipt:(NSString*)headers :(NSString*)MDN :(NSString*)message;
Remarks
CreateMDNReceipt may be invoked after ParseRequest to create an MDN-based receipt. The receipt will report success or failure depending on ErrorReportingFlags and the success or failure of ParseRequest.
This method populates MDNReceipt with a new MDNReceipt. The Headers, MDN, and Message parameters can be used to further customize the receipt, or empty string ("") parameters may be set to use the class generated defaults. Headers will set additional transport headers to be sent with the receipt (in the HTTP or SMTP headers of the signed receipt). MDN can be used to append additional headers to the Message Disposition Notification portion of the MDN Receipt. If MDN is set to a value prefixed with an at sign ("@"), the at sign will be removed and the specified MDN will be used in the receipt in place of the component generated value. Message will set the human-readable portion of the receipt, and should describe any error conditions that may have occurred.
DeleteFile Method (AS3Receiver Module)
This method removes a file specified by FileName from an FTP server.
Syntax
Remarks
This method is used to remove a file specified by FileName from an FTP server. The remote file or directory specified by FileName is deleted. FileName is either an absolute path on the server, or a path relative to remote path set by ChangeRemotePath. If no FTP session is in place, one is automatically created by first calling the Logon method.
GetFileSize Method (AS3Receiver Module)
Gets the size of a file on the FTP server.
Syntax
Remarks
Gets the size of the file specified by FileName and RemotePath on the FTP server.
GetFileTime Method (AS3Receiver Module)
Gets the last modification time of a file on the FTP server.
Syntax
Remarks
Gets the last modification time of the file specified by FileName and RemotePath on the FTP server.
ListDirectory Method (AS3Receiver Module)
List the current directory on an FTP server.
Syntax
- (void)listDirectory:(NSString*)filesToList;
Remarks
A listing is requested for the directory or file mask specified in FilesToList. This can be an absolute path on the server, a path relative to RemotePath, or a file mask. The file listing is received through the DirList event.
Similar to ListDirectoryLong, except only file names are returned. If no FTP session is in place, one is automatically created by first calling the Logon method.
ListDirectoryLong Method (AS3Receiver Module)
List the current directory on an FTP server.
Syntax
- (void)listDirectoryLong:(NSString*)filesToList;
Remarks
A listing is requested for the directory or file mask specified in FilesToList. This can be an absolute path on the server, a path relative to RemotePath, or a file mask. The file listing is received through the DirList event. Extended file information is returned.
If no FTP session is in place, one is automatically created by first calling the Logon method.
Logoff Method (AS3Receiver Module)
This method is used to log off from the FTP server by posting a QUIT command.
Syntax
public func logoff() throws -> Void
- (void)logoff;
Remarks
This method is used to log off from the FTP server by posting a QUIT command. If that fails, the connection is terminated by the local host.
Logon Method (AS3Receiver Module)
Logon to the FTP RemoteHost using the current User and Password .
Syntax
public func logon() throws -> Void
- (void)logon;
Remarks
Logon to the FTP server using the current User and Password. If an SSL (TLS) connection is required, you should first set SSLStartMode.
Example (Logging On)
FTPControl.RemoteHost = "ftpserver"
FTPControl.User = "username"
FTPControl.Password = "password"
FTPControl.Logon()
ParseRequest Method (AS3Receiver Module)
Parses the EDI message and determines the EDIData .
Syntax
public func parseRequest() throws -> Void
- (void)parseRequest;
Remarks
Processes the EDI message in the request (either from the HTTP context, or as given by Request and possibly RequestHeadersString). If the message is encrypted, it will be decrypted with the certificate specified in Certificate. If it is signed, the signature will be verified against the certificate specified in SignerCert.
If the message is scanned without difficulty, EDIData will be populated. If a problem occurs, an exception will be thrown. This might occur if the client used or requested unsupported algorithms or data formats. In this case, EDIData will not be determined.
The class may be configured to ignore certain errors by setting ErrorProcessingFlags. This will allow the message to be processed and EDIData to be determined. If any errors occur, an exception will be thrown and the ScanResult property will reflect the error condition.
Whether or not an exception is thrown, an MDNReceipt may be generated by invoking CreateMDNReceipt. In the case of a successful scan MDNReceipt will report the success, otherwise the receipt will provide information to the client about the error.
ProcessRequest may be used to scan and create the receipt in one step. ReadRequest may be used to scan the request headers only to obtain details that can be used to configure the correct settings for the partner.
ProcessRequest Method (AS3Receiver Module)
Processes the EDI data, and generates the receipt.
Syntax
public func processRequest() throws -> Void
- (void)processRequest;
Remarks
Invoking ProcessRequest automates the entire AS2 server process. The method scans the request, determines the EDIData, and generates the MDNReceipt. In a server environment the receipt may be returned by invoking SendResponse.
The method's functionality is the same as the combined functionality of ParseRequest and CreateMDNReceipt. The method's operation is controlled by ErrorProcessingFlags and ErrorReportingFlags, and ScanResult will be populated as in ParseRequest.
The method will throw an exception, as ParseRequest does, if a problem is found while processing the request. However, if the problem does not prevent an MDN from being generated, MDNReceipt will still be generated before the exception is thrown. In all cases, the receipt will be suitable for returning to the client. If an exception is thrown, the MDNReceipt will provide more detail on the cause of the error.
The class will populate EDIData if no errors occurred scanning the request, or if ErrorProcessingFlags had been previously configured to allow the error.
ReadRequest Method (AS3Receiver Module)
Reads the AS3 request from the FTP server.
Syntax
Remarks
Reads the AS3 request from the FTP server. The name of the file should be given by Filename. The request will be parsed into Request and RequestHeaders. The headers will also be parsed and the following properties will be populated:
- AS2From
- AS2To
- AS2Version
- MessageId
- MDNTo
- ReceiptDeliveryOption
- RequestedSignatureProtocol
- RequestedMICAlgorithms
ParseRequest may be used to scan the entire message.
Reset Method (AS3Receiver Module)
Resets the state of the control.
Syntax
public func reset() throws -> Void
- (void)reset;
Remarks
Reset resets the state of the class. All properties will be set to their default values.
SendResponse Method (AS3Receiver Module)
Uploads the MDN receipt.
Syntax
Remarks
Uploads the MDN receipt specified by MDNReceipt. You may create this receipt by invoking ProcessRequest or CreateMDNReceipt.
Prior to sending, you may Logon to the FTP server and navigate to the desired RemotePath. If you have not created an FTP connection already then SendResponse will attempt to establish one.
The URL for upload will be specified (by the sender) in MDNTo.
Filename should contain the name of the file that will be written on the AS3/FTP server.
ConnectionStatus Event (AS3Receiver Module)
This event is fired to indicate changes in the connection state.
Syntax
- (void)onConnectionStatus:(NSString*)connectionEvent :(int)statusCode :(NSString*)description;
Remarks
The ConnectionStatus event is fired when the connection state changes: for example, completion of a firewall or proxy connection or completion of a security handshake.
The ConnectionEvent parameter indicates the type of connection event. Values may include the following:
Firewall connection complete. | |
Secure Sockets Layer (SSL) or S/Shell handshake complete (where applicable). | |
Remote host connection complete. | |
Remote host disconnected. | |
SSL or S/Shell connection broken. | |
Firewall host disconnected. |
DirList Event (AS3Receiver Module)
This event is fired when a directory entry is received.
Syntax
- (void)onDirList:(NSString*)dirEntry :(NSString*)fileName :(BOOL)isDir :(long long)fileSize :(NSString*)fileTime;
Remarks
The DirList events are fired when a directory listing is received as a response to a ListDirectory or ListDirectoryLong call.
The StartTransfer and EndTransfer events mark the beginning and end of the event stream.
The DirEntry parameter contains the filename when ListDirectory is called and includes extended file information when ListDirectoryLong is called.
The class tries to fill out the FileName, IsDir, FileSize, and FileTime parameters when calling the ListDirectoryLong method. Except for FileName, these parameters are empty when a short "List Directory" is performed.
In Unix systems, the date is given in two types of formats: If the date is in the past 12 months the exact time is specified and the year is omitted. Otherwise, only the date and the year, but not hours or minutes, are given.
EndTransfer Event (AS3Receiver Module)
This event is fired when a file finishes downloading or uploading.
Syntax
func onEndTransfer(direction: Int32)
- (void)onEndTransfer:(int)direction;
Remarks
The EndTransfer event fires when a Data Interface connection is closed. This occurs when the file finishes transferring or a directory listing is finished.
The Direction parameter shows whether the client (0) or the server (1) is sending the data.
Error Event (AS3Receiver Module)
Information about errors during data delivery.
Syntax
- (void)onError:(int)errorCode :(NSString*)description;
Remarks
The Error event is fired in case of exceptional conditions during message processing. Normally the class .
ErrorCode contains an error code and Description contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to the Error Codes section.
Log Event (AS3Receiver Module)
Fired with log information while processing a message.
Syntax
- (void)onLog:(NSString*)logType :(NSData*)logMessage;
Remarks
This event fires once for each log message generated by the class. The verbosity is controlled by the LogLevel setting.
Log messages available through this event correspond to log files written to LogDirectory. This event provides a way to obtain log messages without relying on files on disk. This event fires regardless of the value of LogDirectory (i.e. when LogDirectory is empty the event will still fire).
The LogMessage event parameter holds the raw log data.
The LogType event parameter indicates the type of log. Possible values are:
"LOG" | Information about the status of the process. |
"ERR" | An error was encountered. |
"DAT" | The EDI payload. |
"REQ" | The raw request |
"MDN" | The MDN response. |
"DEBUG" | Debug information. |
"DAT.INPUT" | Debug information when processing payload. Only applicable when LogDebug is True. |
"DAT.ENCRYPT" | Debug information when processing payload. Only applicable when LogDebug is True. |
"DAT.COMPRESS" | Debug information when processing payload. Only applicable when LogDebug is True. |
"DAT.SIGN" | Debug information when processing payload. Only applicable when LogDebug is True. |
"DAT.DECRYPT" | Debug information when processing payload. Only applicable when LogDebug is True. |
"DAT.DECOMPRESS" | Debug information when processing payload. Only applicable when LogDebug is True. |
"DAT.VERIFY" | Debug information when processing payload. Only applicable when LogDebug is True. |
"DAT.DEBUG" | Debug information when processing payload. Only applicable when LogDebug is True. |
PITrail Event (AS3Receiver Module)
This event traces the commands sent to the server, and the respective replies.
Syntax
- (void)onPITrail:(int)direction :(NSString*)message;
Remarks
The PITrail event is useful for debugging purposes. It shows all of the interactions between the client and the server, line by line.
The Message parameter contains the full text of the message. The Direction parameter shows the originator of the message:
0 (Client) | The Message originates from the client. |
1 (Server) | The Message originates from the server. |
2 (Info) | The Message is an informative message originating from the client software (the class code). |
SignerCertInfo Event (AS3Receiver Module)
This event is fired during verification of the signed message.
Syntax
func onSignerCertInfo(issuer: String, serialNumber: String, subjectKeyIdentifier: String, certEncoded: Data)
- (void)onSignerCertInfo:(NSString*)issuer :(NSString*)serialNumber :(NSString*)subjectKeyIdentifier :(NSData*)certEncoded;
Remarks
During verification, this event will be raised while parsing the signer's certificate information. The parameters that are populated depend on the options used when the message was originally signed. This information may be used to select the correct certificate for SignerCert to verify the signature. The following parameters may be populated:
Issuer specifies the subject of the issuer of the certificate used to sign the message.
SerialNumber is the serial number of the certificate used to sign the message.
SubjectKeyIdentifier is the X.509 subjectKeyIdentifier extension value of the certificate used to sign the message encoded as a hex string.
CertEncoded is the PEM (Base64 encoded) public certificate needed to verify the signature.
Note: When this value is present, the class will automatically use this value to perform signature verification.
The SignerCert property may be set from within this event. In this manner, the decision of which signer certificate to load may be delayed until the parameters of this event are inspected and the correct certificate can be located and loaded.
SSLServerAuthentication Event (AS3Receiver Module)
Fired after the server presents its certificate to the client.
Syntax
func onSSLServerAuthentication(certEncoded: Data, certSubject: String, certIssuer: String, status: String, accept: inout Bool)
- (void)onSSLServerAuthentication:(NSData*)certEncoded :(NSString*)certSubject :(NSString*)certIssuer :(NSString*)status :(int*)accept;
Remarks
This event is where the client can decide whether to continue with the connection process or not. The Accept parameter is a recommendation on whether to continue or close the connection. This is just a suggestion: application software must use its own logic to determine whether to continue or not.
When Accept is False, Status shows why the verification failed (otherwise, Status contains the string "OK"). If it is decided to continue, you can override and accept the certificate by setting the Accept parameter to True.
SSLStatus Event (AS3Receiver Module)
Shows the progress of the secure connection.
Syntax
func onSSLStatus(message: String)
- (void)onSSLStatus:(NSString*)message;
Remarks
The event is fired for informational and logging purposes only. Used to track the progress of the connection.
StartTransfer Event (AS3Receiver Module)
This event fires when a file starts downloading or uploading.
Syntax
func onStartTransfer(direction: Int32)
- (void)onStartTransfer:(int)direction;
Remarks
The StartTransfer event fires when a Data Interface connection is created. This is when the file starts transferring or a directory listing is started.
The Direction parameter shows whether the client (0) or the server (1) is sending the data.
Transfer Event (AS3Receiver Module)
This event is fired during the file download or upload.
Syntax
- (void)onTransfer:(int)direction :(long long)bytesTransferred :(int)percentDone :(NSData*)text;
Remarks
One or more Transfer events are fired during file transfer. The BytesTransferred parameter shows the number of bytes transferred since the beginning of the transfer.
Text contains the portion of the file data being delivered.
The Direction parameter shows whether the client (0) or the server (1) is sending the data.
The PercentDone parameter shows the progress of the transfer in the corresponding direction. If PercentDone can not be calculated the value will be -1.
Note: Events are not re-entrant. Performing time-consuming operations within this event will prevent it from firing again in a timely manner and may affect overall performance.
EDIAttachment Type
This describes the file being attached.
Remarks
Information about the file's location that is being attached to the message is contained here.
Fields
contentType String |
The MIME content-type of this EDIAttachment. |
dataB Data |
This property contains the attachment data. In a receiver, the class decodes the attachment to the property when 's value is first queried. This property will contain the full decrypted text of the attachment. |
data String |
This property contains the attachment data. In a receiver, the class decodes the attachment to the property when 's value is first queried. This property will contain the full decrypted text of the attachment. |
filename String |
The file name of the attachment. If IncomingDirectory has been specified, the attachment will be written to the specified directory and the name will be provided by this property. Otherwise, this will contain the name of the attachment as described in the . |
headers String |
The class fills out each time any of the other properties for that EDIAttachment are changed. If additional headers are needed they should be appended after all the other propertys for that EDIAttachment are set. |
name String |
is the final name to be associated with the contents of either the or properties. This corresponds to the filename attribute of the Content-Disposition header for this attachment. |
Constructors
public init()
public init(filename: )
public init(filename: , contentType: )
public init(filename: , contentType: , headers: )
EDIData Type
The EDI payload of the AS2 message.
Remarks
The EDI payload of the AS2 message.
Fields
dataB Data |
This property contains the EDI payload of the transmission. In a receiver, this property will only be populated if IncomingDirectory and have not been specified and ParseRequest finishes without an error, setting ScanResult to 0. If so, Data will contain the full decrypted text of the EDI message. |
data String |
This property contains the EDI payload of the transmission. In a receiver, this property will only be populated if IncomingDirectory and have not been specified and ParseRequest finishes without an error, setting ScanResult to 0. If so, Data will contain the full decrypted text of the EDI message. |
ediType String |
The Content-Type of the EDI message. Sample values might be "application/edi-x12", "application/edifact" or "application/xml". |
filename String |
In a sender, if is specified, the file specified will be used for the EDI payload of the transmission. will be populated with the name of the file. In a receiver, when IncomingDirectory is set, this will be populated with the absolute path of the file which contains the processed message contents. Note: When is set, the data will be written to the stream and this property will not be populated. |
name String |
is the final name to be associated with the contents of either the or properties. This corresponds to the filename attribute of the Content-Disposition header for the EDI payload. When constructing EDI data to be sent, will be set to the same value as , but can be overridden after setting to indicate that another name should be used in the outbound request's Content-Disposition MIME header. When receiving EDI data, will be read out of the "filename" attribute of the inbound request's Content-Disposition MIME header. |
Constructors
public init()
public init(data: , eDIType: )
public init(filename: , eDIType: )
Firewall Type
This is the firewall the component will connect through.
Remarks
When connecting through a firewall, this type is used to specify different properties of the firewall, such as the firewall and the .
Fields
autoDetect Bool |
This property tells the class whether or not to automatically detect and use firewall system settings, if available.
|
firewallType FirewallTypes |
This property determines the type of firewall to connect through. The applicable values are as follows: |
host String |
This property contains the name or IP address of firewall (optional). If a is given, the requested connections will be authenticated through the specified firewall when connecting. If this property is set to a Domain Name, a DNS request is initiated. Upon successful termination of the request, this property is set to the corresponding address. If the search is not successful, the class . |
password String |
This property contains a password if authentication is to be used when connecting through the firewall. If is specified, the and properties are used to connect and authenticate to the given firewall. If the authentication fails, the class . |
port Int32 |
This property contains the transmission control protocol (TCP) port for the firewall . See the description of the property for details. Note: This property is set automatically when is set to a valid value. See the description of the property for details. |
user String |
This property contains a user name if authentication is to be used connecting through a firewall. If the is specified, this property and properties are used to connect and authenticate to the given Firewall. If the authentication fails, the class . |
Constructors
public init()
Header Type
This is an HTTP header as it is received from the server.
Remarks
When a header is received through a Header event, it is parsed into a Header type. This type contains a , and its corresponding .
Fields
field String |
This property contains the name of the HTTP Header (this is the same case as it is delivered). |
value String |
This property contains the Header contents. |
Constructors
public init()
public init(field: , value: )
MDNReceipt Type
The complete MDN Receipt returned by the receiver.
Remarks
The complete MDN Receipt contains the Message Disposition Notification (MDN) and an optional signature.
Fields
contentB Data |
This contains the entire content of the MDN Receipt. This is a multipart/report entity consisting of a machine readable (Message Disposition Notification) and a human readable , which itself may be embedded in a multipart/signed entity if requested by the AS2 sender. |
content String |
This contains the entire content of the MDN Receipt. This is a multipart/report entity consisting of a machine readable (Message Disposition Notification) and a human readable , which itself may be embedded in a multipart/signed entity if requested by the AS2 sender. |
headerCount Int32 |
The number of headers in the MDN. |
headerField String |
|
headerIndex Int32 |
|
headers String |
Headers contains all of the headers of the AS2 MDN Receipt as a single string. This will include headers such as AS2-From, AS2-To, Date, Content-Type, etc. In an AS2Sender, these will also contain the transport headers of the MDN Receipt (HTTP or SMTP headers, depending on the delivery option). You can also use , , , and to easily iterate through each individual header. |
headerValue String |
|
mdn String |
MDN will contain the entire machine readable text of the Message Disposition Notification in the receipt. It will report either success or failure depending on the processing status of the receiver. In either case, it will be RFC-compliant. |
message String |
The human-readable portion of the MDN receipt. The human-readable portion of the MDN receipt that indicates the status of the message processing. This can be used to provide the user with a helpful message in the event that an error is encountered. |
micValue String |
The Message Integrity Check(s) (one-way hash) of the original EDI message. An MDN Receipt contains a MIC calculated over the EDI message that the receipt is in response to, to be matched on the sender side against a saved value for the original request to ensure that the integrity of the data that the receiver reports is preserved. When a signed receipt is requested, the MIC is be calculated using the algorithm used on the incoming message's signature, or SHA-1 if the incoming message is not signed. The MIC will be base64 encoded and reported with the algorithm name as specified in RFC 3335; e.g., "w7AguNJEmhF/qIjJw6LnnA==, md5". |
signingProtocol String |
This property contains the MIME type of the signature used, if any (i.e., "application/pkcs7-signature"), to create this MDNReceipt. It will contain an empty string if the receipt is unsigned. |
Constructors
public init()
public init(headers: , content: )
Config Settings (AS3Receiver Module)
The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.AS3Receiver Config Settings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LogFilename:
The base name of the log file.If set, this will be used as for the filename of the log file.
Note that only the base name should be specified as the component will append the appropriate file extension. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FTP Config Settings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ActiveModeIP:
Allows the specification of the IP address that the server will connect to for active mode connections.The ActiveModeIP configuration setting can be used to specify the IP address that the server will connect to when
using an active mode configuration (Passive = False). When this configuration setting is set, the port number where the component
listens for active mode connections will still be managed by the component. The PortRange also can
be used to ensure that the correct port is used by the client.
Note: This configuration setting will be ignored if ActiveModePORTAddress is also specified. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ActiveModePORTAddress:
Allows the specification of the PORT address value for active mode connections.When using an active mode configuration (Passive = False) with a firewall, it may be necessary to specify the actual PORT value to be sent to the server. ActiveModePORTAddress takes the protocol-level parameter in the form "a,b,c,d,e,f" where "a,b,c,d" is the external IP address separated by commas, and e and f represent, respectively, the high-byte (divide by 256) and the low-byte (mod 256) values of the external port where the FTP client is listening.
This configuration setting must be used in conjunction with PortRange to ensure that the correct port is used by the client. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AppendToLocalFile: Append downloaded files to a local file.If set to True, the downloaded files will be appended to the file specified in LocalFile. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ApplyFileMaskLocally: Whether to filter the directory listing locally or on the server.If set to any filemask provided to RemoteFile will be applied locally, after the server has returned the results. When set to (default), the value in RemoteFile will be sent to the server as part of the relevant listing command. Because using filemasks with list commands is not standardized, some servers do not support them and will return an error. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AutoSelectDataIP:
Automatically select the data connection IP.This setting controls the selection logic of the data connection. By default, this value is True and the
class will attempt to determine the best IP for the data connection based on the returned value from the server.
It is recommended to leave this value set to True unless there is a reason to disable it.
In many cases, FTP servers are not configured to return a valid public IP in the PASV response. When Secure Sockets Layer/Transport Layer Security (SSL/TLS) is used any network address translation (NAT) done by the firewall cannot occur. The result is the client may receive an IP that is not accessible. This setting is designed to allow the connection to succeed in as many cases as possible. When the IP for the data connection is received from the server, the class will inspect the value. If the received value is not within the known private IP ranges, the class will use it, assuming it is a valid public IP. If the received value is a private IP, the class will instead assume the data connection should be established to the same IP as the command connection (true in almost all cases). When this setting is False, the class will not perform any checks on the received value. When set to False, UseRemoteHostAddressForPassive is applicable. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CalculatePercentDone: Enables or Disables calculating the percent complete for downloads.When set to (default), the class sends an FTP SIZE command to retrieve the file size before beginning a download. When downloading a large quantity of small files, performance may be increased by disabling this feature. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CheckTotalEntry: Whether to ignore directory listing total lines.Some servers will include "total" information when returning a directory listing that contains non-entry data. When CheckTotalEntry is set to True (default), the component will ignore lines beginning with "total" to account for this. In some cases, it may be desirable to include these lines in the resulting DirList data; this can be done by setting this configuration setting to False. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DILinger:
When set to True, DI connections are terminated gracefully.
This property controls how the DI connection is closed. The default is True.
In the case that DILinger is True (default), follow two scenarios to determine how long the connection will linger. In the first scenario, if DILingerTime is 0 (default), the system will attempt to send pending data for a connection until the default IP timeout expires. In the second scenario, DILingerTime is a positive value, the system will attempt to send pending data until the specified DILingerTime is reached. If this attempt fails, then the system will reset the connection. The default behavior (which is also the default mode for stream sockets) might result in a long delay in closing the connection. Although the class returns control immediately, the system could hold system resources until all pending data are sent (even after your application closes). Setting this property to False forces an immediate disconnection. If you know that the other side has received all the data you sent (by a client acknowledgment, for example), setting this property to False might be the appropriate course of action. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DILingerTime: Time in seconds to have the DI connection linger. LingerTime is the time, in seconds, to let the socket connection linger. This value is 0 by default, which means it will use the default IP timeout. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FileTimeFormat:
The format of file time reported by the server.The default value is "M/d/yyyy hh:mm:ss tt". When set, the class will format the time returned by the server when calling the QueryFileTime method.
To disable all formatting, set this to empty string.
Note: This setting applies only when calling QueryFileTime. It does not apply to the FileTime parameter of the DirList event. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IgnoreEntries: Directory entry data to ignore.Sometimes the FTP server will return data in a directory listing that is not entry data and can be ignored. The IgnoreEntries configuration setting takes a comma-separated list of entries to ignore. Only the beginning of the entries need to be specified and correct case is not required. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaskSensitive: Masks passwords in logs.The default value is False. When set to True, the class will mask passwords that otherwise would appear in its logs. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ModeZCompressionLevel: Used to specify the level of compression used.The default value is 7. Valid values range from 0 to 9. A higher value indicates that a higher compression level is being used. This is valid only when UseModeZ is set to True. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PortRange:
Allows the specification of a port range where the class listens for active mode connections.When set to use active mode (Passive = False), the class uses any available port
to listen to incoming connections from the server. You can override this behavior by setting
PortRange to a value containing the range of ports the class will be
listening to.
The range is provided as start-end, for instance: "1024-" stands for anything higher than 1024, "1024-2048" stands for ports between 1024 and 2048 inclusive, "4000-4010, 50000-50010" stands for ports between 4000 and 4010 or between 50000 and 50010. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PreserveFileTime: Attempts to preserve timestamps when transferring files.When set to True, the class will try to preserve timestamps when transferring files. The MDTM command is used when downloading, and the MFTM command is used when uploading. The server must support these commands for this to work and is False by default. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RealTimeUpload: Enables real time uploading.When this value is set to True, the class will upload the data in the file specified by LocalFile and continue monitoring LocalFile for additional data to upload until no new data is found for RealTimeUploadAgeLimit seconds. This allows you to start uploading a file immediately after the file is created and continue uploading as data is written to the file. The default value is False. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RealTimeUploadAgeLimit: The age limit in seconds when using RealTimeUpload.This value is only applicable when RealTimeUpload is set to "True". This specifies the number of seconds for which the class will monitor LocalFile for new data to upload. If this limit is reached and no new data are found in LocalFile the upload will complete. The default value is "1". | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ReusePISSLSessionInDI: Whether the PI SSL session will be reused for the DI connection.When set to True (default), the class will reuse the PI SSL session when creating the DI connection. When set to False, the class will create a separate SSL session for the DI connection. The default value is True. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ReuseSSLSessionInDI: Whether the SSL session will be reused for the DI connection.When set to True (default), the class will ask the server to reuse the existing DI Secure Sockets Layer (SSL) session. When set to False, a new SSL session will always be created for the DI connection. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseClearChannel: Allows for the Clear Command Channel (CCC) command.When this is set, the class will send the CCC command to the server requesting a clear (unprotected) command channel. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseClearDataChannel: Allows for the PROT C command.When this is set, the class will use a clear (unprotected) data channel by sending the PROT C command to the server. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseEPSV: Allows extended passive mode.When this is set, the extended passive mode will be used. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseMLSD:
Uses listings for machine processing.When this is set to True, the class will list files in the directory using the MLSD command. This command is an extension
to the protocol that defines a more standardized and reliable directory listing format.
Not all servers support this command. The default value is False.
When set to True, set RemoteFile to the filemask and call either ListDirectory or ListDirectoryLong. There is no difference between the two methods when this setting is enabled. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseMLST:
Uses single file listing for machine processing.This setting is similar to UseMLSD except that it is valid only for a single file.
When this is set to True, the class will list the file or folder specified by RemoteFile. If RemoteFile
is not set, a listing for the current directory will be returned. This command is an extension
to the protocol, which defines a more standardized and reliable directory listing format, but does so only for a single file or folder.
Not all servers support this command. The default value is False.
When set to True, set RemoteFile to the file or folder you wish to get information about and call either ListDirectory or ListDirectoryLong. There is no difference between the two methods when this setting is enabled. When both UseMLSD and UseMLST are set, UseMLSD takes precedence. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseModeZ: Allows compression to be used when transferring data.The default value is False. When set to True, the class will issue the MODE Z command to the FTP server. This will enable deflate compression so that all data transferred are first compressed either by the server (when downloading) or by the class (when uploading). Note: Not all servers support this feature. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseOldAUTHSSL:
Allows use of the 'AUTH SSL' command instead of 'AUTH TLS'.By default, the class uses the standard AUTH TLS command to initiate
the SSL handshake with the server. This configuration setting is included
for optional support of older servers that support only the AUTH SSL
command.
Note: Using AUTH SSL instead of AUTH TLS is strongly discouraged because of potential security vulnerabilities. If you must use this configuration setting, please do so very carefully. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseProtWhenImplicit: Sends the PROT P command to the server.When SSLStartMode is set to sslImplicit, setting this to True will instruct the class to send the PROT P command to the server. This explicitly tells the server that the data channel will be protected. The default value is True. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseRemoteHostAddressForPassive:
Instructs the class to use the address specified by RemoteHost when establishing a data connection.When this setting is True, the class will use the address specified by RemoteHost when establishing a
data connection for directory listings and file transfers. This setting is applicable only when AutoSelectDataIP is set to False.
When this setting is False (default) and AutoSelectDataIP is also False, the class will use the IP address returned by the server when establishing a data connection. This setting is not applicable when Passive is set to False (Active mode). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VirtualHostName: Sends the HOST command to the server.Defined in RFC 7151, the HOST command allows user-FTP processes to specify which virtual host to connect to for a server-FTP process that is handling requests for multiple virtual hosts on a single IP address. When this configuration setting is set, the HOST command is sent to the server before authenticating. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TCPClient Config Settings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ConnectionTimeout: Sets a separate timeout value for establishing a connection.When set, this configuration setting allows you to specify a different timeout value for establishing a connection. Otherwise, the class will use Timeout for establishing a connection and transmitting/receiving data. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FirewallAutoDetect: Tells the class whether or not to automatically detect and use firewall system settings, if available.This configuration setting is provided for use by classs that do not directly expose Firewall properties. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FirewallHost:
Name or IP address of firewall (optional).If a FirewallHost is given, requested connections will be authenticated through the specified firewall
when connecting.
If the FirewallHost setting is set to a Domain Name, a DNS request is initiated. Upon successful termination of the request, the FirewallHost setting is set to the corresponding address. If the search is not successful, an error is returned. Note: This setting is provided for use by classs that do not directly expose Firewall properties. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FirewallPassword:
Password to be used if authentication is to be used when connecting through the firewall.If FirewallHost is specified, the FirewallUser and FirewallPassword settings
are used to connect and authenticate to the given firewall. If the authentication fails, the class .
Note: This setting is provided for use by classs that do not directly expose Firewall properties. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FirewallPort:
The TCP port for the FirewallHost;.The FirewallPort is set automatically when FirewallType is set to a valid value.
Note: This configuration setting is provided for use by classs that do not directly expose Firewall properties. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FirewallType:
Determines the type of firewall to connect through.The appropriate values are as follows:
Note: This setting is provided for use by classs that do not directly expose Firewall properties. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FirewallUser:
A user name if authentication is to be used connecting through a firewall.If the FirewallHost is specified, the FirewallUser and FirewallPassword
settings are used to connect and authenticate to the Firewall. If the authentication fails, the class .
Note: This setting is provided for use by classs that do not directly expose Firewall properties. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
KeepAliveInterval:
The retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received.When set, TCPKeepAlive will automatically be set to True.
A TCP keep-alive packet will be sent after a period of inactivity as
defined by KeepAliveTime. If no acknowledgment is received from the remote host, the keep-alive packet
will be sent again. This configuration setting specifies the interval at which the successive keep-alive packets are sent in milliseconds.
This system default if this value is not specified here is 1 second.
Note: This value is not applicable in macOS. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
KeepAliveTime: The inactivity time in milliseconds before a TCP keep-alive packet is sent.When set, TCPKeepAlive will automatically be set to True. By default, the operating system will determine the time a connection is idle before a Transmission Control Protocol (TCP) keep-alive packet is sent. This system default if this value is not specified here is 2 hours. In many cases, a shorter interval is more useful. Set this value to the desired interval in milliseconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Linger:
When set to True, connections are terminated gracefully.This property controls how a connection is closed. The default is True.
In the case that Linger is True (default), two scenarios determine how long the connection will linger. In the first, if LingerTime is 0 (default), the system will attempt to send pending data for a connection until the default IP timeout expires. In the second scenario, if LingerTime is a positive value, the system will attempt to send pending data until the specified LingerTime is reached. If this attempt fails, then the system will reset the connection. The default behavior (which is also the default mode for stream sockets) might result in a long delay in closing the connection. Although the class returns control immediately, the system could hold system resources until all pending data are sent (even after your application closes). Setting this property to False forces an immediate disconnection. If you know that the other side has received all the data you sent (e.g., by a client acknowledgment), setting this property to False might be the appropriate course of action. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LingerTime: Time in seconds to have the connection linger. LingerTime is the time, in seconds, the socket connection will linger. This value is 0 by default, which means it will use the default IP timeout. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LocalHost:
The name of the local host through which connections are initiated or accepted.
The LocalHost setting contains the name of the local host
as obtained by the gethostname() system call, or if the
user has assigned an IP address, the value of that address.
In multi-homed hosts (machines with more than one IP interface) setting LocalHost to the value of an interface will make the class initiate connections (or accept in the case of server classs) only through that interface. If the class is connected, the LocalHost setting shows the IP address of the interface through which the connection is made in internet dotted format (aaa.bbb.ccc.ddd). In most cases, this is the address of the local host, except for multi-homed hosts (machines with more than one IP interface). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LocalPort:
The port in the local host where the class binds.
This must be set before a connection is
attempted. It instructs the class to bind to a specific
port (or communication endpoint) in the local machine.
Setting this to 0 (default) enables the system to choose a port at random. The chosen port will be shown by LocalPort after the connection is established. LocalPort cannot be changed once a connection is made. Any attempt to set this when a connection is active will generate an error. This; setting is useful when trying to connect to services that require a trusted port in the client side. An example is the remote shell (rsh) service in UNIX systems. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxLineLength:
The maximum amount of data to accumulate when no EOL is found.MaxLineLength is the size of an internal buffer, which holds received data while waiting for an EOL
string.
If an EOL string is found in the input stream before MaxLineLength bytes are received, the DataIn event is fired with the EOL parameter set to True, and the buffer is reset. If no EOL is found, and MaxLineLength bytes are accumulated in the buffer, the DataIn event is fired with the EOL parameter set to False, and the buffer is reset. The minimum value for MaxLineLength is 256 bytes. The default value is 2048 bytes. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MaxTransferRate: The transfer rate limit in bytes per second.This configuration setting can be used to throttle outbound TCP traffic. Set this to the number of bytes to be sent per second. By default, this is not set and there is no limit. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ProxyExceptionsList:
A semicolon separated list of hosts and IPs to bypass when using a proxy.This configuration setting optionally specifies a semicolon-separated list of hostnames or IP addresses to bypass when a proxy is in use.
When requests are made to hosts specified in this property, the proxy will not be used. For instance:
www.google.com;www.nsoftware.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TCPKeepAlive:
Determines whether or not the keep alive socket option is enabled.If set to True, the socket's keep-alive option is enabled and keep-alive packets will be sent periodically
to maintain the connection. Set KeepAliveTime and KeepAliveInterval to
configure the timing of the keep-alive packets.
Note: This value is not applicable in Java. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TcpNoDelay:
Whether or not to delay when sending packets.
When true, the socket will send all data that is ready to send at once. When
false, the socket will send smaller buffered packets of data at small intervals.
This is known as the Nagle algorithm.
By default, this config is set to false. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseIPv6:
Whether to use IPv6.When set to 0 (default), the class will use IPv4 exclusively.
When set to 1, the class will use IPv6 exclusively. To instruct the class to prefer IPv6 addresses, but use IPv4 if IPv6 is not supported on the system, this setting should be set to 2. The default value is 0.
Possible values are:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSL Config Settings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LogSSLPackets:
Controls whether SSL packets are logged when using the internal security API.When SSLProvider is set to Internal, this setting controls whether SSL packets should be logged. By default, this setting is False, as it is only useful for debugging purposes.
When enabled, SSL packet logs are output using the SSLStatus event, which will fire each time an SSL packet is sent or received. Enabling this setting has no effect if SSLProvider is set to Platform. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OpenSSLCADir:
The path to a directory containing CA certificates.This functionality is available only when the provider is OpenSSL.
The path set by this property should point to a directory containing CA certificates in PEM format. The files each contain one CA certificate. The files are looked up by the CA subject name hash value, which must hence be available. If more than one CA certificate with the same name hash value exist, the extension must be different (e.g. 9d66eef0.0, 9d66eef0.1 etc). OpenSSL recommends to use the c_rehash utility to create the necessary links. Please refer to the OpenSSL man page SSL_CTX_load_verify_locations(3) for details. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OpenSSLCAFile:
Name of the file containing the list of CA's trusted by your application.This functionality is available only when the provider is OpenSSL.
The file set by this property should contain a list of CA certificates in PEM format. The file can contain several CA certificates identified by -----BEGIN CERTIFICATE----- ... (CA certificate in base64 encoding) ... -----END CERTIFICATE----- sequences. Before, between, and after the certificates text is allowed which can be used e.g. for descriptions of the certificates. Please refer to the OpenSSL man page SSL_CTX_load_verify_locations(3) for details. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OpenSSLCipherList:
A string that controls the ciphers to be used by SSL.This functionality is available only when the provider is OpenSSL.
The format of this string is described in the OpenSSL man page ciphers(1) section "CIPHER LIST FORMAT". Please refer to it for details. The default string "DEFAULT" is determined at compile time and is normally equivalent to "ALL:!ADH:RC4+RSA:+SSLv2:@STRENGTH". |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OpenSSLPrngSeedData:
The data to seed the pseudo random number generator (PRNG).This functionality is available only when the provider is OpenSSL.
By default OpenSSL uses the device file "/dev/urandom" to seed the PRNG and setting OpenSSLPrngSeedData is not required. If set, the string specified is used to seed the PRNG. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ReuseSSLSession:
Determines if the SSL session is reused.
If set to true, the class will reuse the context if and only if the following criteria are met:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLCACerts:
A newline separated list of CA certificate to use during SSL client authentication.This setting specifies one or more CA certificates to be included in the request when performing
SSL client authentication. Some servers require the entire chain, including CA certificates, to be presented
when performing SSL client authentication. The value of this setting is a newline (CrLf) separated list of certificates. For instance:
-----BEGIN CERTIFICATE----- MIIEKzCCAxOgAwIBAgIRANTET4LIkxdH6P+CFIiHvTowDQYJKoZIhvcNAQELBQAw ... eWHV5OW1K53o/atv59sOiW5K3crjFhsBOd5Q+cJJnU+SWinPKtANXMht+EDvYY2w F0I1XhM+pKj7FjDr+XNj -----END CERTIFICATE----- \r \n -----BEGIN CERTIFICATE----- MIIEFjCCAv6gAwIBAgIQetu1SMxpnENAnnOz1P+PtTANBgkqhkiG9w0BAQUFADBp .. d8q23djXZbVYiIfE9ebr4g3152BlVCHZ2GyPdjhIuLeH21VbT/dyEHHA -----END CERTIFICATE----- |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLCheckCRL:
Whether to check the Certificate Revocation List for the server certificate.This setting specifies whether the class will check the Certificate Revocation List specified by the server certificate. If set to 1 or 2, the class will first obtain the list of CRL URLs from the server certificate's CRL distribution points extension. The class will then make HTTP requests to each CRL endpoint to check the validity of the server's certificate. If the certificate has been revoked or any other issues are found during validation the class .
When set to 0 (default) the CRL check will not be performed by the class. When set to 1, it will attempt to perform the CRL check, but will continue without an error if the server's certificate does not support CRL. When set to 2, it will perform the CRL check and will throw an error if CRL is not supported. This configuration setting is only supported in the Java, C#, and C++ editions. In the C++ edition, it is only supported on Windows operating systems. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLCheckOCSP:
Whether to use OCSP to check the status of the server certificate.This setting specifies whether the class will use OCSP to check the validity of the server certificate. If set to 1 or 2, the class will first obtain the OCSP URL from the server certificate's OCSP extension. The class will then locate the issuing certificate and make an HTTP request to the OCSP endpoint to check the validity of the server's certificate. If the certificate has been revoked or any other issues are found during validation the class .
When set to 0 (default) the class will not perform an OCSP check. When set to 1, it will attempt to perform the OCSP check, but will continue without an error if the server's certificate does not support OCSP. When set to 2, it will perform the OCSP check and will throw an error if OCSP is not supported. This configuration setting is only supported in the Java, C#, and C++ editions. In the C++ edition, it is only supported on Windows operating systems. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLCipherStrength:
The minimum cipher strength used for bulk encryption.
This minimum cipher strength largely dependent on the security modules installed
on the system. If the cipher strength specified is not supported,
an error will be returned when connections are initiated.
Please note that this setting contains the minimum cipher strength requested from the security library. The actual cipher strength used for the connection is shown by the SSLStatus event. Use this setting with caution. Requesting a lower cipher strength than necessary could potentially cause serious security vulnerabilities in your application. When the provider is OpenSSL, SSLCipherStrength is currently not supported. This functionality is instead made available through the OpenSSLCipherList config setting. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLEnabledCipherSuites:
The cipher suite to be used in an SSL negotiation.The enabled cipher suites to be used in SSL negotiation.
By default, the enabled cipher suites will include all available ciphers ("*"). The special value "*" means that the class will pick all of the supported cipher suites. If SSLEnabledCipherSuites is set to any other value, only the specified cipher suites will be considered. Multiple cipher suites are separated by semicolons. Example values when SSLProvider is set to Platform:
obj.config("SSLEnabledCipherSuites=*");
obj.config("SSLEnabledCipherSuites=TLS_DHE_DSS_WITH_AES_128_CBC_SHA");
obj.config("SSLEnabledCipherSuites=TLS_DHE_DSS_WITH_AES_128_CBC_SHA;TLS_DH_ANON_WITH_AES_128_CBC_SHA");
Possible values when SSLProvider is set to Internal include:
When TLS 1.3 is negotiated (see SSLEnabledProtocols) only the following cipher suites are supported:
SSLEnabledCipherSuites is used together with SSLCipherStrength. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLEnabledProtocols:
Used to enable/disable the supported security protocols.Used to enable/disable the supported security protocols.
Not all supported protocols are enabled by default (the value of this setting is 4032). If you want more granular control over the enabled protocols, you can set this property to the binary 'OR' of one or more of the following values:
SSLEnabledProtocols - TLS 1.3 Notes By default when TLS 1.3 is enabled the class will use the internal TLS implementation when the SSLProvider is set to Automatic for all editions. In editions which are designed to run on Windows SSLProvider can be set to Platform to use the platform implementation instead of the internal implementation. When configured in this manner, please note that the platform provider is only supported on Windows 11 / Windows Server 2022 and up. The default internal provider is available on all platforms and is not restricted to any specific OS version. If set to 1 (Platform provider) please be aware of the following notes:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLEnableRenegotiation:
Whether the renegotiation_info SSL extension is supported.This setting specifies whether the renegotiation_info SSL extension will be used in the request when using the internal security API.
This setting is by default, but can be set to to disable the extension.
This setting is only applicable when SSLProvider is set to Internal. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLIncludeCertChain:
Whether the entire certificate chain is included in the SSLServerAuthentication event.This setting specifies whether the Encoded parameter of the SSLServerAuthentication event contains
the full certificate chain. By default this value is False and only the leaf certificate will be present
in the Encoded parameter of the SSLServerAuthentication event.
If set to True all certificates returned by the server will be present in the Encoded parameter of the SSLServerAuthentication event. This includes the leaf certificate, any intermediate certificate, and the root certificate. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLKeyLogFile:
The location of a file where per-session secrets are written for debugging purposes.This setting optionally specifies the full path to a file on disk where per-session secrets are stored for debugging purposes.
When set, the class will save the session secrets in the same format as the SSLKEYLOGFILE environment variable functionality used by most major browsers and tools such as Chrome, Firefox, and cURL. This file can then be used in tools such as Wireshark to decrypt TLS traffice for debugging purposes. When writing to this file the class will only append, it will not overwrite previous values. Note: This setting is only applicable when SSLProvider is set to Internal. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLNegotiatedCipher:
Returns the negotiated ciphersuite.Returns the ciphersuite negotiated during the SSL handshake.
Note: For server components (e.g. TCPServer) this is a per-connection setting accessed by passing the ConnectionId. For example:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLNegotiatedCipherStrength:
Returns the negotiated ciphersuite strength.Returns the strength of the ciphersuite negotiated during the SSL handshake.
Note: For server components (e.g.TCPServer) this is a per-connection setting accessed by passing the ConnectionId. For example:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLNegotiatedCipherSuite:
Returns the negotiated ciphersuite.Returns the ciphersuite negotiated during the SSL handshake represented as a single string.
Note: For server components (e.g. TCPServer) this is a per-connection setting accessed by passing the ConnectionId. For example:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLNegotiatedKeyExchange:
Returns the negotiated key exchange algorithm.Returns the key exchange algorithm negotiated during the SSL handshake.
Note: For server components (e.g. TCPServer) this is a per-connection setting accessed by passing the ConnectionId. For example:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLNegotiatedKeyExchangeStrength:
Returns the negotiated key exchange algorithm strength.Returns the strenghth of the key exchange algorithm negotiated during the SSL handshake.
Note: For server components (e.g. TCPServer) this is a per-connection setting accessed by passing the ConnectionId. For example:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLNegotiatedVersion:
Returns the negotiated protocol version.Returns the protocol version negotiated during the SSL handshake.
Note: For server components (e.g. TCPServer) this is a per-connection setting accessed by passing the ConnectionId. For example:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLSecurityFlags:
Flags that control certificate verification.The following flags are defined (specified in hexadecimal
notation). They can be or-ed together to exclude multiple
conditions:
This functionality is currently not available when the provider is OpenSSL. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SSLServerCACerts:
A newline separated list of CA certificate to use during SSL server certificate validation.This setting optionally specifies one or more CA certificates to be used when verifying the server certificate. When verifying the server's certificate the certificates trusted by the system will be used as part of the verification process. If the server's CA certificates are not installed to the trusted system store, they may be specified here so they are included when performing the verification process. This setting should only be set if the server's CA certificates are not already trusted on the system and cannot be installed to the trusted system store.
The value of this setting is a newline (CrLf) separated list of certificates. For instance: -----BEGIN CERTIFICATE----- MIIEKzCCAxOgAwIBAgIRANTET4LIkxdH6P+CFIiHvTowDQYJKoZIhvcNAQELBQAw ... eWHV5OW1K53o/atv59sOiW5K3crjFhsBOd5Q+cJJnU+SWinPKtANXMht+EDvYY2w F0I1XhM+pKj7FjDr+XNj -----END CERTIFICATE----- \r \n -----BEGIN CERTIFICATE----- MIIEFjCCAv6gAwIBAgIQetu1SMxpnENAnnOz1P+PtTANBgkqhkiG9w0BAQUFADBp .. d8q23djXZbVYiIfE9ebr4g3152BlVCHZ2GyPdjhIuLeH21VbT/dyEHHA -----END CERTIFICATE----- |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TLS12SignatureAlgorithms:
Defines the allowed TLS 1.2 signature algorithms when SSLProvider is set to Internal.This setting specifies the allowed server certificate signature algorithms when SSLProvider is set to Internal and SSLEnabledProtocols is set to allow TLS 1.2.
When specified the class will verify that the server certificate signature algorithm is among the values specified in this setting. If the server certificate signature algorithm is unsupported the class . The format of this value is a comma separated list of hash-signature combinations. For instance:
In order to not restrict the server's certificate signature algorithm, specify an empty string as the value for this setting, which will cause the signature_algorithms TLS 1.2 extension to not be sent. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TLS12SupportedGroups:
The supported groups for ECC.This setting specifies a comma separated list of named groups used in TLS 1.2 for ECC.
The default value is ecdhe_secp256r1,ecdhe_secp384r1,ecdhe_secp521r1. When using TLS 1.2 and SSLProvider is set to Internal, the values refer to the supported groups for ECC. The following values are supported:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TLS13KeyShareGroups:
The groups for which to pregenerate key shares.This setting specifies a comma separated list of named groups used in TLS 1.3 for key exchange.
The groups specified here will have key share data pregenerated locally before establishing a connection.
This can prevent an additional round trip during the handshake if the group is supported by the server.
The default value is set to balance common supported groups and the computational resources required to generate key shares. As a result only some groups are included by default in this setting. Note: All supported groups can always be used during the handshake even if not listed here, but if a group is used which is not present in this list it will incur an additional round trip and time to generate the key share for that group. In most cases this setting does not need to be modified. This should only be modified if there is a specific reason to do so. The default value is ecdhe_x25519,ecdhe_secp256r1,ecdhe_secp384r1,ffdhe_2048,ffdhe_3072 The values are ordered from most preferred to least preferred. The following values are supported:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TLS13SignatureAlgorithms:
The allowed certificate signature algorithms.This setting holds a comma separated list of allowed signature algorithms. Possible values are:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TLS13SupportedGroups:
The supported groups for (EC)DHE key exchange.This setting specifies a comma separated list of named groups used in TLS 1.3 for key exchange.
This setting should only be modified if there is a specific reason to do so.
The default value is ecdhe_x25519,ecdhe_x448,ecdhe_secp256r1,ecdhe_secp384r1,ecdhe_secp521r1,ffdhe_2048,ffdhe_3072,ffdhe_4096,ffdhe_6144,ffdhe_8192 The values are ordered from most preferred to least preferred. The following values are supported:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Socket Config Settings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AbsoluteTimeout:
Determines whether timeouts are inactivity timeouts or absolute timeouts.If AbsoluteTimeout is set to True, any method which does not complete within Timeout seconds
will be aborted. By default, AbsoluteTimeout is False, and the timeout is an inactivity timeout.
Note: This option is not valid for UDP ports. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FirewallData: Used to send extra data to the firewall.When the firewall is a tunneling proxy, use this property to send custom (additional) headers to the firewall (e.g. headers for custom authentication schemes). | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
InBufferSize:
The size in bytes of the incoming queue of the socket.
This is the size of an internal queue in the TCP/IP stack.
You can increase or decrease its size depending on the amount
of data that you will be receiving. Increasing the value of the
InBufferSize setting can provide significant improvements in
performance in some cases.
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the class is activated the InBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OutBufferSize:
The size in bytes of the outgoing queue of the socket.This is the size of an internal queue in the TCP/IP stack.
You can increase or decrease its size depending on the amount
of data that you will be sending. Increasing the value of the
OutBufferSize setting can provide significant improvements in
performance in some cases.
Some TCP/IP implementations do not support variable buffer sizes. If that is the case, when the class is activated the OutBufferSize reverts to its defined size. The same happens if you attempt to make it too large or too small. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Base Config Settings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BuildInfo: Information about the product's build.When queried, this setting will return a string containing information about the product's build. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CodePage:
The system code page used for Unicode to Multibyte translations.The default code page is Unicode UTF-8 (65001).
The following is a list of valid code page identifiers:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
LicenseInfo:
Information about the current license.When queried, this setting will return a string containing information about the license this instance of a class is using. It will return the following information:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UseInternalSecurityAPI:
Tells the class whether or not to use the system security libraries or an internal implementation.
When set to , the class will use the system security libraries by default to perform cryptographic functions where applicable.
Setting this setting to tells the class to use the internal implementation instead of using the system security libraries. This setting is set to by default on all platforms. |
Trappable Errors (AS3Receiver Module)
AS3Receiver Errors
1001 You must set the request filename first. | |
903 You must specify a remote filename. | |
1002 A response was not requested. | |
701 Unable to write log file. | |
711 The incoming message was encrypted with an unknown protocol. | |
712 Unable to decrypt message. | |
713 Unable to decompress message. | |
732 *Unable to verify content integrity. | |
733 *Unsupported signature type was requested. | |
734 *Unsupported MIC algorithm(s) were requested. |
FTP Errors
118 Firewall error. The error description contains detailed information. | |
141 FTP error. The error message contains the server reply. | |
142 Communication error. The error message contains the description. | |
143 Busy executing current method. | |
144 Local file error. The error description contains detailed information. | |
145 Can't open LocalFile for reading. | |
146 No RemoteFile specified while uploading. | |
147 Data interface error. The error description contains detailed information. | |
148 LocalFile already exists and overwrite is False. | |
149 Windows message queue dropped a message (typically due to heavy load). | |
301 Operation is interrupted. | |
302 Can't open local file. | |
311 Accept failed for data connection. | |
312 Asynchronous select failed for data connection. |
TCPClient Errors
100 You cannot change the RemotePort at this time. A connection is in progress. | |
101 You cannot change the RemoteHost (Server) at this time. A connection is in progress. | |
102 The RemoteHost address is invalid (0.0.0.0). | |
104 Already connected. If you want to reconnect, close the current connection first. | |
106 You cannot change the LocalPort at this time. A connection is in progress. | |
107 You cannot change the LocalHost at this time. A connection is in progress. | |
112 You cannot change MaxLineLength at this time. A connection is in progress. | |
116 RemotePort cannot be zero. Please specify a valid service port number. | |
117 You cannot change the UseConnection option while the class is active. | |
135 Operation would block. | |
201 Timeout. | |
211 Action impossible in control's present state. | |
212 Action impossible while not connected. | |
213 Action impossible while listening. | |
301 Timeout. | |
302 Could not open file. | |
434 Unable to convert string to selected CodePage. | |
1105 Already connecting. If you want to reconnect, close the current connection first. | |
1117 You need to connect first. | |
1119 You cannot change the LocalHost at this time. A connection is in progress. | |
1120 Connection dropped by remote host. |
TCP/IP Errors
10004 [10004] Interrupted system call. | |
10009 [10009] Bad file number. | |
10013 [10013] Access denied. | |
10014 [10014] Bad address. | |
10022 [10022] Invalid argument. | |
10024 [10024] Too many open files. | |
10035 [10035] Operation would block. | |
10036 [10036] Operation now in progress. | |
10037 [10037] Operation already in progress. | |
10038 [10038] Socket operation on non-socket. | |
10039 [10039] Destination address required. | |
10040 [10040] Message too long. | |
10041 [10041] Protocol wrong type for socket. | |
10042 [10042] Bad protocol option. | |
10043 [10043] Protocol not supported. | |
10044 [10044] Socket type not supported. | |
10045 [10045] Operation not supported on socket. | |
10046 [10046] Protocol family not supported. | |
10047 [10047] Address family not supported by protocol family. | |
10048 [10048] Address already in use. | |
10049 [10049] Can't assign requested address. | |
10050 [10050] Network is down. | |
10051 [10051] Network is unreachable. | |
10052 [10052] Net dropped connection or reset. | |
10053 [10053] Software caused connection abort. | |
10054 [10054] Connection reset by peer. | |
10055 [10055] No buffer space available. | |
10056 [10056] Socket is already connected. | |
10057 [10057] Socket is not connected. | |
10058 [10058] Can't send after socket shutdown. | |
10059 [10059] Too many references, can't splice. | |
10060 [10060] Connection timed out. | |
10061 [10061] Connection refused. | |
10062 [10062] Too many levels of symbolic links. | |
10063 [10063] File name too long. | |
10064 [10064] Host is down. | |
10065 [10065] No route to host. | |
10066 [10066] Directory not empty | |
10067 [10067] Too many processes. | |
10068 [10068] Too many users. | |
10069 [10069] Disc Quota Exceeded. | |
10070 [10070] Stale NFS file handle. | |
10071 [10071] Too many levels of remote in path. | |
10091 [10091] Network subsystem is unavailable. | |
10092 [10092] WINSOCK DLL Version out of range. | |
10093 [10093] Winsock not loaded yet. | |
11001 [11001] Host not found. | |
11002 [11002] Non-authoritative 'Host not found' (try again or check DNS setup). | |
11003 [11003] Non-recoverable errors: FORMERR, REFUSED, NOTIMP. | |
11004 [11004] Valid name, no data record (check DNS setup). |
SMIME Errors
10191 Invalid index (RecipientIndex). | |
10192 Message decoding error (code). | |
10193 Unexpected message type. | |
10194 Unsupported hashing/signing algorithm. | |
10195 The message does not have any signers. | |
10196 The message signature could not be verified. | |
10197 Could not locate a suitable decryption certificate. | |
10198 The signer certificate could not be found. | |
10199 No signing certificate was supplied for signing the message. | |
10201 The specified certificate was not the one required. | |
10202 The specified certificate could not be found. | |
10221 Could not acquire CSP. | |
10222 Type validation error. | |
10223 Unsupported key size. | |
10224 Unrecognized Content-Type object identifier. | |
10225 Unrecognized public key format. | |
10226 No choices specified. | |
10228 Must specify output stream. | |
10280 Invalid part index. | |
10281 Unknown MIME type. | |
10283 No MIME-boundary found. | |
10280 Error decoding certificate. |