RADIUS Class
Properties Methods Events Config Settings Errors
The RADIUS class provides an easy way to authenticate users.
Syntax
class ipworksauth.RADIUS
Remarks
The RADIUS component implements support for Remote Authentication Dial In User Service (RADIUS).
Authentication
The class can be used to authenticate users with a RADIUS server. To begin set the following properties:
To authenticate the user call authenticate. If the method returns without error the user was successfully authenticated. The Attr* properties will hold information about the attributes in the response.The auth_mechanism property may be set to specify the authentication mechanism used.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
attr_count | The number of records in the Attr arrays. |
attr_type | The type of the attribute. |
attr_name | A text description of the attribute type. |
attr_value | The attribute value. |
auth_mechanism | The authentication mechanism to be used when connecting to the RADIUS server. |
eap_anonymous_identity | The identity to use when using PEAP or EAP-TLS. |
local_host | The name of the local host or user-assigned IP interface through which connections are initiated or accepted. |
local_port | The UDP port in the local host where UDP binds. |
password | The user's password. |
remote_host | The address of the remote host. Domain names are resolved to IP addresses. |
remote_port | The port for the RADIUS server (default is 1812). |
shared_secret | The RADIUS shared secret. |
ssl_cert_encoded | This is the certificate (PEM/base64 encoded). |
ssl_cert_store | This is the name of the certificate store for the client certificate. |
ssl_cert_store_password | If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store. |
ssl_cert_store_type | This is the type of certificate store for this certificate. |
ssl_cert_subject | This is the subject of the certificate used for client authentication. |
timeout | A timeout for the class. |
user | The name of the user to authenticate. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
authenticate | Authenticates the user. |
config | Sets or retrieves a configuration setting. |
do_events | Processes events from the internal message queue. |
interrupt | Interrupt the current method. |
reset | Resets the class properties to their default values. |
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.
on_attribute | Fires for each attribute that is received. |
on_error | Information about errors during data delivery. |
on_log | Fires with log information during processing. |
on_ssl_server_authentication | Fired after the server presents its certificate to the client. |
on_ssl_status | 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.
SendMessageAuthenticator | Whether to send the Message-Authenticator attribute. |
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. |
UseFIPSCompliantAPI | Tells the class whether or not to use FIPS certified APIs. |
UseInternalSecurityAPI | Tells the class whether or not to use the system security libraries or an internal implementation. |
attr_count Property
The number of records in the Attr arrays.
Syntax
def get_attr_count() -> int: ... def set_attr_count(value: int) -> None: ...
attr_count = property(get_attr_count, set_attr_count)
Default Value
0
Remarks
This property controls the size of the following arrays:
The array indices start at 0 and end at attr_count - 1.attr_type Property
The type of the attribute.
Syntax
def get_attr_type(attr_index: int) -> int: ... def set_attr_type(attr_index: int, value: int) -> None: ...
Default Value
0
Remarks
The type of the attribute.
This property identifies the type of the attribute. Common values are:
AttributeType | Meaning |
1 | User-Name |
2 | User-Password |
3 | CHAP-Password |
4 | NAS-IP-Address |
5 | NAS-Port |
6 | Service-Type |
7 | Framed-Protocol |
8 | Framed-IP-Address |
9 | Framed-IP-Netmask |
10 | Framed-Routing |
11 | Filter-Id |
12 | Framed-MTU |
13 | Framed-Compression |
14 | Login-IP-Host |
15 | Login-Service |
16 | Login-TCP-Port |
17 | (unassigned) |
18 | Reply-Message |
19 | Callback-Number |
20 | Callback-Id |
21 | (unassigned) |
22 | Framed-Route |
23 | Framed-IPX-Network |
24 | State |
25 | Class |
26 | Vendor-Specific |
27 | Session-Timeout |
28 | Idle-Timeout |
29 | Termination-Action |
30 | Called-Station-Id |
31 | Calling-Station-Id |
32 | NAS-Identifier |
33 | Proxy-State |
34 | Login-LAT-Service |
35 | Login-LAT-Node |
36 | Login-LAT-Group |
37 | Framed-AppleTalk-Link |
38 | Framed-AppleTalk-Network |
39 | Framed-AppleTalk-Zone |
40-59 | Reserved for accounting |
60 | CHAP-Challenge |
61 | NAS-Port-Type |
62 | Port-Limit |
63 | Login-LAT-Port |
The attr_index parameter specifies the index of the item in the array. The size of the array is controlled by the attr_count property.
attr_name Property
A text description of the attribute type.
Syntax
def get_attr_name(attr_index: int) -> str: ...
Default Value
""
Remarks
A text description of the attribute type.
This property holds a text description of the attribute_type.
The attr_index parameter specifies the index of the item in the array. The size of the array is controlled by the attr_count property.
This property is read-only.
attr_value Property
The attribute value.
Syntax
def get_attr_value(attr_index: int) -> bytes: ... def set_attr_value(attr_index: int, value: bytes) -> None: ...
Default Value
""
Remarks
The attribute value.
The attr_index parameter specifies the index of the item in the array. The size of the array is controlled by the attr_count property.
auth_mechanism Property
The authentication mechanism to be used when connecting to the RADIUS server.
Syntax
def get_auth_mechanism() -> int: ... def set_auth_mechanism(value: int) -> None: ...
auth_mechanism = property(get_auth_mechanism, set_auth_mechanism)
Default Value
0
Remarks
This property defines the authentication mechanism used when connecting to the RADIUS server. Possible values are:
0 (ramMSCHAPv2 - default) | Microsoft Challenge Authentication Protocol v2 |
1 (ramPAP) | Password Authentication Protocol |
2 (ramPEAPv0) | Protected Extensible Authentication Protocol with MSCHAPv2 inner authentication |
3 (ramEAPTLS) | Extensible Authentication Protocol with TLS |
When set to ramEAPTLS the SSLCert* properties must be set to the client certificate used to authenticate to the server.
eap_anonymous_identity Property
The identity to use when using PEAP or EAP-TLS.
Syntax
def get_eap_anonymous_identity() -> str: ... def set_eap_anonymous_identity(value: str) -> None: ...
eap_anonymous_identity = property(get_eap_anonymous_identity, set_eap_anonymous_identity)
Default Value
"anonymous"
Remarks
This property specifies the initital identity to use when establishing a secure connection using PEAP. When auth_mechanism is set to amPEAPv0 or emEAPTLS the connection begins in plaintext. This property specifies the user name (if any) that is sent in the initial plaintext request. This allows the true identity of the user to be hidden.
If set, the value will be sent in the plaintext connection request. If not set (empty string) the user will be sent. Authentication servers may make use of a value that includes the domain to which the user will authenticate, such as anonymous@example.com. In that case the user's identity is still hidden, however the authentication server will have knowledge of the domain for the user which it may make use of.
Once a secure connection is established the user's true identity is sent to the authentication server over the TLS encrypted connection. This property specifies only the identity sent in the initial plaintext request.
The default value is anonymous.
This setting is only applicable when auth_mechanism is set to amPEAPv0 or amEAPTLS.
local_host Property
The name of the local host or user-assigned IP interface through which connections are initiated or accepted.
Syntax
def get_local_host() -> str: ... def set_local_host(value: str) -> None: ...
local_host = property(get_local_host, set_local_host)
Default Value
""
Remarks
The local_host 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 local_host 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: local_host is not persistent. You must always set it in code, and never in the property window.
local_port Property
The UDP port in the local host where UDP binds.
Syntax
def get_local_port() -> int: ... def set_local_port(value: int) -> None: ...
local_port = property(get_local_port, set_local_port)
Default Value
0
Remarks
The local_port property must be set before UDP is activated (active is set to True). It instructs the class to bind to a specific port (or communication endpoint) in the local machine.
Setting it to 0 (default) enables the TCP/IP stack to choose a port at random. The chosen port will be shown by the local_port property after the connection is established.
local_port cannot be changed once the class is active. Any attempt to set the local_port property when the class is active will generate an error.
The local_port property is useful when trying to connect to services that require a trusted port in the client side.
password Property
The user's password.
Syntax
def get_password() -> str: ... def set_password(value: str) -> None: ...
password = property(get_password, set_password)
Default Value
""
Remarks
This property specifies the password for the user. This must be set before calling authenticate.
remote_host Property
The address of the remote host. Domain names are resolved to IP addresses.
Syntax
def get_remote_host() -> str: ... def set_remote_host(value: str) -> None: ...
remote_host = property(get_remote_host, set_remote_host)
Default Value
""
Remarks
The remote_host property specifies the IP address (IP number in dotted internet format) or Domain Name of the remote host.
If remote_host is set to 255.255.255.255, the class broadcasts data on the local subnet.
If the remote_host property is set to a Domain Name, a DNS request is initiated and upon successful termination of the request, the remote_host property is set to the corresponding address. If the search is not successful, an error is returned.
If UseConnection is set to True, the remote_host must be set before the class is activated (active is set to True).
remote_port Property
The port for the RADIUS server (default is 1812).
Syntax
def get_remote_port() -> int: ... def set_remote_port(value: int) -> None: ...
remote_port = property(get_remote_port, set_remote_port)
Default Value
1812
Remarks
The remote_port is the UDP port to which requests will be made. The default value is 1812. Port 1645 is also commonly used.
shared_secret Property
The RADIUS shared secret.
Syntax
def get_shared_secret() -> bytes: ... def set_shared_secret(value: bytes) -> None: ...
shared_secret = property(get_shared_secret, set_shared_secret)
Default Value
""
Remarks
This property holds the shared secret to use when communicating with the RADIUS server.
ssl_cert_encoded Property
This is the certificate (PEM/base64 encoded).
Syntax
def get_ssl_cert_encoded() -> bytes: ... def set_ssl_cert_encoded(value: bytes) -> None: ...
ssl_cert_encoded = property(get_ssl_cert_encoded, set_ssl_cert_encoded)
Default Value
""
Remarks
This is the certificate (PEM/Base64 encoded). This property is used to assign a specific certificate. The ssl_cert_store and ssl_cert_subject properties also may be used to specify a certificate.
When ssl_cert_encoded is set, a search is initiated in the current ssl_cert_store for the private key of the certificate. If the key is found, ssl_cert_subject is updated to reflect the full subject of the selected certificate; otherwise, ssl_cert_subject is set to an empty string.
ssl_cert_store Property
This is the name of the certificate store for the client certificate.
Syntax
def get_ssl_cert_store() -> bytes: ... def set_ssl_cert_store(value: bytes) -> None: ...
ssl_cert_store = property(get_ssl_cert_store, set_ssl_cert_store)
Default Value
"MY"
Remarks
This is the name of the certificate store for the client certificate.
The ssl_cert_store_type property denotes the type of the certificate store specified by ssl_cert_store. If the store is password protected, specify the password in ssl_cert_store_password.
ssl_cert_store is used in conjunction with the ssl_cert_subject property to specify client certificates. If ssl_cert_store has a value, and ssl_cert_subject or ssl_cert_encoded is set, a search for a certificate is initiated. Please see the ssl_cert_subject 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., PKCS#12 certificate store).
ssl_cert_store_password Property
If the type of certificate store requires a password, this property is used to specify the password needed to open the certificate store.
Syntax
def get_ssl_cert_store_password() -> str: ... def set_ssl_cert_store_password(value: str) -> None: ...
ssl_cert_store_password = property(get_ssl_cert_store_password, set_ssl_cert_store_password)
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.
ssl_cert_store_type Property
This is the type of certificate store for this certificate.
Syntax
def get_ssl_cert_store_type() -> int: ... def set_ssl_cert_store_type(value: int) -> None: ...
ssl_cert_store_type = property(get_ssl_cert_store_type, set_ssl_cert_store_type)
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 (PKCS#12) file containing certificates. |
3 (cstPFXBlob) | The certificate store is a string (binary or Base64-encoded) representing a certificate store in PFX (PKCS#12) 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 PKCS#7 file containing certificates. |
12 (cstP7BBlob) | The certificate store is a string (binary) representing a certificate store in PKCS#7 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 PKCS#11 interface.
To use a security key, the necessary data must first be collected using the CertMgr class. The list_store_certificates method may be called after setting cert_store_type to cstPKCS11, cert_store_password to the PIN, and cert_store to the full path of the PKCS#11 DLL. The certificate information returned in the on_cert_list event's CertEncoded parameter may be saved for later use. When using a certificate, pass the previously saved security key information as the ssl_cert_store and set ssl_cert_store_password 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. |
ssl_cert_subject Property
This is the subject of the certificate used for client authentication.
Syntax
def get_ssl_cert_subject() -> str: ... def set_ssl_cert_subject(value: str) -> None: ...
ssl_cert_subject = property(get_ssl_cert_subject, set_ssl_cert_subject)
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, E=support@nsoftware.com". Common fields and their meanings are as follows:
Field | Meaning |
CN | Common Name. This is commonly a hostname 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.
timeout Property
A timeout for the class.
Syntax
def get_timeout() -> int: ... def set_timeout(value: int) -> None: ...
timeout = property(get_timeout, set_timeout)
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 do_events 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 fails with an error.
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
The name of the user to authenticate.
Syntax
def get_user() -> str: ... def set_user(value: str) -> None: ...
user = property(get_user, set_user)
Default Value
""
Remarks
This property holds the name of the user to authenticate.
authenticate Method
Authenticates the user.
Syntax
def authenticate() -> None: ...
Remarks
This method authenticates the user with the RADIUS server.
If authentication is successful this method returns without error. If authentication fails this method will throw an exception.
This following properties are applicable when calling this method:
- user (required)
- password (required)
- shared_secret (required)
- remote_host (required)
- remote_port
- timeout
config Method
Sets or retrieves a configuration setting.
Syntax
def config(configuration_string: str) -> str: ...
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.
do_events Method
Processes events from the internal message queue.
Syntax
def do_events() -> None: ...
Remarks
When do_events is called, the class processes any available events. If no events are available, it waits for a preset period of time, and then returns.
interrupt Method
Interrupt the current method.
Syntax
def interrupt() -> None: ...
Remarks
If there is no method in progress, interrupt simply returns, doing nothing.
reset Method
Resets the class properties to their default values.
Syntax
def reset() -> None: ...
Remarks
This method resets the properties to their default values.
on_attribute Event
Fires for each attribute that is received.
Syntax
class RADIUSAttributeEventParams(object): @property def attribute_type() -> int: ... @property def name() -> str: ... @property def value() -> bytes: ... # In class RADIUS: @property def on_attribute() -> Callable[[RADIUSAttributeEventParams], None]: ... @on_attribute.setter def on_attribute(event_hook: Callable[[RADIUSAttributeEventParams], None]) -> None: ...
Remarks
This event fires once for each attribute that is received. This will fire when calling authenticate.
AttributeType is the attribute type. Common values are:
AttributeType | Meaning |
1 | User-Name |
2 | User-Password |
3 | CHAP-Password |
4 | NAS-IP-Address |
5 | NAS-Port |
6 | Service-Type |
7 | Framed-Protocol |
8 | Framed-IP-Address |
9 | Framed-IP-Netmask |
10 | Framed-Routing |
11 | Filter-Id |
12 | Framed-MTU |
13 | Framed-Compression |
14 | Login-IP-Host |
15 | Login-Service |
16 | Login-TCP-Port |
17 | (unassigned) |
18 | Reply-Message |
19 | Callback-Number |
20 | Callback-Id |
21 | (unassigned) |
22 | Framed-Route |
23 | Framed-IPX-Network |
24 | State |
25 | Class |
26 | Vendor-Specific |
27 | Session-Timeout |
28 | Idle-Timeout |
29 | Termination-Action |
30 | Called-Station-Id |
31 | Calling-Station-Id |
32 | NAS-Identifier |
33 | Proxy-State |
34 | Login-LAT-Service |
35 | Login-LAT-Node |
36 | Login-LAT-Group |
37 | Framed-AppleTalk-Link |
38 | Framed-AppleTalk-Network |
39 | Framed-AppleTalk-Zone |
40-59 | Reserved for accounting |
60 | CHAP-Challenge |
61 | NAS-Port-Type |
62 | Port-Limit |
63 | Login-LAT-Port |
Name is the text description of the attribute.
Value is the value of the attribute.
on_error Event
Information about errors during data delivery.
Syntax
class RADIUSErrorEventParams(object): @property def error_code() -> int: ... @property def description() -> str: ... # In class RADIUS: @property def on_error() -> Callable[[RADIUSErrorEventParams], None]: ... @on_error.setter def on_error(event_hook: Callable[[RADIUSErrorEventParams], None]) -> None: ...
Remarks
The on_error event is fired in case of exceptional conditions during message processing. Normally the class fails with an error.
The ErrorCode parameter contains an error code, and the Description parameter contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to the Error Codes section.
on_log Event
Fires with log information during processing.
Syntax
class RADIUSLogEventParams(object): @property def log_level() -> int: ... @property def message() -> str: ... @property def log_type() -> str: ... # In class RADIUS: @property def on_log() -> Callable[[RADIUSLogEventParams], None]: ... @on_log.setter def on_log(event_hook: Callable[[RADIUSLogEventParams], None]) -> None: ...
Remarks
This event fires during processing with log information. The level of detail that is logged is controlled via the LogLevel.
LogLevel indicates the level of message. Possible values are:
0 (None) | No events are logged. |
1 (Info - default) | Informational events are logged. |
2 (Verbose) | Detailed data is logged. |
3 (Debug) | Debug data is logged. |
LogMessage is the log entry.
LogType indicates the type of log. Possible values are:
- "REQUEST"
- "RESPONSE"
on_ssl_server_authentication Event
Fired after the server presents its certificate to the client.
Syntax
class RADIUSSSLServerAuthenticationEventParams(object): @property def cert_encoded() -> bytes: ... @property def cert_subject() -> str: ... @property def cert_issuer() -> str: ... @property def status() -> str: ... @property def accept() -> bool: ... @accept.setter def accept(value) -> None: ... # In class RADIUS: @property def on_ssl_server_authentication() -> Callable[[RADIUSSSLServerAuthenticationEventParams], None]: ... @on_ssl_server_authentication.setter def on_ssl_server_authentication(event_hook: Callable[[RADIUSSSLServerAuthenticationEventParams], None]) -> None: ...
Remarks
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.
on_ssl_status Event
Shows the progress of the secure connection.
Syntax
class RADIUSSSLStatusEventParams(object): @property def message() -> str: ... # In class RADIUS: @property def on_ssl_status() -> Callable[[RADIUSSSLStatusEventParams], None]: ... @on_ssl_status.setter def on_ssl_status(event_hook: Callable[[RADIUSSSLStatusEventParams], None]) -> None: ...
Remarks
The event is fired for informational and logging purposes only. This event tracks the progress of the connection.
RADIUS Config Settings
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.RADIUS Config Settings
UDP Config Settings
The default value for this setting is False.
Note: This setting is only available in Windows.
The default value is False.
Note: This setting is only available in Windows.
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 local_host 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).
Setting this to 0 (default) enables the system to choose a port at random. The chosen port will be shown by local_port after the connection is established.
local_port 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.
Note: This setting uses the qWAVE API is only available on Windows 7, Windows Server 2008 R2, and later.
Note: This setting uses the qWAVE API which is only available 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 only available in Windows and requires that the winpcap library be installed (or npcap with winpcap compatibility).
Note: This setting is only available 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 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.
FIPS mode can be enabled by setting the UseFIPSCompliantAPI configuration setting to True. This is a static setting which applies to all instances of all classes of the toolkit within the process. It is recommended to enable or disable this setting once before the component has been used to establish a connection. Enabling FIPS while an instance of the component is active and connected may result in unexpected behavior.
For more details please see the FIPS 140-2 Compliance article.
Note: This setting is only applicable on Windows.
Note: Enabling FIPS-compliance requires a special license; please contact sales@nsoftware.com for details.
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, OpenSSL support must be enabled. For more information on how to enable OpenSSL, please refer to the OpenSSL Notes section.
RADIUS Errors
RADIUS Errors
900 Busy performing other action. | |
901 Received invalid response. | |
902 Received rejected response. | |
903 Received challenge response. |
UDP Errors
104 UDP is already active. | |
106 You cannot change the local_port while the class is active. | |
107 You cannot change the local_host at this time. A connection is in progress. | |
109 The class must be active for this operation. | |
112 Cannot change MaxPacketSize while the class is active. | |
113 Cannot change ShareLocalPort option while the class is active. | |
114 Cannot change remote_host when UseConnection is set and the class active. | |
115 Cannot change remote_port when UseConnection is set and the class is active. | |
116 remote_port can't be zero when UseConnection is set. Please specify a valid service port number. | |
117 Cannot change UseConnection while the class is active. | |
118 Message can't be longer than MaxPacketSize. | |
119 Message too short. | |
434 Unable to convert string to selected CodePage |
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). |