A base object for SSLServer/SSLClient. More...
Public Member Functions | |
void | Dispose () |
Remove a client/server context. | |
int | Read (SSL ssl, out byte[] in_data) |
Read the SSL data stream. | |
int | Write (SSL ssl, byte[] out_data) |
Write to the SSL data stream. | |
int | Write (SSL ssl, byte[] out_data, int out_len) |
Write to the SSL data stream. | |
SSL | Find (Socket s) |
Find an ssl object based on a Socket reference. | |
int | VerifyCert (SSL ssl) |
Authenticate a received certificate. | |
int | Renegotiate (SSL ssl) |
Force the client to perform its handshake again. | |
int | ObjLoad (int obj_type, string filename, string password) |
Load a file into memory that is in binary DER or ASCII PEM format. | |
int | ObjLoad (int obj_type, byte[] data, int len, string password) |
Transfer binary data into the object loader. | |
Protected Member Functions | |
SSLCTX (uint options, int num_sessions) | |
Establish a new client/server context. | |
Protected Attributes | |
IntPtr | m_ctx |
A reference to the real client/server context. |
A base object for SSLServer/SSLClient.
axTLS::SSLCTX::SSLCTX | ( | uint | options, | |
int | num_sessions | |||
) | [inline, protected] |
Establish a new client/server context.
This function is called before any client/server SSL connections are made. If multiple threads are used, then each thread will have its own SSLCTX context. Any number of connections may be made with a single context.
Each new connection will use the this context's private key and certificate chain. If a different certificate chain is required, then a different context needs to be be used.
options | [in] Any particular options. At present the options supported are:
| |
num_sessions | [in] The number of sessions to be used for session caching. If this value is 0, then there is no session caching. |
void axTLS::SSLCTX::Dispose | ( | ) | [inline] |
Remove a client/server context.
Frees any used resources used by this context. Each connection will be sent a "Close Notify" alert (if possible).
int axTLS::SSLCTX::Read | ( | SSL | ssl, | |
out byte[] | in_data | |||
) | [inline] |
Read the SSL data stream.
ssl | [in] An SSL object reference. | |
in_data | [out] After a successful read, the decrypted data will be here. It will be null otherwise. |
int axTLS::SSLCTX::Write | ( | SSL | ssl, | |
byte[] | out_data | |||
) | [inline] |
int axTLS::SSLCTX::Write | ( | SSL | ssl, | |
byte[] | out_data, | |||
int | out_len | |||
) | [inline] |
SSL axTLS::SSLCTX::Find | ( | Socket | s | ) | [inline] |
int axTLS::SSLCTX::VerifyCert | ( | SSL | ssl | ) | [inline] |
Authenticate a received certificate.
This call is usually made by a client after a handshake is complete and the context is in SSL_SERVER_VERIFY_LATER mode.
ssl | [in] An SSL object reference. |
int axTLS::SSLCTX::Renegotiate | ( | SSL | ssl | ) | [inline] |
Force the client to perform its handshake again.
For a client this involves sending another "client hello" message. For the server is means sending a "hello request" message.
This is a blocking call on the client (until the handshake completes).
ssl | [in] An SSL object reference. |
int axTLS::SSLCTX::ObjLoad | ( | int | obj_type, | |
string | filename, | |||
string | password | |||
) | [inline] |
Load a file into memory that is in binary DER or ASCII PEM format.
These are temporary objects that are used to load private keys, certificates etc into memory.
obj_type | [in] The format of the file. Can be one of:
|
PEM files are automatically detected (if supported).
filename | [in] The location of a file in DER/PEM format. | |
password | [in] The password used. Can be null if not required. |
int axTLS::SSLCTX::ObjLoad | ( | int | obj_type, | |
byte[] | data, | |||
int | len, | |||
string | password | |||
) | [inline] |
Transfer binary data into the object loader.
These are temporary objects that are used to load private keys, certificates etc into memory.
obj_type | [in] The format of the memory data. | |
data | [in] The binary data to be loaded. | |
len | [in] The amount of data to be loaded. | |
password | [in] The password used. Can be null if not required. |