DTLSClient Class
Properties Methods Events Config Settings Errors
The DTLSClient class provides client-side functionality for secure UDP communication utilizing the Datagram Transport Layer Security (DTLS) protocol.
Class Name
IPWorksDTLS_DTLSClient
Procedural Interface
ipworksdtls_dtlsclient_open(); ipworksdtls_dtlsclient_close($res); ipworksdtls_dtlsclient_register_callback($res, $id, $function); ipworksdtls_dtlsclient_get_last_error($res); ipworksdtls_dtlsclient_get_last_error_code($res); ipworksdtls_dtlsclient_set($res, $id, $index, $value); ipworksdtls_dtlsclient_get($res, $id, $index); ipworksdtls_dtlsclient_do_config($res, $configurationstring); ipworksdtls_dtlsclient_do_connect($res); ipworksdtls_dtlsclient_do_disconnect($res); ipworksdtls_dtlsclient_do_doevents($res); ipworksdtls_dtlsclient_do_pausedata($res); ipworksdtls_dtlsclient_do_processdata($res); ipworksdtls_dtlsclient_do_reset($res); ipworksdtls_dtlsclient_do_sendbytes($res, $data); ipworksdtls_dtlsclient_do_sendtext($res, $text);
Remarks
The DTLSClient class functions as a client that facilitates in connecting to DTLS servers and offers a convenient means of transmitting and receiving datagrams over the established, secure connection.
Connecting to a Server
First, the RemoteHost and RemotePort must be set to the address and port of the target DTLS server. The Timeout property can be used to specify a timeout when connecting to the server. To initiate the connection, call Connect.
After doing so, the handshake process will begin. Relevant handshake details will be reported by the SSLStatus event. Initially, the server will present its certificate to the client. The certificate can be evaluated within the SSLServerAuthentication event. By default, the class will provide a recommendation of whether to accept or reject the certificate, and reasoning behind the recommendation. Regardless, the certificate can be manually accepted (or rejected) within this event.
In some cases, the server requires the client to present a certificate as well. In this case, a valid certificate will need to be specified via the SSLCert* properties.
Once the connection is complete (or fails), the Connected event will fire. Note that this event will fire if a connection succeeds or fails. If successful, the event will fire with a StatusCode of 0. If this value is non-zero, it indicates the connection was unsuccessful. The Description parameter will contain relevant details. Upon successful connection, the Connected property will be set to True. This process may look like the following:
dtlsclient.OnConnected += (o, e) => {
if (e.StatusCode == 0) {
Console.WriteLine("Connection successful!");
} else {
Console.WriteLine("Connection failed.");
Console.WriteLine("Error code: " + e.StatusCode);
Console.WriteLine("Error description: " + e.Description);
}
};
dtlsclient.OnSSLServerAuthentication += (o, e) => {
if (e.Accept) return;
Console.Write("Server provided the following certificate:\nIssuer: " + e.CertIssuer + "\nSubject: " + e.CertSubject + "\n");
Console.Write("The following problems have been determined for this certificate: " + e.Status + "\n");
Console.Write("Would you like to accept anyways? [y/n] ");
if (Console.Read() == 'y') e.Accept = true;
};
dtlsclient.RemoteHost = "remote_ip";
dtlsclient.RemotePort = 1234;
dtlsclient.Timeout = 30;
// if client authentication is applicable
dtlsclient.SSLCert = new Certificate("/path/to/cert.pfx", CertStoreTypes.cstPFXFile, "cert_password", "cert_subject");
dtlsclient.Connect();
Sending and Receiving Data
Once a successful connection is established, the class can send data to the server via SendText or SendBytes.
The class will also be able to receive data from the server via the DataIn event. Note that this event is non-reentrant, and it is recommended to offload time-consuming operations to ensure the best performance.
If required, the PauseData method can be called, disabling the reception of incoming data from the server. Data reception can later be enabled via the ProcessData method. Note that if this reception is disabled, the server may continue sending data, which will remain unprocessed by the class. In this case, the underlying socket buffer may be filled. This can result in possible data loss originating from the server. Please use these methods with caution.
The complete process may look like the following:
dtlsclient.OnSSLServerAuthentication += (o, e) => {
e.Accept = true;
};
dtlsclient.OnDataIn += (o, e) => {
Console.WriteLine("Packet received from server.");
Console.WriteLine("Datagram: " + e.Datagram);
}
dtlsclient.RemoteHost = "remote_ip";
dtlsclient.RemotePort = 1234;
dtlsclient.Connect();
dtlsclient.SendText("Hello World!");
while (true) {
dtlsclient.DoEvents();
}
Disconnecting from a Server
Once the connection to the server is broken, the Disconnected event will fire. The disconnection can be performed by calling Disconnect, or performed by the server.
In the case a connection ends and an error is encountered, the StatusCode and Description parameters will contain relevant details regarding the error. For example:
dtlsclient.OnDisconnected += (o, e) => {
if (e.StatusCode == 0) {
Console.WriteLine("Connection ended.");
} else {
Console.WriteLine("Connection ended.");
Console.WriteLine("Error code: " + e.StatusCode);
Console.WriteLine("Error description: " + e.Description);
}
};
dtlsclient.RemoteHost = "remote_ip";
dtlsclient.RemotePort = 1234;
dtlsclient.Connect();
...
...
...
dtlsclient.Disconnect();
Additional Information
To support KeepAlive functionality, it is important to note that DoEvents must be called regularly in both console and form-based applications.
For KeepAlive, DoEvents must be called frequently to ensure the class sends keep-alive (or Heartbeat) packets to existing connections in a timely manner.
In form-based applications, this does not apply if KeepAlive is False.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
AcceptData | This property indicates whether data reception is currently enabled. |
Connected | This property indicates whether the class is connected. |
KeepAlive | When True, keep-alive functionality is enabled via the DTLS Heartbeat Extension. |
LocalHost | This property includes the name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
LocalPort | This property includes the User Datagram Protocol (UDP) port in the local host where UDP binds. |
RemoteHost | This property includes the address of the remote host. Domain names are resolved to IP addresses. |
RemotePort | This property specifies the User Datagram Protocol (UDP) port in the remote host. |
SSLAcceptServerCertEffectiveDate | This is the date on which this certificate becomes valid. |
SSLAcceptServerCertEncoded | This is the certificate (PEM/base64 encoded). |
SSLAcceptServerCertExpirationDate | This is the date the certificate expires. |
SSLAcceptServerCertExtendedKeyUsage | This is a comma-delimited list of extended key usage identifiers. |
SSLAcceptServerCertFingerprint | This is the hex-encoded, 16-byte MD5 fingerprint of the certificate. |
SSLAcceptServerCertFingerprintSHA1 | This is the hex-encoded, 20-byte SHA-1 fingerprint of the certificate. |
SSLAcceptServerCertFingerprintSHA256 | This is the hex-encoded, 32-byte SHA-256 fingerprint of the certificate. |
SSLAcceptServerCertIssuer | This is the issuer of the certificate. |
SSLAcceptServerCertPrivateKey | This is the private key of the certificate (if available). |
SSLAcceptServerCertPrivateKeyAvailable | This property shows whether a PrivateKey is available for the selected certificate. |
SSLAcceptServerCertPrivateKeyContainer | This is the name of the PrivateKey container for the certificate (if available). |
SSLAcceptServerCertPublicKey | This is the public key of the certificate. |
SSLAcceptServerCertPublicKeyAlgorithm | This property contains the textual description of the certificate's public key algorithm. |
SSLAcceptServerCertPublicKeyLength | This is the length of the certificate's public key (in bits). |
SSLAcceptServerCertSerialNumber | This is the serial number of the certificate encoded as a string. |
SSLAcceptServerCertSignatureAlgorithm | The property contains the text description of the certificate's signature algorithm. |
SSLAcceptServerCertStore | This is the name of the certificate store for the client certificate. |
SSLAcceptServerCertStorePassword | If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store. |
SSLAcceptServerCertStoreType | This is the type of certificate store for this certificate. |
SSLAcceptServerCertSubject | This is the subject of the certificate used for client authentication. |
SSLAcceptServerCertSubjectAltNames | This property contains comma-separated lists of alternative subject names for the certificate. |
SSLAcceptServerCertThumbprintMD5 | This property contains the MD5 hash of the certificate. |
SSLAcceptServerCertThumbprintSHA1 | This property contains the SHA-1 hash of the certificate. |
SSLAcceptServerCertThumbprintSHA256 | This property contains the SHA-256 hash of the certificate. |
SSLAcceptServerCertUsage | This property contains the text description of UsageFlags . |
SSLAcceptServerCertUsageFlags | This property contains the flags that show intended use for the certificate. |
SSLAcceptServerCertVersion | This property contains the certificate's version number. |
SSLCertEffectiveDate | This is the date on which this certificate becomes valid. |
SSLCertEncoded | This is the certificate (PEM/base64 encoded). |
SSLCertExpirationDate | This is the date the certificate expires. |
SSLCertExtendedKeyUsage | This is a comma-delimited list of extended key usage identifiers. |
SSLCertFingerprint | This is the hex-encoded, 16-byte MD5 fingerprint of the certificate. |
SSLCertFingerprintSHA1 | This is the hex-encoded, 20-byte SHA-1 fingerprint of the certificate. |
SSLCertFingerprintSHA256 | This is the hex-encoded, 32-byte SHA-256 fingerprint of the certificate. |
SSLCertIssuer | This is the issuer of the certificate. |
SSLCertPrivateKey | This is the private key of the certificate (if available). |
SSLCertPrivateKeyAvailable | This property shows whether a PrivateKey is available for the selected certificate. |
SSLCertPrivateKeyContainer | This is the name of the PrivateKey container for the certificate (if available). |
SSLCertPublicKey | This is the public key of the certificate. |
SSLCertPublicKeyAlgorithm | This property contains the textual description of the certificate's public key algorithm. |
SSLCertPublicKeyLength | This is the length of the certificate's public key (in bits). |
SSLCertSerialNumber | This is the serial number of the certificate encoded as a string. |
SSLCertSignatureAlgorithm | The property contains the text description of the certificate's signature algorithm. |
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. |
SSLCertSubjectAltNames | This property contains comma-separated lists of alternative subject names for the certificate. |
SSLCertThumbprintMD5 | This property contains the MD5 hash of the certificate. |
SSLCertThumbprintSHA1 | This property contains the SHA-1 hash of the certificate. |
SSLCertThumbprintSHA256 | This property contains the SHA-256 hash of the certificate. |
SSLCertUsage | This property contains the text description of UsageFlags . |
SSLCertUsageFlags | This property contains the flags that show intended use for the certificate. |
SSLCertVersion | This property contains the certificate's version number. |
Timeout | This property specifies a timeout when connecting to a server. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
Config | This method sets or retrieves a configuration setting. |
Connect | This method connects to a remote host. |
Disconnect | This method disconnects from the remote host. |
DoEvents | This method processes events from the internal message queue. |
PauseData | This method pauses data reception. |
ProcessData | This method reenables data reception after a call to PauseData . |
Reset | This method will reset the class. |
SendBytes | This method sends binary data to the remote host. |
SendText | This method sends text to the remote host. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
Connected | This event is fired immediately after a connection completes (or fails). |
DataIn | This event is fired when data are received. |
Disconnected | This event is fired when a connection is closed. |
Error | This event is fired for information about errors during data delivery. |
Log | This event fires once for each log message. |
SSLServerAuthentication | This event is fired after the server presents its certificate to the client. |
SSLStatus | This event shows the progress of the secure connection. |
Config Settings
The following is a list of config settings for the class with short descriptions. Click on the links for further details.
EnabledCipherSuites | Specifies the cipher suites to be used during TLS negotiation. |
KeepAliveInterval | The retry interval, in seconds, to be used when a HeartbeatRequest is sent and no response is received. |
KeepAliveMode | Specifies the Heartbeat (or keep-alive) mode to be used by the class. |
KeepAliveTime | The inactivity time, in seconds, before a HeartbeatRequest is sent. |
LogLevel | This configuration controls the level of detail that is logged through the Log event. |
LogSSLPackets | Controls whether SSL packets are logged. |
CaptureIPPacketInfo | Used to capture the packet information. |
DelayHostResolution | Whether the hostname is resolved when RemoteHost is set. |
DestinationAddress | Used to get the destination address from the packet information. |
DontFragment | Used to set the Don't Fragment flag of outgoing packets. |
LocalHost | The name of the local host through which connections are initiated or accepted. |
LocalPort | The port in the local host where the class binds. |
MaxPacketSize | The maximum length of the packets that can be received. |
QOSDSCPValue | Used to specify an arbitrary QOS/DSCP setting (optional). |
QOSTrafficType | Used to specify QOS/DSCP settings (optional). |
ShareLocalPort | If set to True, allows more than one instance of the class to be active on the same local port. |
SourceIPAddress | Used to set the source IP address used when sending a packet. |
SourceMacAddress | Used to set the source MAC address used when sending a packet. |
UseConnection | Determines whether to use a connected socket. |
UseIPv6 | Whether or not to use IPv6. |
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. |
MaskSensitive | Whether sensitive data is masked in log messages. |
ProcessIdleEvents | Whether the class uses its internal event loop to process events when the main thread is idle. |
SelectWaitMillis | The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process. |
UseInternalSecurityAPI | Tells the class whether or not to use the system security libraries or an internal implementation. |
AcceptData Property (IPWorksDTLS_DTLSClient Class)
This property indicates whether data reception is currently enabled.
Object Oriented Interface
public function getAcceptData();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 1 );
Default Value
true
Remarks
This property indicates whether data reception is currently enabled. When false, data reception is disabled and the DataIn event will not fire. Use the PauseData and ProcessData methods to pause and resume data reception.
This property is read-only and not available at design time.
Data Type
Boolean
Connected Property (IPWorksDTLS_DTLSClient Class)
This property indicates whether the class is connected.
Object Oriented Interface
public function getConnected();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 2 );
Default Value
false
Remarks
This property indicates whether the class is connected to the remote host. Use the Connect and Disconnect methods to manage the connection.
This property is read-only and not available at design time.
Data Type
Boolean
KeepAlive Property (IPWorksDTLS_DTLSClient Class)
When True, keep-alive functionality is enabled via the DTLS Heartbeat Extension.
Object Oriented Interface
public function getKeepAlive(); public function setKeepAlive($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 3 ); ipworksdtls_dtlsclient_set($res, 3, $value );
Default Value
false
Remarks
This property enables keep-alive functionality for the established connection via the DTLS Heartbeat Extension (RFC 6520). Enabling this option can prevent a long connection from timing out in case of inactivity.
Note: For this functionality to work as intended, DoEvents must be called frequently in both console and form-based applications (e.g., using a loop or timer).
Additionally, DTLS server implementations are not required to support Heartbeats.
Data Type
Boolean
LocalHost Property (IPWorksDTLS_DTLSClient Class)
This property includes the name of the local host or user-assigned IP interface through which connections are initiated or accepted.
Object Oriented Interface
public function getLocalHost(); public function setLocalHost($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 4 ); ipworksdtls_dtlsclient_set($res, 4, $value );
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 multihomed 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 multihomed 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.
Data Type
String
LocalPort Property (IPWorksDTLS_DTLSClient Class)
This property includes the User Datagram Protocol (UDP) port in the local host where UDP binds.
Object Oriented Interface
public function getLocalPort(); public function setLocalPort($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 5 ); ipworksdtls_dtlsclient_set($res, 5, $value );
Default Value
0
Remarks
The LocalPort property must be set before UDP is activated (Active is set to True). This instructs the class to bind to a specific port (or communication endpoint) in the local machine.
Setting it to 0 (default) enables the Transmission Control Protocol (TCP)/IP stack to choose a port at random. The chosen port will be shown by the LocalPort property after the connection is established.
LocalPort cannot be changed once the class is Active. Any attempt to set the LocalPort property when the class is Active will generate an error.
The LocalPort property is useful when trying to connect to services that require a trusted port on the client side.
Data Type
Integer
RemoteHost Property (IPWorksDTLS_DTLSClient Class)
This property includes the address of the remote host. Domain names are resolved to IP addresses.
Object Oriented Interface
public function getRemoteHost(); public function setRemoteHost($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 6 ); ipworksdtls_dtlsclient_set($res, 6, $value );
Default Value
''
Remarks
The RemoteHost property specifies the IP address (IP number in dotted internet format) or domain name of the remote host.
If RemoteHost is set to 255.255.255.255, the class broadcasts data on the local subnet.
If the RemoteHost property is set to a domain name, a DNS request is initiated, and upon successful termination of the request, the RemoteHost property is set to the corresponding address. If the search is not successful, an error is returned.
If UseConnection is set to True, the RemoteHost must be set before the class is activated (Active is set to True).
Data Type
String
RemotePort Property (IPWorksDTLS_DTLSClient Class)
This property specifies the User Datagram Protocol (UDP) port in the remote host.
Object Oriented Interface
public function getRemotePort(); public function setRemotePort($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 7 ); ipworksdtls_dtlsclient_set($res, 7, $value );
Default Value
0
Remarks
The RemotePort is the UDP port on the RemoteHost to send UDP datagrams to.
A valid port number (a value between 1 and 65535) is required.
If UseConnection is set to True, the RemotePort must be set before the class is activated (Active is set to True).
Data Type
Integer
SSLAcceptServerCertEffectiveDate Property (IPWorksDTLS_DTLSClient Class)
This is the date on which this certificate becomes valid.
Object Oriented Interface
public function getSSLAcceptServerCertEffectiveDate();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 8 );
Default Value
''
Remarks
This is the date on which this certificate becomes valid. Before this date, it is not valid. The following example illustrates the format of an encoded date:
23-Jan-2000 15:00:00.
This property is read-only.
Data Type
String
SSLAcceptServerCertEncoded Property (IPWorksDTLS_DTLSClient Class)
This is the certificate (PEM/base64 encoded).
Object Oriented Interface
public function getSSLAcceptServerCertEncoded(); public function setSSLAcceptServerCertEncoded($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 9 ); ipworksdtls_dtlsclient_set($res, 9, $value );
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.
This property is not available at design time.
Data Type
Binary String
SSLAcceptServerCertExpirationDate Property (IPWorksDTLS_DTLSClient Class)
This is the date the certificate expires.
Object Oriented Interface
public function getSSLAcceptServerCertExpirationDate();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 10 );
Default Value
''
Remarks
This is the date the certificate expires. After this date, the certificate will no longer be valid. The following example illustrates the format of an encoded date:
23-Jan-2001 15:00:00.
This property is read-only.
Data Type
String
SSLAcceptServerCertExtendedKeyUsage Property (IPWorksDTLS_DTLSClient Class)
This is a comma-delimited list of extended key usage identifiers.
Object Oriented Interface
public function getSSLAcceptServerCertExtendedKeyUsage();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 11 );
Default Value
''
Remarks
This is a comma-delimited list of extended key usage identifiers. These are the same as ASN.1 object identifiers (OIDs).
This property is read-only.
Data Type
String
SSLAcceptServerCertFingerprint Property (IPWorksDTLS_DTLSClient Class)
This is the hex-encoded, 16-byte MD5 fingerprint of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertFingerprint();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 12 );
Default Value
''
Remarks
This is the hex-encoded, 16-byte MD5 fingerprint of the certificate. This property is primarily used for keys which do not have a corresponding X.509 public certificate, such as PEM keys that only contain a private key. It is commonly used for SSH keys.
The following example illustrates the format: bc:2a:72:af:fe:58:17:43:7a:5f:ba:5a:7c:90:f7:02
This property is read-only.
Data Type
String
SSLAcceptServerCertFingerprintSHA1 Property (IPWorksDTLS_DTLSClient Class)
This is the hex-encoded, 20-byte SHA-1 fingerprint of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertFingerprintSHA1();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 13 );
Default Value
''
Remarks
This is the hex-encoded, 20-byte SHA-1 fingerprint of the certificate. This property is primarily used for keys which do not have a corresponding X.509 public certificate, such as PEM keys that only contain a private key. It is commonly used for SSH keys.
The following example illustrates the format: 30:7b:fa:38:65:83:ff:da:b4:4e:07:3f:17:b8:a4:ed:80:be:ff:84
This property is read-only.
Data Type
String
SSLAcceptServerCertFingerprintSHA256 Property (IPWorksDTLS_DTLSClient Class)
This is the hex-encoded, 32-byte SHA-256 fingerprint of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertFingerprintSHA256();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 14 );
Default Value
''
Remarks
This is the hex-encoded, 32-byte SHA-256 fingerprint of the certificate. This property is primarily used for keys which do not have a corresponding X.509 public certificate, such as PEM keys that only contain a private key. It is commonly used for SSH keys.
The following example illustrates the format: 6a:80:5c:33:a9:43:ea:b0:96:12:8a:64:96:30:ef:4a:8a:96:86:ce:f4:c7:be:10:24:8e:2b:60:9e:f3:59:53
This property is read-only.
Data Type
String
SSLAcceptServerCertIssuer Property (IPWorksDTLS_DTLSClient Class)
This is the issuer of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertIssuer();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 15 );
Default Value
''
Remarks
This is the issuer of the certificate. This property contains a string representation of the name of the issuing authority for the certificate.
This property is read-only.
Data Type
String
SSLAcceptServerCertPrivateKey Property (IPWorksDTLS_DTLSClient Class)
This is the private key of the certificate (if available).
Object Oriented Interface
public function getSSLAcceptServerCertPrivateKey();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 16 );
Default Value
''
Remarks
This is the private key of the certificate (if available). The key is provided as PEM/Base64-encoded data.
Note: The SSLAcceptServerCertPrivateKey may be available but not exportable. In this case, SSLAcceptServerCertPrivateKey returns an empty string.
This property is read-only.
Data Type
String
SSLAcceptServerCertPrivateKeyAvailable Property (IPWorksDTLS_DTLSClient Class)
This property shows whether a PrivateKey is available for the selected certificate.
Object Oriented Interface
public function getSSLAcceptServerCertPrivateKeyAvailable();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 17 );
Default Value
false
Remarks
This property shows whether a SSLAcceptServerCertPrivateKey is available for the selected certificate. If SSLAcceptServerCertPrivateKeyAvailable is True, the certificate may be used for authentication purposes (e.g., server authentication).
This property is read-only.
Data Type
Boolean
SSLAcceptServerCertPrivateKeyContainer Property (IPWorksDTLS_DTLSClient Class)
This is the name of the PrivateKey container for the certificate (if available).
Object Oriented Interface
public function getSSLAcceptServerCertPrivateKeyContainer();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 18 );
Default Value
''
Remarks
This is the name of the SSLAcceptServerCertPrivateKey container for the certificate (if available). This functionality is available only on Windows platforms.
This property is read-only.
Data Type
String
SSLAcceptServerCertPublicKey Property (IPWorksDTLS_DTLSClient Class)
This is the public key of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertPublicKey();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 19 );
Default Value
''
Remarks
This is the public key of the certificate. The key is provided as PEM/Base64-encoded data.
This property is read-only.
Data Type
String
SSLAcceptServerCertPublicKeyAlgorithm Property (IPWorksDTLS_DTLSClient Class)
This property contains the textual description of the certificate's public key algorithm.
Object Oriented Interface
public function getSSLAcceptServerCertPublicKeyAlgorithm();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 20 );
Default Value
''
Remarks
This property contains the textual description of the certificate's public key algorithm. The property contains either the name of the algorithm (e.g., "RSA" or "RSA_DH") or an object identifier (OID) string representing the algorithm.
This property is read-only.
Data Type
String
SSLAcceptServerCertPublicKeyLength Property (IPWorksDTLS_DTLSClient Class)
This is the length of the certificate's public key (in bits).
Object Oriented Interface
public function getSSLAcceptServerCertPublicKeyLength();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 21 );
Default Value
0
Remarks
This is the length of the certificate's public key (in bits). Common values are 512, 1024, and 2048.
This property is read-only.
Data Type
Integer
SSLAcceptServerCertSerialNumber Property (IPWorksDTLS_DTLSClient Class)
This is the serial number of the certificate encoded as a string.
Object Oriented Interface
public function getSSLAcceptServerCertSerialNumber();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 22 );
Default Value
''
Remarks
This is the serial number of the certificate encoded as a string. The number is encoded as a series of hexadecimal digits, with each pair representing a byte of the serial number.
This property is read-only.
Data Type
String
SSLAcceptServerCertSignatureAlgorithm Property (IPWorksDTLS_DTLSClient Class)
The property contains the text description of the certificate's signature algorithm.
Object Oriented Interface
public function getSSLAcceptServerCertSignatureAlgorithm();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 23 );
Default Value
''
Remarks
The property contains the text description of the certificate's signature algorithm. The property contains either the name of the algorithm (e.g., "RSA" or "RSA_MD5RSA") or an object identifier (OID) string representing the algorithm.
This property is read-only.
Data Type
String
SSLAcceptServerCertStore Property (IPWorksDTLS_DTLSClient Class)
This is the name of the certificate store for the client certificate.
Object Oriented Interface
public function getSSLAcceptServerCertStore(); public function setSSLAcceptServerCertStore($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 24 ); ipworksdtls_dtlsclient_set($res, 24, $value );
Default Value
'MY'
Remarks
This is the name of the certificate store for the client certificate.
The SSLAcceptServerCertStoreType property denotes the type of the certificate store specified by SSLAcceptServerCertStore. If the store is password protected, specify the password in SSLAcceptServerCertStorePassword.
SSLAcceptServerCertStore is used in conjunction with the SSLAcceptServerCertSubject property to specify client certificates. If SSLAcceptServerCertStore has a value, and SSLAcceptServerCertSubject or SSLAcceptServerCertEncoded is set, a search for a certificate is initiated. Please see the SSLAcceptServerCertSubject property for details.
Designations of certificate stores are platform dependent.
The following designations are 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).
Data Type
Binary String
SSLAcceptServerCertStorePassword Property (IPWorksDTLS_DTLSClient Class)
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
Object Oriented Interface
public function getSSLAcceptServerCertStorePassword(); public function setSSLAcceptServerCertStorePassword($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 25 ); ipworksdtls_dtlsclient_set($res, 25, $value );
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.
Data Type
String
SSLAcceptServerCertStoreType Property (IPWorksDTLS_DTLSClient Class)
This is the type of certificate store for this certificate.
Object Oriented Interface
public function getSSLAcceptServerCertStoreType(); public function setSSLAcceptServerCertStoreType($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 26 ); ipworksdtls_dtlsclient_set($res, 26, $value );
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). |
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. |
23 (cstPKCS11) | 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 cstPKCS11, 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 SSLAcceptServerCertStore and set SSLAcceptServerCertStorePassword to the PIN. Code Example. SSH Authentication with Security Key:
|
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. |
Data Type
Integer
SSLAcceptServerCertSubject Property (IPWorksDTLS_DTLSClient Class)
This is the subject of the certificate used for client authentication.
Object Oriented Interface
public function getSSLAcceptServerCertSubject(); public function setSSLAcceptServerCertSubject($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 27 ); ipworksdtls_dtlsclient_set($res, 27, $value );
Default Value
''
Remarks
This is the subject of the certificate used for client authentication.
This property must be set after all other certificate properties are set. When this property is set, a search is performed in the current certificate store to locate a certificate with a 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, or E=support@nsoftware.com". Common fields and their meanings are as follows:
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.
Data Type
String
SSLAcceptServerCertSubjectAltNames Property (IPWorksDTLS_DTLSClient Class)
This property contains comma-separated lists of alternative subject names for the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertSubjectAltNames();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 28 );
Default Value
''
Remarks
This property contains comma-separated lists of alternative subject names for the certificate.
This property is read-only.
Data Type
String
SSLAcceptServerCertThumbprintMD5 Property (IPWorksDTLS_DTLSClient Class)
This property contains the MD5 hash of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertThumbprintMD5();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 29 );
Default Value
''
Remarks
This property contains the MD5 hash of the certificate. It is primarily used for X.509 certificates. If the hash does not already exist, it is automatically computed.
This property is read-only.
Data Type
String
SSLAcceptServerCertThumbprintSHA1 Property (IPWorksDTLS_DTLSClient Class)
This property contains the SHA-1 hash of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertThumbprintSHA1();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 30 );
Default Value
''
Remarks
This property contains the SHA-1 hash of the certificate. It is primarily used for X.509 certificates. If the hash does not already exist, it is automatically computed.
This property is read-only.
Data Type
String
SSLAcceptServerCertThumbprintSHA256 Property (IPWorksDTLS_DTLSClient Class)
This property contains the SHA-256 hash of the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertThumbprintSHA256();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 31 );
Default Value
''
Remarks
This property contains the SHA-256 hash of the certificate. It is primarily used for X.509 certificates. If the hash does not already exist, it is automatically computed.
This property is read-only.
Data Type
String
SSLAcceptServerCertUsage Property (IPWorksDTLS_DTLSClient Class)
This property contains the text description of UsageFlags .
Object Oriented Interface
public function getSSLAcceptServerCertUsage();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 32 );
Default Value
''
Remarks
This property contains the text description of SSLAcceptServerCertUsageFlags.
This value will be of one or more of the following strings and will be separated by commas:
- Digital Signatures
- Key Authentication
- Key Encryption
- Data Encryption
- Key Agreement
- Certificate Signing
- Key Signing
If the provider is OpenSSL, the value is a comma-separated list of X.509 certificate extension names.
This property is read-only.
Data Type
String
SSLAcceptServerCertUsageFlags Property (IPWorksDTLS_DTLSClient Class)
This property contains the flags that show intended use for the certificate.
Object Oriented Interface
public function getSSLAcceptServerCertUsageFlags();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 33 );
Default Value
0
Remarks
This property contains the flags that show intended use for the certificate. The value of SSLAcceptServerCertUsageFlags is a combination of the following flags:
0x80 | Digital Signatures |
0x40 | Key Authentication (Non-Repudiation) |
0x20 | Key Encryption |
0x10 | Data Encryption |
0x08 | Key Agreement |
0x04 | Certificate Signing |
0x02 | Key Signing |
Please see the SSLAcceptServerCertUsage property for a text representation of SSLAcceptServerCertUsageFlags.
This functionality currently is not available when the provider is OpenSSL.
This property is read-only.
Data Type
Integer
SSLAcceptServerCertVersion Property (IPWorksDTLS_DTLSClient Class)
This property contains the certificate's version number.
Object Oriented Interface
public function getSSLAcceptServerCertVersion();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 34 );
Default Value
''
Remarks
This property contains the certificate's version number. The possible values are the strings "V1", "V2", and "V3".
This property is read-only.
Data Type
String
SSLCertEffectiveDate Property (IPWorksDTLS_DTLSClient Class)
This is the date on which this certificate becomes valid.
Object Oriented Interface
public function getSSLCertEffectiveDate();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 35 );
Default Value
''
Remarks
This is the date on which this certificate becomes valid. Before this date, it is not valid. The following example illustrates the format of an encoded date:
23-Jan-2000 15:00:00.
This property is read-only.
Data Type
String
SSLCertEncoded Property (IPWorksDTLS_DTLSClient Class)
This is the certificate (PEM/base64 encoded).
Object Oriented Interface
public function getSSLCertEncoded(); public function setSSLCertEncoded($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 36 ); ipworksdtls_dtlsclient_set($res, 36, $value );
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.
This property is not available at design time.
Data Type
Binary String
SSLCertExpirationDate Property (IPWorksDTLS_DTLSClient Class)
This is the date the certificate expires.
Object Oriented Interface
public function getSSLCertExpirationDate();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 37 );
Default Value
''
Remarks
This is the date the certificate expires. After this date, the certificate will no longer be valid. The following example illustrates the format of an encoded date:
23-Jan-2001 15:00:00.
This property is read-only.
Data Type
String
SSLCertExtendedKeyUsage Property (IPWorksDTLS_DTLSClient Class)
This is a comma-delimited list of extended key usage identifiers.
Object Oriented Interface
public function getSSLCertExtendedKeyUsage();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 38 );
Default Value
''
Remarks
This is a comma-delimited list of extended key usage identifiers. These are the same as ASN.1 object identifiers (OIDs).
This property is read-only.
Data Type
String
SSLCertFingerprint Property (IPWorksDTLS_DTLSClient Class)
This is the hex-encoded, 16-byte MD5 fingerprint of the certificate.
Object Oriented Interface
public function getSSLCertFingerprint();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 39 );
Default Value
''
Remarks
This is the hex-encoded, 16-byte MD5 fingerprint of the certificate. This property is primarily used for keys which do not have a corresponding X.509 public certificate, such as PEM keys that only contain a private key. It is commonly used for SSH keys.
The following example illustrates the format: bc:2a:72:af:fe:58:17:43:7a:5f:ba:5a:7c:90:f7:02
This property is read-only.
Data Type
String
SSLCertFingerprintSHA1 Property (IPWorksDTLS_DTLSClient Class)
This is the hex-encoded, 20-byte SHA-1 fingerprint of the certificate.
Object Oriented Interface
public function getSSLCertFingerprintSHA1();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 40 );
Default Value
''
Remarks
This is the hex-encoded, 20-byte SHA-1 fingerprint of the certificate. This property is primarily used for keys which do not have a corresponding X.509 public certificate, such as PEM keys that only contain a private key. It is commonly used for SSH keys.
The following example illustrates the format: 30:7b:fa:38:65:83:ff:da:b4:4e:07:3f:17:b8:a4:ed:80:be:ff:84
This property is read-only.
Data Type
String
SSLCertFingerprintSHA256 Property (IPWorksDTLS_DTLSClient Class)
This is the hex-encoded, 32-byte SHA-256 fingerprint of the certificate.
Object Oriented Interface
public function getSSLCertFingerprintSHA256();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 41 );
Default Value
''
Remarks
This is the hex-encoded, 32-byte SHA-256 fingerprint of the certificate. This property is primarily used for keys which do not have a corresponding X.509 public certificate, such as PEM keys that only contain a private key. It is commonly used for SSH keys.
The following example illustrates the format: 6a:80:5c:33:a9:43:ea:b0:96:12:8a:64:96:30:ef:4a:8a:96:86:ce:f4:c7:be:10:24:8e:2b:60:9e:f3:59:53
This property is read-only.
Data Type
String
SSLCertIssuer Property (IPWorksDTLS_DTLSClient Class)
This is the issuer of the certificate.
Object Oriented Interface
public function getSSLCertIssuer();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 42 );
Default Value
''
Remarks
This is the issuer of the certificate. This property contains a string representation of the name of the issuing authority for the certificate.
This property is read-only.
Data Type
String
SSLCertPrivateKey Property (IPWorksDTLS_DTLSClient Class)
This is the private key of the certificate (if available).
Object Oriented Interface
public function getSSLCertPrivateKey();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 43 );
Default Value
''
Remarks
This is the private key of the certificate (if available). The key is provided as PEM/Base64-encoded data.
Note: The SSLCertPrivateKey may be available but not exportable. In this case, SSLCertPrivateKey returns an empty string.
This property is read-only.
Data Type
String
SSLCertPrivateKeyAvailable Property (IPWorksDTLS_DTLSClient Class)
This property shows whether a PrivateKey is available for the selected certificate.
Object Oriented Interface
public function getSSLCertPrivateKeyAvailable();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 44 );
Default Value
false
Remarks
This property shows whether a SSLCertPrivateKey is available for the selected certificate. If SSLCertPrivateKeyAvailable is True, the certificate may be used for authentication purposes (e.g., server authentication).
This property is read-only.
Data Type
Boolean
SSLCertPrivateKeyContainer Property (IPWorksDTLS_DTLSClient Class)
This is the name of the PrivateKey container for the certificate (if available).
Object Oriented Interface
public function getSSLCertPrivateKeyContainer();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 45 );
Default Value
''
Remarks
This is the name of the SSLCertPrivateKey container for the certificate (if available). This functionality is available only on Windows platforms.
This property is read-only.
Data Type
String
SSLCertPublicKey Property (IPWorksDTLS_DTLSClient Class)
This is the public key of the certificate.
Object Oriented Interface
public function getSSLCertPublicKey();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 46 );
Default Value
''
Remarks
This is the public key of the certificate. The key is provided as PEM/Base64-encoded data.
This property is read-only.
Data Type
String
SSLCertPublicKeyAlgorithm Property (IPWorksDTLS_DTLSClient Class)
This property contains the textual description of the certificate's public key algorithm.
Object Oriented Interface
public function getSSLCertPublicKeyAlgorithm();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 47 );
Default Value
''
Remarks
This property contains the textual description of the certificate's public key algorithm. The property contains either the name of the algorithm (e.g., "RSA" or "RSA_DH") or an object identifier (OID) string representing the algorithm.
This property is read-only.
Data Type
String
SSLCertPublicKeyLength Property (IPWorksDTLS_DTLSClient Class)
This is the length of the certificate's public key (in bits).
Object Oriented Interface
public function getSSLCertPublicKeyLength();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 48 );
Default Value
0
Remarks
This is the length of the certificate's public key (in bits). Common values are 512, 1024, and 2048.
This property is read-only.
Data Type
Integer
SSLCertSerialNumber Property (IPWorksDTLS_DTLSClient Class)
This is the serial number of the certificate encoded as a string.
Object Oriented Interface
public function getSSLCertSerialNumber();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 49 );
Default Value
''
Remarks
This is the serial number of the certificate encoded as a string. The number is encoded as a series of hexadecimal digits, with each pair representing a byte of the serial number.
This property is read-only.
Data Type
String
SSLCertSignatureAlgorithm Property (IPWorksDTLS_DTLSClient Class)
The property contains the text description of the certificate's signature algorithm.
Object Oriented Interface
public function getSSLCertSignatureAlgorithm();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 50 );
Default Value
''
Remarks
The property contains the text description of the certificate's signature algorithm. The property contains either the name of the algorithm (e.g., "RSA" or "RSA_MD5RSA") or an object identifier (OID) string representing the algorithm.
This property is read-only.
Data Type
String
SSLCertStore Property (IPWorksDTLS_DTLSClient Class)
This is the name of the certificate store for the client certificate.
Object Oriented Interface
public function getSSLCertStore(); public function setSSLCertStore($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 51 ); ipworksdtls_dtlsclient_set($res, 51, $value );
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 designations are 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).
Data Type
Binary String
SSLCertStorePassword Property (IPWorksDTLS_DTLSClient Class)
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
Object Oriented Interface
public function getSSLCertStorePassword(); public function setSSLCertStorePassword($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 52 ); ipworksdtls_dtlsclient_set($res, 52, $value );
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.
Data Type
String
SSLCertStoreType Property (IPWorksDTLS_DTLSClient Class)
This is the type of certificate store for this certificate.
Object Oriented Interface
public function getSSLCertStoreType(); public function setSSLCertStoreType($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 53 ); ipworksdtls_dtlsclient_set($res, 53, $value );
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). |
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. |
23 (cstPKCS11) | 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 cstPKCS11, 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:
|
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. |
Data Type
Integer
SSLCertSubject Property (IPWorksDTLS_DTLSClient Class)
This is the subject of the certificate used for client authentication.
Object Oriented Interface
public function getSSLCertSubject(); public function setSSLCertSubject($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 54 ); ipworksdtls_dtlsclient_set($res, 54, $value );
Default Value
''
Remarks
This is the subject of the certificate used for client authentication.
This property must be set after all other certificate properties are set. When this property is set, a search is performed in the current certificate store to locate a certificate with a 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, or E=support@nsoftware.com". Common fields and their meanings are as follows:
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.
Data Type
String
SSLCertSubjectAltNames Property (IPWorksDTLS_DTLSClient Class)
This property contains comma-separated lists of alternative subject names for the certificate.
Object Oriented Interface
public function getSSLCertSubjectAltNames();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 55 );
Default Value
''
Remarks
This property contains comma-separated lists of alternative subject names for the certificate.
This property is read-only.
Data Type
String
SSLCertThumbprintMD5 Property (IPWorksDTLS_DTLSClient Class)
This property contains the MD5 hash of the certificate.
Object Oriented Interface
public function getSSLCertThumbprintMD5();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 56 );
Default Value
''
Remarks
This property contains the MD5 hash of the certificate. It is primarily used for X.509 certificates. If the hash does not already exist, it is automatically computed.
This property is read-only.
Data Type
String
SSLCertThumbprintSHA1 Property (IPWorksDTLS_DTLSClient Class)
This property contains the SHA-1 hash of the certificate.
Object Oriented Interface
public function getSSLCertThumbprintSHA1();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 57 );
Default Value
''
Remarks
This property contains the SHA-1 hash of the certificate. It is primarily used for X.509 certificates. If the hash does not already exist, it is automatically computed.
This property is read-only.
Data Type
String
SSLCertThumbprintSHA256 Property (IPWorksDTLS_DTLSClient Class)
This property contains the SHA-256 hash of the certificate.
Object Oriented Interface
public function getSSLCertThumbprintSHA256();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 58 );
Default Value
''
Remarks
This property contains the SHA-256 hash of the certificate. It is primarily used for X.509 certificates. If the hash does not already exist, it is automatically computed.
This property is read-only.
Data Type
String
SSLCertUsage Property (IPWorksDTLS_DTLSClient Class)
This property contains the text description of UsageFlags .
Object Oriented Interface
public function getSSLCertUsage();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 59 );
Default Value
''
Remarks
This property contains the text description of SSLCertUsageFlags.
This value will be of one or more of the following strings and will be separated by commas:
- Digital Signatures
- Key Authentication
- Key Encryption
- Data Encryption
- Key Agreement
- Certificate Signing
- Key Signing
If the provider is OpenSSL, the value is a comma-separated list of X.509 certificate extension names.
This property is read-only.
Data Type
String
SSLCertUsageFlags Property (IPWorksDTLS_DTLSClient Class)
This property contains the flags that show intended use for the certificate.
Object Oriented Interface
public function getSSLCertUsageFlags();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 60 );
Default Value
0
Remarks
This property contains the flags that show intended use for the certificate. The value of SSLCertUsageFlags is a combination of the following flags:
0x80 | Digital Signatures |
0x40 | Key Authentication (Non-Repudiation) |
0x20 | Key Encryption |
0x10 | Data Encryption |
0x08 | Key Agreement |
0x04 | Certificate Signing |
0x02 | Key Signing |
Please see the SSLCertUsage property for a text representation of SSLCertUsageFlags.
This functionality currently is not available when the provider is OpenSSL.
This property is read-only.
Data Type
Integer
SSLCertVersion Property (IPWorksDTLS_DTLSClient Class)
This property contains the certificate's version number.
Object Oriented Interface
public function getSSLCertVersion();
Procedural Interface
ipworksdtls_dtlsclient_get($res, 61 );
Default Value
''
Remarks
This property contains the certificate's version number. The possible values are the strings "V1", "V2", and "V3".
This property is read-only.
Data Type
String
Timeout Property (IPWorksDTLS_DTLSClient Class)
This property specifies a timeout when connecting to a server.
Object Oriented Interface
public function getTimeout(); public function setTimeout($value);
Procedural Interface
ipworksdtls_dtlsclient_get($res, 62 ); ipworksdtls_dtlsclient_set($res, 62, $value );
Default Value
60
Remarks
This property specifies a timeout when connecting to a server. When calling Connect, if the connection is not established within Timeout seconds, an error is thrown.
Data Type
Integer
Config Method (IPWorksDTLS_DTLSClient Class)
This method sets or retrieves a configuration setting.
Object Oriented Interface
public function doConfig($configurationstring);
Procedural Interface
ipworksdtls_dtlsclient_do_config($res, $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.
Connect Method (IPWorksDTLS_DTLSClient Class)
This method connects to a remote host.
Object Oriented Interface
public function doConnect();
Procedural Interface
ipworksdtls_dtlsclient_do_connect($res);
Remarks
This method connects to the remote host specified by RemoteHost and RemotePort.
For instance:
component.RemoteHost = "MyHostNameOrIP";
component.RemotePort = 7777;
component.Connect();
Disconnect Method (IPWorksDTLS_DTLSClient Class)
This method disconnects from the remote host.
Object Oriented Interface
public function doDisconnect();
Procedural Interface
ipworksdtls_dtlsclient_do_disconnect($res);
Remarks
This method disconnects from the remote host. Calling this method is equivalent to setting the Connected property to False.
DoEvents Method (IPWorksDTLS_DTLSClient Class)
This method processes events from the internal message queue.
Object Oriented Interface
public function doEvents();
Procedural Interface
ipworksdtls_dtlsclient_do_doevents($res);
Remarks
When DoEvents is called, the class processes any available events. If no events are available, it waits for a preset period of time, and then returns.
PauseData Method (IPWorksDTLS_DTLSClient Class)
This method pauses data reception.
Object Oriented Interface
public function doPauseData();
Procedural Interface
ipworksdtls_dtlsclient_do_pausedata($res);
Remarks
This method pauses data reception when called. While data reception is paused, the DataIn event will not fire. Call ProcessData to reenable data reception.
ProcessData Method (IPWorksDTLS_DTLSClient Class)
This method reenables data reception after a call to PauseData .
Object Oriented Interface
public function doProcessData();
Procedural Interface
ipworksdtls_dtlsclient_do_processdata($res);
Remarks
This method reenables data reception after a previous call to PauseData. When PauseData is called, the DataIn event will not fire. To reenable data reception and allow DataIn to fire, call this method.
Note: This method is used only after previously calling PauseData. It does not need to be called to process incoming data by default.
Reset Method (IPWorksDTLS_DTLSClient Class)
This method will reset the class.
Object Oriented Interface
public function doReset();
Procedural Interface
ipworksdtls_dtlsclient_do_reset($res);
Remarks
This method will reset the class's properties to their default values.
SendBytes Method (IPWorksDTLS_DTLSClient Class)
This method sends binary data to the remote host.
Object Oriented Interface
public function doSendBytes($data);
Procedural Interface
ipworksdtls_dtlsclient_do_sendbytes($res, $data);
Remarks
This method sends the specified binary data to the remote host. For example:
byte[] dataToSend = new byte[] { 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33 };
dtlsclient.SendBytes(dataToSend);
To send text, use the SendText method instead.
SendText Method (IPWorksDTLS_DTLSClient Class)
This method sends text to the remote host.
Object Oriented Interface
public function doSendText($text);
Procedural Interface
ipworksdtls_dtlsclient_do_sendtext($res, $text);
Remarks
This method sends the specified text to the remote host. For example:
dtlsclient.onSSLServerAuthentication += (o, e) => {
e.Accept = true;
};
dtlsclient.RemotePort = 8765;
dtlsclient.RemoteHost = "HostNameOrIPAddress";
dtlsclient.Connect();
dtlsclient.SendText("Hello!");
To send binary data, use the SendBytes method instead.
Connected Event (IPWorksDTLS_DTLSClient Class)
This event is fired immediately after a connection completes (or fails).
Object Oriented Interface
public function fireConnected($param);
Procedural Interface
ipworksdtls_dtlsclient_register_callback($res, 1, array($this, 'fireConnected'));
Parameter List
'address'
'port'
'statuscode'
'description'
Remarks
This event is fired immediately after a connection completes (or fails).
If the connection is made normally, StatusCode is 0 and Description is "OK".
If the connection is broken for any other reason, StatusCode will be non-zero, and the Description parameter will contain a description of this code.
DataIn Event (IPWorksDTLS_DTLSClient Class)
This event is fired when data are received.
Object Oriented Interface
public function fireDataIn($param);
Procedural Interface
ipworksdtls_dtlsclient_register_callback($res, 2, array($this, 'fireDataIn'));
Parameter List
'datagram'
'sourceaddress'
'sourceport'
Remarks
The DataIn event is fired every time a new datagram is received.
Datagram contains the packet as sent by the remote host.
SourceAddress contains the IP number (Internet address) of the remote host, and SourcePort contains the port from which the packet originated.
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.
Disconnected Event (IPWorksDTLS_DTLSClient Class)
This event is fired when a connection is closed.
Object Oriented Interface
public function fireDisconnected($param);
Procedural Interface
ipworksdtls_dtlsclient_register_callback($res, 3, array($this, 'fireDisconnected'));
Parameter List
'address'
'port'
'statuscode'
'description'
Remarks
This event is fired when a connection is closed.
If the connection is broken normally, StatusCode is 0 and Description is "OK".
If the connection is broken for any other reason, StatusCode will be non-zero, and the Description parameter will contain a description of this code.
Error Event (IPWorksDTLS_DTLSClient Class)
This event is fired for information about errors during data delivery.
Object Oriented Interface
public function fireError($param);
Procedural Interface
ipworksdtls_dtlsclient_register_callback($res, 4, array($this, 'fireError'));
Parameter List
'errorcode'
'description'
Remarks
The Error event is fired in case of exceptional conditions during message processing. Normally the class fails with an error.
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 (IPWorksDTLS_DTLSClient Class)
This event fires once for each log message.
Object Oriented Interface
public function fireLog($param);
Procedural Interface
ipworksdtls_dtlsclient_register_callback($res, 5, array($this, 'fireLog'));
Parameter List
'loglevel'
'message'
'logtype'
Remarks
This event fires once for each log message generated by the class. The verbosity is controlled by the LogLevel setting.
LogLevel indicates the level of message. Possible values are as follows:
0 (None) | No events are logged. |
1 (Info - default) | Informational events are logged. |
2 (Verbose) | Detailed data are logged. |
3 (Debug) | Debug data are logged. |
The value 1 (Info) logs basic information, including users logging in and out, files transferred, and directories listed.
The value 2 (Verbose) includes logs from the PITrail event as well as basic information about data transfer channels.
The value 3 (Debug) logs additional debug information, such as extended socket connection and data transfer information.
Message is the log entry.
LogType identifies the type of log entry. Possible values are as follows:
- "Info"
- "Error"
- "Verbose"
- "Debug"
SSLServerAuthentication Event (IPWorksDTLS_DTLSClient Class)
This event is fired after the server presents its certificate to the client.
Object Oriented Interface
public function fireSSLServerAuthentication($param);
Procedural Interface
ipworksdtls_dtlsclient_register_callback($res, 6, array($this, 'fireSSLServerAuthentication'));
Parameter List
'sourceaddress'
'sourceport'
'certencoded'
'certsubject'
'certissuer'
'status'
'accept'
Remarks
This event is fired after the server presents its certificate to the client.
During this event, the client can decide whether or not to continue with the connection process. 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 or not to continue.
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 (IPWorksDTLS_DTLSClient Class)
This event shows the progress of the secure connection.
Object Oriented Interface
public function fireSSLStatus($param);
Procedural Interface
ipworksdtls_dtlsclient_register_callback($res, 7, array($this, 'fireSSLStatus'));
Parameter List
'message'
Remarks
The event is fired for informational and logging purposes only. This event tracks the progress of the connection.
Config Settings (DTLSClient Class)
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.DTLSClient Config Settings
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 EnabledCipherSuites is set to any other value, only the specified cipher suites will be considered.
Multiple cipher suites are separated by semicolons. For example:
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_ECDH_RSA_WITH_AES_128_CBC_SHA");
Possible cipher suites include the following:
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
- TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_128_CBC_SHA256
- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
- TLS_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
- TLS_DHE_RSA_WITH_AES_256_CBC_SHA
- TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
- TLS_DHE_DSS_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_RSA_WITH_AES_128_CBC_SHA
- TLS_DHE_DSS_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
- TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
- TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
- TLS_RSA_WITH_3DES_EDE_CBC_SHA
- TLS_RSA_WITH_DES_CBC_SHA
- TLS_DHE_RSA_WITH_DES_CBC_SHA
- TLS_DHE_DSS_WITH_DES_CBC_SHA
- TLS_RSA_WITH_RC4_128_MD5
- TLS_RSA_WITH_RC4_128_SHA
The class will send a HeartbeatRequest message to remote host after a specified period of inactivity, defined by KeepAliveTime. This value specifies the interval at which the class sends successive HeartbeatRequest messages, assuming no response is received from the remote host (HeartbeatResponse). By default, this value is 2 seconds and will only apply if KeepAlive is true.
1 | peer_allowed_to_send (default) |
2 | peer_not_allowed_to_send |
When set to 2 (peer_not_allowed_to_send), the class will only be capable of sending HeartbeatRequests.
Note, if KeepAlive is false, Heartbeat functionality will be disabled. The class will not be capable of sending or handling HeartbeatRequest messages.
If the connection is inactive for the specified time, the class will send a HeartbeatRequest message to the remote host. If no response is received, the class will continue sending Heartbeats every KeepAliveInterval seconds. By default, this value is 60 seconds and will only apply if KeepAlive is true.
0 (None) | No events are logged. |
1 (Info - default) | Informational events are logged. |
2 (Verbose) | Detailed data are logged. |
3 (Debug) | Debug data are logged. |
When enabled, SSL packet logs are output using the SSLStatus event, which will fire each time a SSL packet is sent or received.
UDP Config Settings
The default value for this setting is False.
Note: This setting is available only in Windows.
The default value is false.
Note: This setting is available only in Windows.
In multihomed 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 multihomed hosts (machines with more than one IP interface).
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 configuration setting is useful when trying to connect to services that require a trusted port on the client side. An example is the remote shell (rsh) service in UNIX systems.
Note: This setting uses the qWAVE API and is available only on Windows 7, Windows Server 2008 R2, and later.
Note: This setting uses the qWAVE API and is available only on Windows Vista and Windows Server 2008 or above.
Note: QOSTrafficType must be set before setting Active to True.
The default value for this setting is False.
Note: This setting is available only in Windows and requires that the winpcap library be installed (or npcap with winpcap compatibility).
Note: This setting is available only in Windows and requires that the winpcap library be installed (or npcap with winpcap compatibility).
The default value for this setting is False.
Socket Config Settings
Note: This option is not valid for User Datagram Protocol (UDP) ports.
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.
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
The following is a list of valid code page identifiers:
Identifier | Name |
037 | IBM EBCDIC - U.S./Canada |
437 | OEM - United States |
500 | IBM EBCDIC - International |
708 | Arabic - ASMO 708 |
709 | Arabic - ASMO 449+, BCON V4 |
710 | Arabic - Transparent Arabic |
720 | Arabic - Transparent ASMO |
737 | OEM - Greek (formerly 437G) |
775 | OEM - Baltic |
850 | OEM - Multilingual Latin I |
852 | OEM - Latin II |
855 | OEM - Cyrillic (primarily Russian) |
857 | OEM - Turkish |
858 | OEM - Multilingual Latin I + Euro symbol |
860 | OEM - Portuguese |
861 | OEM - Icelandic |
862 | OEM - Hebrew |
863 | OEM - Canadian-French |
864 | OEM - Arabic |
865 | OEM - Nordic |
866 | OEM - Russian |
869 | OEM - Modern Greek |
870 | IBM EBCDIC - Multilingual/ROECE (Latin-2) |
874 | ANSI/OEM - Thai (same as 28605, ISO 8859-15) |
875 | IBM EBCDIC - Modern Greek |
932 | ANSI/OEM - Japanese, Shift-JIS |
936 | ANSI/OEM - Simplified Chinese (PRC, Singapore) |
949 | ANSI/OEM - Korean (Unified Hangul Code) |
950 | ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC) |
1026 | IBM EBCDIC - Turkish (Latin-5) |
1047 | IBM EBCDIC - Latin 1/Open System |
1140 | IBM EBCDIC - U.S./Canada (037 + Euro symbol) |
1141 | IBM EBCDIC - Germany (20273 + Euro symbol) |
1142 | IBM EBCDIC - Denmark/Norway (20277 + Euro symbol) |
1143 | IBM EBCDIC - Finland/Sweden (20278 + Euro symbol) |
1144 | IBM EBCDIC - Italy (20280 + Euro symbol) |
1145 | IBM EBCDIC - Latin America/Spain (20284 + Euro symbol) |
1146 | IBM EBCDIC - United Kingdom (20285 + Euro symbol) |
1147 | IBM EBCDIC - France (20297 + Euro symbol) |
1148 | IBM EBCDIC - International (500 + Euro symbol) |
1149 | IBM EBCDIC - Icelandic (20871 + Euro symbol) |
1200 | Unicode UCS-2 Little-Endian (BMP of ISO 10646) |
1201 | Unicode UCS-2 Big-Endian |
1250 | ANSI - Central European |
1251 | ANSI - Cyrillic |
1252 | ANSI - Latin I |
1253 | ANSI - Greek |
1254 | ANSI - Turkish |
1255 | ANSI - Hebrew |
1256 | ANSI - Arabic |
1257 | ANSI - Baltic |
1258 | ANSI/OEM - Vietnamese |
1361 | Korean (Johab) |
10000 | MAC - Roman |
10001 | MAC - Japanese |
10002 | MAC - Traditional Chinese (Big5) |
10003 | MAC - Korean |
10004 | MAC - Arabic |
10005 | MAC - Hebrew |
10006 | MAC - Greek I |
10007 | MAC - Cyrillic |
10008 | MAC - Simplified Chinese (GB 2312) |
10010 | MAC - Romania |
10017 | MAC - Ukraine |
10021 | MAC - Thai |
10029 | MAC - Latin II |
10079 | MAC - Icelandic |
10081 | MAC - Turkish |
10082 | MAC - Croatia |
12000 | Unicode UCS-4 Little-Endian |
12001 | Unicode UCS-4 Big-Endian |
20000 | CNS - Taiwan |
20001 | TCA - Taiwan |
20002 | Eten - Taiwan |
20003 | IBM5550 - Taiwan |
20004 | TeleText - Taiwan |
20005 | Wang - Taiwan |
20105 | IA5 IRV International Alphabet No. 5 (7-bit) |
20106 | IA5 German (7-bit) |
20107 | IA5 Swedish (7-bit) |
20108 | IA5 Norwegian (7-bit) |
20127 | US-ASCII (7-bit) |
20261 | T.61 |
20269 | ISO 6937 Non-Spacing Accent |
20273 | IBM EBCDIC - Germany |
20277 | IBM EBCDIC - Denmark/Norway |
20278 | IBM EBCDIC - Finland/Sweden |
20280 | IBM EBCDIC - Italy |
20284 | IBM EBCDIC - Latin America/Spain |
20285 | IBM EBCDIC - United Kingdom |
20290 | IBM EBCDIC - Japanese Katakana Extended |
20297 | IBM EBCDIC - France |
20420 | IBM EBCDIC - Arabic |
20423 | IBM EBCDIC - Greek |
20424 | IBM EBCDIC - Hebrew |
20833 | IBM EBCDIC - Korean Extended |
20838 | IBM EBCDIC - Thai |
20866 | Russian - KOI8-R |
20871 | IBM EBCDIC - Icelandic |
20880 | IBM EBCDIC - Cyrillic (Russian) |
20905 | IBM EBCDIC - Turkish |
20924 | IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol) |
20932 | JIS X 0208-1990 & 0121-1990 |
20936 | Simplified Chinese (GB2312) |
21025 | IBM EBCDIC - Cyrillic (Serbian, Bulgarian) |
21027 | Extended Alpha Lowercase |
21866 | Ukrainian (KOI8-U) |
28591 | ISO 8859-1 Latin I |
28592 | ISO 8859-2 Central Europe |
28593 | ISO 8859-3 Latin 3 |
28594 | ISO 8859-4 Baltic |
28595 | ISO 8859-5 Cyrillic |
28596 | ISO 8859-6 Arabic |
28597 | ISO 8859-7 Greek |
28598 | ISO 8859-8 Hebrew |
28599 | ISO 8859-9 Latin 5 |
28605 | ISO 8859-15 Latin 9 |
29001 | Europa 3 |
38598 | ISO 8859-8 Hebrew |
50220 | ISO 2022 Japanese with no halfwidth Katakana |
50221 | ISO 2022 Japanese with halfwidth Katakana |
50222 | ISO 2022 Japanese JIS X 0201-1989 |
50225 | ISO 2022 Korean |
50227 | ISO 2022 Simplified Chinese |
50229 | ISO 2022 Traditional Chinese |
50930 | Japanese (Katakana) Extended |
50931 | US/Canada and Japanese |
50933 | Korean Extended and Korean |
50935 | Simplified Chinese Extended and Simplified Chinese |
50936 | Simplified Chinese |
50937 | US/Canada and Traditional Chinese |
50939 | Japanese (Latin) Extended and Japanese |
51932 | EUC - Japanese |
51936 | EUC - Simplified Chinese |
51949 | EUC - Korean |
51950 | EUC - Traditional Chinese |
52936 | HZ-GB2312 Simplified Chinese |
54936 | Windows XP: GB18030 Simplified Chinese (4 Byte) |
57002 | ISCII Devanagari |
57003 | ISCII Bengali |
57004 | ISCII Tamil |
57005 | ISCII Telugu |
57006 | ISCII Assamese |
57007 | ISCII Oriya |
57008 | ISCII Kannada |
57009 | ISCII Malayalam |
57010 | ISCII Gujarati |
57011 | ISCII Punjabi |
65000 | Unicode UTF-7 |
65001 | Unicode UTF-8 |
Identifier | Name |
1 | ASCII |
2 | NEXTSTEP |
3 | JapaneseEUC |
4 | UTF8 |
5 | ISOLatin1 |
6 | Symbol |
7 | NonLossyASCII |
8 | ShiftJIS |
9 | ISOLatin2 |
10 | Unicode |
11 | WindowsCP1251 |
12 | WindowsCP1252 |
13 | WindowsCP1253 |
14 | WindowsCP1254 |
15 | WindowsCP1250 |
21 | ISO2022JP |
30 | MacOSRoman |
10 | UTF16String |
0x90000100 | UTF16BigEndian |
0x94000100 | UTF16LittleEndian |
0x8c000100 | UTF32String |
0x98000100 | UTF32BigEndian |
0x9c000100 | UTF32LittleEndian |
65536 | Proprietary |
- Product: The product the license is for.
- Product Key: The key the license was generated from.
- License Source: Where the license was found (e.g., RuntimeLicense, License File).
- License Type: The type of license installed (e.g., Royalty Free, Single Server).
- Last Valid Build: The last valid build number for which the license will work.
This setting only works on these classes: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.
Setting this configuration setting to true tells the class to use the internal implementation instead of using the system security libraries.
On Windows, this setting is set to false by default. On Linux/macOS, this setting is set to true by default.
To use the system security libraries for Linux, Open Secure Sockets Layer (OpenSSL) support must be enabled. For more information on how to enable OpenSSL, please refer to the OpenSSL Notes section.
Trappable Errors (DTLSClient Class)
DTLSClient Errors
400 | Invalid datagram received. See the error description for further details. |
401 | Invalid DTLS flow. See the error description for further details. |
402 | Not supported. See the error description for further details. |
403 | DTLS handshake error. See the error description for further details. |
404 | Invalid certificate provided. See the error description for further details. |
405 | Fatal alert. See the error description for further details. |