RSA BSAFE SSL-C

Security protocol components for C

Search

ssl.h File Reference

This file contains definitions and function prototypes for SSL routines.

#include "r_lib.h"
#include "ssl2.h"
#include "ssl23.h"
#include "ssl3.h"
#include "tls1.h"
#include "vercfg.h"
#include "cert.h"
#include "ssl_lib.h"
#include "ssl_algs.h"

Go to the source code of this file.

Defines

#define SSL_FEATURE_DH
 Switches on/off all cipher suites that require Diffie-Hellman. More...

#define SSL_FEATURE_DSA
 Switches on/off all cipher suites that require the Digital Signature Algorithm (DSA). More...

#define SSL_FEATURE_ALLOW_ENULL
 Switches on/off all cipher suites that require NULL encryption. More...

#define SSL_FEATURE_ALLOW_ANULL
 Switches on/off all cipher suites that require anonymous authentication. More...

#define SSL_FEATURE_ALLOW_ADH
 Switches on/off all cipher suites that require anonymous Diffie-Hellman authentication. More...

#define SSL_TMP_512_RSA
 Sets the 512-bit RSA temporary key.

#define SSL_TMP_512_DH
 Sets the 512-bit Diffie-Hellman temporary key.

#define SSL_TMP_1024_DH
 Sets the 1024-bit Diffie-Hellman temporary key.

#define SSL_TMP_2048_DH
 Sets the 2048-bit Diffie-Hellman temporary key.

#define SSL_TMP_1024_RSA
 Sets the 1024-bit RSA temporary key.

#define SSL_TMP_GENERATE_NOW
 Generates the temporary RSA key immediately.

#define SSL_TMP_GENERATE_LATER
 Generates the key the first time it is required.

#define SSL_FILETYPE_ASN1
 Indicates the certificate filetype is ASN.1 (Distinguished Encoding Rules/Binary Encoding Rules) encoded.

#define SSL_FILETYPE_PEM
 Indicates the certificate filetype is Privacy Enhanced Mail encoded.

#define SSL_FILETYPE_HARDWARE
 Indicates the certificate filetype is hardware.

#define SSL_SZ_CERT_ALL
 Sets the size for client and server certificates.

#define SSL_SZ_CLIENT_CERT
 Sets the size for client certificates.

#define SSL_SZ_SERVER_CERT
 Sets the size for server certificates.

#define SSL_SZ_CERT_DEFAULT_SZ
 Indicates a 100k maximum certificate list.

#define SSL_OP_MICROSOFT_SESS_ID_BUG
 Indicates a Microsoft SSLv2 session identifier reuse error. More...

#define SSL_OP_NETSCAPE_CHALLENGE_BUG
 Indicates a Netscape SSLv2 challenge length error. More...

#define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
 Indicates a Netscape SSLv3 changing reused cipher error. More...

#define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG
 Indicates an SSLv2 session identifier reuse certificate type error. More...

#define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER
 Indicates a large SSLv3 packet error. More...

#define SSL_OP_MSIE_SSLV2_RSA_PADDING
 Indicates Microsoft SSLv2 rollback attacks on SSLv3 clients. More...

#define SSL_OP_SSLEAY_080_CLIENT_DH_BUG
 Indicates an SSLeay version 0.8.0 Diffie-Hellman encoding error. More...

#define SSL_OP_TLS_D5_BUG
 Indicates an ephemeral RSA encoding error. More...

#define SSL_OP_TLS_BLOCK_PADDING_BUG
 Indicates a Transport Layer Security (TLS) block encoding error. More...

#define SSL_OP_TLS_ROLLBACK_BUG
 Indicates a Transport Layer Security (TLS) protocol rollback checking error. More...

#define SSL_OP_MS_SGC
 Turns on compatibility with Microsoft Server Gated Cryptography (SGC). More...

#define SSL_OP_DHANON_NULL_SIGNATURE_OK
 Indicates that the client should allow a NULL Diffie-Hellman anonymous signature rather than rejecting it.

#define SSL_OP_ALL
 Enables the following bug compatibility options:
  • SSL_OP_DHANON_NULL_SIGNATURE_OK.
  • SSL_OP_MS_SGC.
  • SSL_OP_TLS_ROLLBACK_BUG.
  • SSL_OP_TLS_BLOCK_PADDING_BUG.
  • SSL_OP_TLS_D5_BUG.
  • SSL_OP_SSLEAY_080_CLIENT_DH_BUG.
  • SSL_OP_MSIE_SSLV2_RSA_PADDING.
  • SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER.
  • SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG.
  • SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG.
  • SSL_OP_NETSCAPE_CHALLENGE_BUG.
  • SSL_OP_MICROSOFT_SESS_ID_BUG. More...

  • #define SSL_OP_MULTIPRIME_TMP_RSA_KEYS
     Turns on MultiPrime for temporary RSA key generation.

    #define SSL_OP_QUIET_SHUTDOWN
     Enables shutdown without sending a notification to the peer. More...

    #define SSL_OP_ANYTIME_SHUTDOWN
     Enables shutdown at any time including during the handshake. More...

    #define SSL_OP_SSLC2_DH_BUG
     Enables compatibility with SSL-C 2.0 and SSL-J 4.x when using Diffie-Hellman key exchange.

    #define SSL_OP_SINGLE_DH_USE
     Ensures tmp_dh parameters are used only once.

    #define SSL_OP_EPHEMERAL_RSA
     Uses the tmp_rsa key during RSA operations.

    #define SSL_OP_REUSE_DELAY_CLIENT_FINISHED
     Indicates that reuse delay client is finished. More...

    #define SSL_OP_DELAY_READ_SERVER_FINISHED
     Delays reading of the server finished message on the client until the after sending the first block of application data. More...

    #define SSL_OP_NO_SSLv2
     Prevents an SSLv2 connection. More...

    #define SSL_OP_NO_SSLv3
     Prevents an SSLv3 connection. More...

    #define SSL_OP_NO_TLSv1
     Prevents a Transport Layer Security (TLS) v1 connection. More...

    #define SSL_OP_PKCS1_CHECK_1
     Deliberately changes the ciphertext and is a check for the PKCS #1 attack (that is, diagnostic code).

    #define SSL_OP_PKCS1_CHECK_2
     Deliberately changes the ciphertext and is a check for the PKCS #1 attack (that is, diagnostic code).

    #define SSL_OP_NETSCAPE_CA_DN_BUG
     Indicates a Netscape SSLv3 Certification Authority (CA) Distinguished Name (DN) encoding error. More...

    #define SSL_OP_NON_EXPORT_FIRST
     Prevents the server from automatically upgrading an SSLv23 handshake to SSLv3 where no strong (that is, non export) SSLv3 cipher suites are supported by the client (but strong SSLv2 cipher suites are available).

    #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
     A bug compatibility flag.

    #define SSL_SESS_CACHE_OFF
     Disables session caching.

    #define SSL_SESS_CACHE_CLIENT
     Enables session caching for the client.

    #define SSL_SESS_CACHE_SERVER
     Enables session caching for the server.

    #define SSL_SESS_CACHE_BOTH
     Enables session caching for both the client and server.

    #define SSL_SESS_CACHE_NO_AUTO_CLEAR
     Prevents automatic flushing of expired session identifiers from the session cache.

    #define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP
     Disables the internal cache session identifier lookup on the server side. More...

    #define SSL_SESS_CACHE_OFF_NON_ZERO_ID
     Disables session caching but requires the server to send a non-zero session identifier to the client. More...

    #define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT
     Defines the default internal session cache size.

    #define SSL_EXT_SESS_CACHE_ADD
     Adds a session to the cache.

    #define SSL_EXT_SESS_CACHE_DEL
     Removes a session from the cache.

    #define SSL_EXT_SESS_CACHE_FIND
     Retrieves a session from the cache.

    #define SSL_NOTHING
     Indicates that all operations completed successfully.

    #define SSL_WRITING
     Indicates that the write operation failed to complete and should be retried.

    #define SSL_READING
     Indicates that the read operation failed to complete and should be retried.

    #define SSL_X509_LOOKUP
     Indicates that the X.509 lookup failed to complete and should be retried.

    #define SSL_ST_CONNECT
     Indicates the client connect state.

    #define SSL_ST_ACCEPT
     Indicates the server accept state.

    #define SSL_ST_MASK
     Indicates the mask used for states.

    #define SSL_ST_INIT
     Indicates that the protocol is initialized, in either the connect or accept states.

    #define SSL_ST_BEFORE
     Indicates that the handshake has not started yet.

    #define SSL_ST_OK
     Indicates successful handshake completion.

    #define SSL_ST_RENEGOTIATE
     Indicates protocol renegotiation or initialized state.

    #define SSL_CB_LOOP
     Indicates the state in the callback loop.

    #define SSL_CB_EXIT
     Indicates the callback exit state.

    #define SSL_CB_READ
     Indicates the callback read state.

    #define SSL_CB_WRITE
     Indicates the callback write state.

    #define SSL_CB_ALERT
     Indicates the callback alert state.

    #define SSL_CB_READ_ALERT
     Indicates the callback read alert state.

    #define SSL_CB_WRITE_ALERT
     Indicates the callback write alert state.

    #define SSL_CB_ACCEPT_LOOP
     Indicates the state in the server callback loop.

    #define SSL_CB_ACCEPT_EXIT
     Indicates the server callback exit state.

    #define SSL_CB_CONNECT_LOOP
     Indicates the state in the client callback loop.

    #define SSL_CB_CONNECT_EXIT
     Indicates the client callback exit state.

    #define SSL_CB_HANDSHAKE_START
     Indicates the state in the handshake start.

    #define SSL_CB_HANDSHAKE_DONE
     Indicates that the state handshake is complete.

    #define SSL_VERIFY_NONE
     Indicates to not request a peer certificate and attempt peer verification.

    #define SSL_VERIFY_PEER
     Requests a certificate from the peer.

    #define SSL_VERIFY_FAIL_IF_NO_PEER_CERT
     Requests a certificate from the peer and fails if one is not provided.

    #define SSL_VERIFY_CLIENT_ONCE
     Specifies that a certificate should not be re-requested from the client during renegotiation.

    #define SSL_FLUSH_ALL
     An option for SSL_flush_sessions.

    #define SSL_FLUSH_OLD
     An option for SSL_flush_sessions.

    #define SSL_AD_UNEXPECTED_MESSAGE
     Fatal alert.

    #define SSL_AD_BAD_RECORD_MAC
     Fatal alert.

    #define SSL_AD_DECOMPRESSION_FAILURE
     Fatal alert.

    #define SSL_AD_HANDSHAKE_FAILURE
     Fatal alert.

    #define SSL_AD_NO_CERTIFICATE
     Not for TLS.

    #define SSL_AD_ILLEGAL_PARAMETER
     Fatal alert.

    #define SSL_AD_UNKNOWN_CA
     Fatal alert.

    #define SSL_AD_ACCESS_DENIED
     Fatal alert.

    #define SSL_AD_DECODE_ERROR
     Fatal alert.

    #define SSL_AD_EXPORT_RESTRICION
     Fatal alert.

    #define SSL_AD_PROTOCOL_VERSION
     Fatal alert.

    #define SSL_AD_INSUFFICIENT_SECURITY
     Fatal alert.

    #define SSL_AD_INTERNAL_ERROR
     Fatal alert.

    #define SSL_ERROR_NONE
     Indicates that the operation was completed successfully.

    #define SSL_ERROR_SSL
     Indicates that an error occurred as a result of an SSL protocol failure. More...

    #define SSL_ERROR_WANT_READ
     Indicates that a read was attempted and the operating system returned that the operation could not be completed without blocking the caller. More...

    #define SSL_ERROR_WANT_WRITE
     Indicates that a write was attempted and the operating system indicated the operation could not be completed without blocking the caller. More...

    #define SSL_ERROR_WANT_X509_LOOKUP
     If a client certificate is set via SSL_CTX_set_client_cert_cb() and the callback returns -1 (indicating the certificate is not available), this error means that the state engine is waiting for a certificate lookup.

    #define SSL_ERROR_SYSCALL
     Indicates a system call error. More...

    #define SSL_ERROR_ZERO_RETURN
     Indicates a read or write system call has returned zero. More...

    #define SSL_ERROR_WANT_CONNECT
     Indicates the BIO has not connected. More...

    #define SSL_SENT_SHUTDOWN
     Indicates the close notify message has been sent to the other peer.

    #define SSL_RECEIVED_SHUTDOWN
     Indicates the notify message has been received from the other peer.

    #define SSL_BLINDING_MODE_OFF
     Indicates to turn blinding mode off.

    #define SSL_BLINDING_MODE_NO_UPDATE
     Indicates the blinding mode in which the blinding value is constant for each operation.

    #define SSL_BLINDING_MODE_FULL_UPDATE
     Indicates the blinding mode in which the new blinding value is used for each operation.

    #define SSL_DEFAULT_MAX_RSA_N_SIZE
     Indicates the default maximum RSA public key modulus size for the client certificate, specified in numbers of bits.

    #define SSL_DEFAULT_MAX_RSA_E_SIZE
     Indicates the default maximum RSA public key exponent size for the client certificate, specified in numbers of bits.

    #define SSL_DEFAULT_MAX_RSA_N_SIZE
     Indicates the default maximum RSA public key modulus size for the client certificate, specified in numbers of bits.

    #define SSL_DEFAULT_MAX_RSA_E_SIZE
     Indicates the default maximum RSA public key exponent size for the client certificate, specified in numbers of bits.

    #define SSLC_FIPS140_SSL_MODE
      Indicates that the FIPS 140 mode is enabled for the library.

    #define SSLC_NON_FIPS140_MODE
      Indicates that the FIPS 140 mode is disabled for the library.

    #define SSLC_HARDWARE_MODE
      Indicates that the hardware mode is enabled for the library.

    #define SSLC_SOFTWARE_MODE
     Indicates that the software mode is enabled for the library.

    #define SSL_CTX_INFO_R_LIB_CTX
     Indicates the reference to the library context in the SSL_CTX object. More...

    #define SSL_CTX_INFO_FIPS140_MODE
     Indicates the reference to the cryptographic data in the SSL_CTX. More...

    #define SSL_INFO_R_LIB_CTX
     Indicates the reference to the library context R_LIB_CTX in the SSL object. More...

    #define SSL_INFO_FIPS140_MODE
      Indicates the reference to the cryptographic data in the SSL object. More...


    Typedefs

    typedef struct evp_pkey_st EVP_PKEY
     Indicates the type definition for the EVP_PKEY structure. More...

    typedef struct ssl_ctx_st SSL_CTX
     Indicates the type definition for the SSL_CTX structure.

    typedef struct ssl_st SSL
     Indicates the type definition for the SSL structure.

    typedef struct ssl_cipher_st SSL_CIPHER
     Indicates the type definition for the SSL_CIPHER structure. More...

    typedef struct ssl_method_st SSL_METHOD
     Indicates the type definition for the SSL_METHOD structure. More...

    typedef struct ssl_session_st SSL_SESSION
     Indicates the type definition for the SSL_SESSION structure.

    typedef struct ssl_simple_session_cache_st SSL_SIMPLE_SESSION_CACHE
     Indicates A simple session cache.

    typedef int SSL_SESS_NEW_CB_T (SSL *ssl, SSL_SESSION *session)
     A type of callback function that adds a new session into an external cache. More...

    typedef void SSL_SESS_REMOVE_CB_T (SSL_CTX *ssl, SSL_SESSION *session)
     A type of callback function that removes a session from an external cache. More...

    typedef SSL_SESSIONSSL_SESS_GET_CB_T (SSL *ssl, unsigned char *sess_id, int id_len, int *copyflag)
     A type of callback function that retrieves a session from an external cache based on an unique session identifier. More...

    typedef void SSL_INFO_CB_T (SSL *ssl, int where, int ret)
     Type of callback function that reports on the SSL protocol state. More...

    typedef int SSL_CTX_INFO
     The type of information identifiers of SSL_CTX structure. More...

    typedef int SSL_CTX_CERT_VERIFY_CB_T (SSLCERT_STORE_CTX *store_ctx, char *arg)
     The prototype for a user-defined verification routine. More...

    typedef int SSL_CTX_APP_VERIFY_CB_T (SSL *ssl, SSLCERT **certs, int num, char *arg, long *verify_result)
     The prototype for a user-defined verification callback function. More...

    typedef int SSL_INFO
     The type of information identifiers of an SSL_CTX structure. More...

    typedef int SSL_CTX_CLIENT_CERT_CB_T (SSL *ssl, void **cpp, EVP_PKEY **kpp)
     The prototype for a user-defined client certificate callback function. More...

    typedef RSA* SSL_TMP_RSA_CB_T (SSL *ssl, int export_type)
     A type of callback function that helps delay temporary RSA key creation. More...

    typedef DH* SSL_TMP_DH_CB_T (SSL *ssl, int export_type)
     A callback function that can be used to replace the temporary Diffie-Hellman (DH) key generation. More...

    typedef void SSL_ALERT_INFO_CB_T (SSL *s, int where, int ret, char *arg)
     A type of callback function that reports on SSL protocol alerts. More...

    typedef int SSL_VERIFY_CB_T (int ok, SSLCERT_STORE_CTX *store_ctx)
     The prototype for a user-defined extension to the default internal verification callback. More...

    typedef void SSL_APP_DATA_CB_T (SSL *s, int where, char *arg)
     A type of callback function that reports on application data. More...

    typedef int SSL_EX_DATA_NEW_CB_T (char *obj, char *item, char *ad, int index, long argl, char *argp)
     A type of callback function that can create a new extra data structure for use at a later stage. More...

    typedef void SSL_EX_DATA_FREE_CB_T (char *obj, char *item, char *ad, int index, long argl, char *argp)
     A type of callback function that can be used to free an extra data structure. More...

    typedef int SSL_EX_DATA_DUP_CB_T (char *obj_to, char *obj_from, char **item, int index, long argl, char *argp)
     A type of callback function that can be used to duplicate an extra data structure. More...


    Functions

    RSA* RSA_new (void)
     Creates a new RSA structure and associates the default RSA method with the newly created structure. More...

    void RSA_free (RSA *rsa)
     Frees the RSA structure rsa. More...

    RSA* RSA_dup (RSA *rsa)
     Duplicates the RSA structure rsa. More...

    int RSA_size (RSA *rsa)
     Returns the size of the RSA key rsa in Bytes. More...

    unsigned long SSL_SESSION_hash (SSL_SESSION *sess)
     Generates a hash of the SSL_SESSION structure. More...

    void SSL_SESSION_free (SSL_SESSION *sess)
     Frees a reference to an SSL_SESSION structure. More...

    void SSL_SESSION_reference_inc (SSL_SESSION *sess)
     Increments the reference count of the session. More...

    int SSL_set_session (SSL *ssl, SSL_SESSION *sess)
     Copies the session identifier information from the SSL_SESSION structure session to the SSL structure ssl. More...

    void SSL_copy_session (SSL *to, SSL *from)
     Copies the session identifier and other associated information from one SSL structure to another. More...

    unsigned int SSL_SESSION_get_session_id_length (SSL_SESSION *sess)
     Returns the length of the session identifier for the specified session. More...

    unsigned char* SSL_SESSION_get_session_id (SSL_SESSION *sess)
     Returns the session identifier for the specified session. More...

    BIOBIO_new_ssl (SSL_CTX *ctx, int client)
     Creates a new SSL BIO pointer. More...

    BIOBIO_new_ssl_connect (SSL_CTX *ctx)
     Creates a new BIO with an associated SSL structure based on the SSL_CTX structure passed in. More...

    BIOBIO_new_buffer_ssl_connect (SSL_CTX *ctx)
     Creates a new BIO SSL structure via BIO_new_ssl_connect() from the passed SSL_CTX structure. More...

    int BIO_ssl_copy_session (BIO *to, BIO *from)
     Copies the SSL_SESSION from the SSL that is associated with the from BIO into the to BIO. More...

    int BIO_ssl_shutdown (BIO *bio)
     Closes the SSL connection for the BIO structure bio. More...

    int SSL_SESSION_print (BIO *bio, SSL_SESSION *sess)
     Prints information regarding the SSL_SESSION sess as ASCII text to the BIO bio. More...

    int PEM_write_bio_SSL_SESSION (BIO *bio, SSL_SESSION *sess)
     Writes a Privacy Enhanced Mail (PEM)-encoded ASN.1 representation for the SSL_SESSION sess to the BIO bio. More...

    SSL_SESSIONPEM_read_bio_SSL_SESSION (BIO *bio, SSL_SESSION **sess, PEM_PASSWORD_CB_T *callback)
     Reads a Privacy Enhanced Mail (PEM)-encoded ASN.1 representation of the SSL_SESSION sess from the BIO bio. More...

    int SSL_SESSION_print_fp (FILE *fp, SSL_SESSION *sess)
     Prints information regarding the SSL_SESSION structure sess as ASCII text to the file fp. More...

    SSL_SESSIONPEM_read_SSL_SESSION (FILE *fp, SSL_SESSION **sess, PEM_PASSWORD_CB_T *callback)
     Reads the Privacy Enhanced Mail (PEM) ASN.1 encoded representation of an SSL_SESSION sess from the file fp. More...

    int PEM_write_SSL_SESSION (FILE *fp, SSL_SESSION *sess)
     Writes a Privacy Enhanced Mail (PEM) encoded ASN.1 representation of the SSL_SESSION sess to the file fp. More...

    int SSL_is_init_finished (SSL *ssl)
     Indicates whether the SSL handshake has completed and the communications channel has been established for the specified ssl. More...

    long SSL_add_explicit_cert_chain (SSL *ssl, SSLCERT *x509)
     Allows precise specification of the certificate chain to be sent in addition to the SSL's own certificate. More...

    long SSL_set_max_rsa_n_size (SSL *ssl, unsigned long size)
     Allows the server to set the maximum size of the client certificate public key modulus. More...

    long SSL_set_max_rsa_e_size (SSL *ssl, unsigned long size)
     Allows the server to set the maximum size of the client certificate public key exponent. More...

    long SSL_clear_explicit_cert_chain (SSL *ssl)
     Removes all certificates in an explicit certificate chain attached to an ssl. More...

    long SSL_CTX_sess_set_cache_size (SSL_CTX *ctx, long csize)
     Sets the maximum size of the cache in entries for the SSL_CTX ctx. More...

    long SSL_CTX_sess_get_cache_size (SSL_CTX *ctx)
     Returns the current cache size setting for the SSL_CTX ctx. More...

    int SSL_CTX_set_session_cache_mode (SSL_CTX *ctx, int mode)
     Sets the session cache mode for the SSL_CTX ctx. More...

    int SSL_CTX_get_session_cache_mode (SSL_CTX *ctx)
     Returns the session cache mode for the SSL_CTX ctx. More...

    long SSL_CTX_set_max_rsa_n_size (SSL_CTX *ssl_ctx, unsigned long size)
     Allows the server to set the maximum size of the client certificate public key modulus. More...

    long SSL_CTX_set_max_rsa_e_size (SSL_CTX *ssl_ctx, unsigned long size)
     Allows the server to set the maximum size of the client certificate public key exponent. More...

    void SSL_CTX_sess_set_new_cb (SSL_CTX *ctx, SSL_SESS_NEW_CB_T *new_session_cb)
     Sets a callback which is invoked when a session is added to the session identifier cache. More...

    SSL_SESS_NEW_CB_TSSL_CTX_sess_get_new_cb (SSL_CTX *ctx)
     Returns the callback which is invoked when a session is added to the session identifier cache. More...

    void SSL_CTX_sess_set_remove_cb (SSL_CTX *ctx, SSL_SESS_REMOVE_CB_T *remove_session_cb)
     Sets a callback which is invoked when a session is removed from the session identifier cache. More...

    SSL_SESS_REMOVE_CB_TSSL_CTX_sess_get_remove_cb (SSL_CTX *ctx)
     Returns the callback which is invoked when a session is removed from the session identifier cache. More...

    void SSL_CTX_sess_set_get_cb (SSL_CTX *ctx, SSL_SESS_GET_CB_T *get_session_cb)
     Sets a callback which is invoked when a session is looked up in the session identifier cache and is not found or if there is no internal caching. More...

    SSL_SESS_GET_CB_TSSL_CTX_sess_get_get_cb (SSL_CTX *ctx)
     Returns the callback invoked when a session is looked up in the session identifier cache and is not found. More...

    int SSL_CTX_add_session (SSL_CTX *ctx, SSL_SESSION *sess)
     Adds the SSL session sess to the SSL_CTX structure ctx. More...

    int SSL_CTX_remove_session (SSL_CTX *ctx, SSL_SESSION *sess)
     Removes the session sess from the session cache of the SSL_CTX structure ctx. More...

    int SSL_CTX_flush_sessions (SSL_CTX *ctx, int timeout)
     Flushes out-of-date sessions from the session cache. More...

    void SSL_CTX_set_info_cb (SSL_CTX *ctx, SSL_INFO_CB_T *cb)
     Sets the information callback for the SSL_CTX structure ctx. More...

    SSL_INFO_CB_TSSL_CTX_get_info_cb (SSL_CTX *ctx)
     Returns the information callback for the SSL_CTX structure ctx. More...

    SSL_CTXSSL_CTX_new (SSL_METHOD *meth)
     Creates a new context structure using the SSL_METHOD reference and initializes the default values. More...

    void SSL_CTX_free (SSL_CTX *ctx)
     Deallocates the memory and frees the state information for the SSL_CTX structure passed in. More...

    int SSL_CTX_set_cipher_list (SSL_CTX *ctx, char *str)
     Specifies the cipher suites and order for the SSL_CTX ctx. More...

    int SSL_CTX_set_info (SSL_CTX *ssl_ctx, SSL_CTX_INFO info_id, void *value)
     Sets the information into an SSL_CTX structure. More...

    int SSL_CTX_get_info (SSL_CTX *ssl_ctx, SSL_CTX_INFO info_id, void *value)
     Retrieves the information from an SSL_CTX structure. More...

    int SSL_CTX_set_R_LIB_CTX (SSL_CTX *ssl_ctx, R_LIB_CTX *lib_ctx, int mode)
     Sets the library context against the SSL_CTX structure. More...

    long SSL_CTX_set_rsa_blinding_mode (SSL_CTX *ctx, int mode)
     Sets the blinding mode for all the loaded RSA keys. More...

    int SSL_set_cipher_list (SSL *ssl, char *str)
     Specifies the ciphers to be used by the SSL. More...

    char* SSL_get_cipher_list (SSL *ssl, int idx)
     Returns the textual name for the cipher at the given index. More...

    char* SSL_get_shared_ciphers (SSL *ssl, char *buffer, int len)
     Returns the names of the shared ciphers of the SSL. More...

    void SSL_set_connect_state (SSL *ssl)
     Sets the SSL flags and functions for a client-side connection. More...

    void SSL_set_accept_state (SSL *ssl)
     Sets the SSL connection ssl in the accept state (that is, the server side of an SSL connection). More...

    int SSL_get_peer_cert_chain_count (SSL *ssl)
     Returns the number of items in the certificate chain sent by the peer application for the SSL connection ssl. More...

    SSLCERTSSL_get_peer_cert_chain_item (SSL *ssl, int n)
     Returns a pointer to an element of the chain of certificate information sent by the peer application for the SSL connection ssl. More...

    int SSL_get_ciphers_count (SSL *ssl)
     Returns the number of ciphers in the cipher list for the specified ssl. More...

    SSL_CIPHERSSL_get_ciphers_item (SSL *ssl, int n)
     Returns a specific cipher in the cipher list for the specified ssl. More...

    int SSL_pending (SSL *ssl)
     Indicates additional buffered data is available internally for the application to read for the specified ssl. More...

    char* SSL_get_version (SSL *ssl)
     Returns a string representation of the SSL protocol version of the SSL. More...

    SSLCERTSSL_get_certificate (SSL *ssl)
     Returns the current authenticating certificate of the SSL. More...

    SSL_CIPHERSSL_get_current_cipher (SSL *ssl)
     Returns the current SSL_CIPHER structure for the specified ssl. More...

    int SSL_CIPHER_get_bits (SSL_CIPHER *cipher, int *alg_bits)
     Returns the number of key bits for symmetric ciphers. More...

    unsigned long SSL_CIPHER_get_id (SSL_CIPHER *cipher)
     Returns the unique numeric identifier of a cipher suite. More...

    char* SSL_CIPHER_get_version (SSL_CIPHER *cipher)
     Returns the SSL protocol version of the cipher suite. More...

    char* SSL_CIPHER_get_name (SSL_CIPHER *cipher)
     Returns a reference to the name of the cipher suite. More...

    char* SSL_CIPHER_description (SSL_CIPHER *cipher, char *buffer, int size)
     Returns a text string describing a cipher suite. More...

    int SSL_set_fd (SSL *ssl, int fd)
     Binds the file descriptor fd to the SSL structure ssl. More...

    int SSL_set_rfd (SSL *ssl, int fd)
     Sets the file descriptor fd which is used when reading data via the SSL connection ssl. More...

    int SSL_set_wfd (SSL *ssl, int fd)
     Sets the file descriptor fd which is used when writing data via the SSL connection ssl. More...

    int SSL_get_fd (SSL *ssl)
     Retrieves the file descriptor associated with the read BIO of the SSL connection ssl. More...

    SSLCERTSSL_get_peer_certificate (SSL *ssl)
     Returns the peer certificate of an SSL. More...

    STACK* SSL_get_peer_cert_chain (SSL *ssl)
     Returns the certificate chain sent by the peer application for the SSL connection ssl. More...

    long SSL_CTX_set_timeout (SSL_CTX *ctx, long tmout)
     Sets the timeout period for the SSL_CTX ctx. More...

    long SSL_CTX_get_timeout (SSL_CTX *ctx)
     Returns the session identifier timeout period inherited by the SSL structures created using the SSL_CTX ctx. More...

    SSLCERT_STORESSL_CTX_get_cert_store (SSL_CTX *ctx)
     Returns the structure for storing all data required for verification of a certificate chain for the SSL_CTX ctx. More...

    void SSL_CTX_set_cert_store (SSL_CTX *, SSLCERT_STORE *)
     Specifies the SSLCERT_STORE store which stores all data required for verification of a certificate chain for the SSL_CTX ctx. More...

    void SSL_set_bio (SSL *ssl, BIO *rbio, BIO *wbio)
     Sets the BIOs that will be used for reading and writing data when calling SSL_read() and SSL_write() for the specified SSL connection. More...

    void SSL_load_error_strings (void)
     Loads all SSL and cryptographic library error strings. More...

    char* SSL_state_string (SSL *ssl)
     Returns a short string indicating the current SSL handshake state for the specified ssl. More...

    char* SSL_rstate_string (SSL *ssl)
     Returns a short string indicating the state of the read operation of an SSL record currently being performed by the SSL structure ssl. More...

    char* SSL_state_string_long (SSL *ssl)
     Returns a descriptive message indicating the current SSL handshake state for the SSL connection ssl. More...

    char* SSL_rstate_string_long (SSL *ssl)
     Returns the full string indicating the state of the read operation of an SSL record currently being performed by the SSL structure ssl. More...

    void SSL_CTX_set_verify_depth (SSL_CTX *ssl_ctx, int depth)
     Sets the verification depth for the SSL_CTX. More...

    int SSL_CTX_get_verify_depth (SSL_CTX *ssl_ctx)
     Returns the certificate verification depth and limits the number of certificates in a chain. More...

    int SSL_CTX_get_verify_mode (SSL_CTX *ctx)
     Returns the certificate verification mode for the SSL_CTX ctx. More...

    void SSL_CTX_set_verify_mode (SSL_CTX *ctx, int mode)
     Sets the mode for the verification of peer certificates. More...

    void SSL_CTX_set_cert_verify_cb (SSL_CTX *ctx, SSL_CTX_CERT_VERIFY_CB_T *cb, char *arg)
     Sets a user-defined certificate verification callback against the SSL_CTX. More...

    void SSL_CTX_set_app_verify_cb (SSL_CTX *ctx, SSL_CTX_APP_VERIFY_CB_T *cb, char *arg)
     Sets the application verification callback for the SSL_CTX ctx. More...

    SSL_CTX_APP_VERIFY_CB_TSSL_CTX_get_app_verify_cb (SSL_CTX *ctx)
     Returns the application-supplied verification callback associated with the SSL_CTX. More...

    char* SSL_CTX_get_app_verify_cb_arg (SSL_CTX *ctx)
     Returns the address of the user-defined application verification callback argument for the SSL_CTX ctx. More...

    void SSL_CTX_set_default_passwd_cb (SSL_CTX *ctx, PEM_PASSWORD_CB_T *cb)
     Sets the callback used to specify the default password for reading data from Privacy Enhanced Mail (PEM) encoded files that are password protected. More...

    int SSL_CTX_use_RSAPrivateKey (SSL_CTX *ctx, RSA *rsa)
     Duplicates and loads the RSA private key rsa into the SSL_CTX ctx. More...

    int SSL_CTX_use_RSAPrivateKey_ASN1 (SSL_CTX *ctx, unsigned char *d, long len)
     Loads an RSA private key in ASN.1 format from a buffer into the SSL_CTX ctx. More...

    int SSL_CTX_use_PrivateKey (SSL_CTX *ctx, EVP_PKEY *pkey)
     Duplicates and loads the private key pkey for the SSL_CTX ctx. More...

    int SSL_CTX_use_PrivateKey_ASN1 (SSL_CTX *ctx, unsigned char *key, long len, int type)
     Loads a private key pkey (in ASN.1 format) for the SSL_CTX ctx. More...

    int SSL_CTX_check_private_key (SSL_CTX *ctx)
     Checks that the default certificate and private key of the SSL_CTX ctx match. More...

    int SSL_use_RSAPrivateKey (SSL *ssl, RSA *rsa)
     Loads the RSA private key rsa for the SSL connection ssl. More...

    int SSL_use_RSAPrivateKey_ASN1 (SSL *ssl, unsigned char *buffer, long len)
     Loads an RSA private key in ASN.1 format from a buffer into an SSL. More...

    int SSL_use_PrivateKey (SSL *ssl, EVP_PKEY *pkey)
     Sets the private key pkey to be used for the SSL connection ssl. More...

    int SSL_use_PrivateKey_ASN1 (SSL *ssl, unsigned char *data, long len, int type)
     Sets the private key data to use for the SSL connection ssl. More...

    int SSL_check_private_key (SSL *ctx)
     Ensures the identifying certificate and the private key of an SSL match. More...

    EVP_PKEYPEM_read_bio_PrivateKey (BIO *bio, EVP_PKEY **x, PEM_PASSWORD_CB_T *callback)
     Reads a Privacy Enhanced Mail (PEM)-formatted private key form the BIO bio and returns a private key reference pkey. More...

    int SSL_use_RSAPrivateKey_file (SSL *ssl, char *file, int type)
     Loads an RSA private key from the file file for the SSL connection ssl. More...

    int SSL_use_PrivateKey_file (SSL *ssl, char *file, int type)
     Loads the private key stored in the file file for use with the SSL connection ssl. More...

    int SSL_CTX_use_RSAPrivateKey_file (SSL_CTX *ctx, char *file, int type)
     Loads an RSA private key from the file file into the SSL_CTX ctx. More...

    int SSL_CTX_use_PrivateKey_file (SSL_CTX *ctx, char *file, int type)
     Loads a private key from the file file to into the SSL_CTX ctx. More...

    int SSL_CTX_use_certificate (SSL_CTX *ctx, SSLCERT *x509)
     Binds a certificate to an SSL_CTX structure. More...

    int SSL_CTX_use_certificate_ASN1 (SSL_CTX *ctx, unsigned char *cert, long len)
     Binds a certificate in ASN.1 format to the SSL_CTX ctx. More...

    int SSL_use_certificate (SSL *ssl, SSLCERT *x509)
     Binds a certificate x509 to the SSL connection ssl. More...

    int SSL_use_certificate_ASN1 (SSL *ssl, unsigned char *buffer, long len)
     Binds a certificate data (in ASN.1 format) to the SSL connection ssl. More...

    int SSL_use_certificate_file (SSL *ssl, char *file, int type)
     Binds a certificate stored in a specified file to an SSL. More...

    int SSL_CTX_use_certificate_file (SSL_CTX *ctx, char *file, int type)
     Binds a certificate stored in a specified file, or hardware module, to an SSL_CTX. More...

    SSLSSL_new (SSL_CTX *ctx)
     Creates a new SSL structure and initializes the state engine to request a handshake for the SSL_CTX ctx. More...

    int SSL_clear (SSL *ssl)
     Resets all parameters of the SSL structure ssl to their initial state (that is, returns to state 0). More...

    void SSL_free (SSL *ssl)
     Removes all allocated states for the SSL connection ssl. More...

    SSLSSL_dup (SSL *ssl)
     Duplicates an SSL structure and its associated data. More...

    int SSL_do_handshake (SSL *ssl)
     Performs the initialization sequence to set up an SSL connection for the specified SSL. More...

    int SSL_renegotiate (SSL *ssl)
     Sets a flag indicating a renegotiation should occur before any additional data is transmitted for the specified ssl. More...

    int SSL_shutdown (SSL *ssl)
     Shuts down the SSL protocol on a connection. More...

    int SSL_accept (SSL *ssl)
     Starts the read of a handshake by the server. More...

    int SSL_connect (SSL *ssl)
     Starts the read of the server handshake by the client (after the client has sent the first message). More...

    int SSL_read (SSL *ssl, char *buffer, int num)
     Reads the requested number of Bytes into the buffer buf through an SSL. More...

    int SSL_peek (SSL *ssl, char *buffer, int num)
     Copies the requested number of Bytes into the buffer buf from the input buffer of an SSL. More...

    int SSL_write (SSL *ssl, char *buffer, int num)
     Writes num Bytes from the buffer buf to the SSL connection associated with ssl. More...

    int SSL_get_error (SSL *ssl, int ret_code)
     Returns the status of the last SSL I/O operation. More...

    SSL_METHODSSLv2_method (void)
     Specifies the SSL version 2 protocol. More...

    SSL_METHODSSLv2_server_method (void)
     Specifies the SSL version 2 protocol for servers only. More...

    SSL_METHODSSLv2_client_method (void)
     Specifies the SSL version 2 protocol for clients only. More...

    SSL_METHODSSLv3_server_method (void)
     Specifies the SSL version 3 protocol for servers only. More...

    SSL_METHODSSLv3_client_method (void)
     Specifies the SSL version 3 protocol for clients only. More...

    SSL_METHODSSLv3_method (void)
     Specifies the SSL version 3 protocol. More...

    SSL_METHODSSLv23_method (void)
     Specifies the SSL version 23 protocol. More...

    SSL_METHODSSLv23_server_method (void)
     Sets the SSL method table for an SSLv23 server. More...

    SSL_METHODSSLv23_client_method (void)
     Specifies the SSL version 23 protocol for clients only. More...

    SSL_METHODTLSv1_method (void)
     Specifies the Transport Layer Security (TLS) version 1 protocol for both clients and servers. More...

    SSL_METHODTLSv1_server_method (void)
     Specifies the Transport Layer Security (TLS) version 1 protocol for servers only. More...

    SSL_METHODTLSv1_client_method (void)
     Specifies the Transport Layer Security (TLS) version 1 protocol for clients only. More...

    int SSL_set_ssl_method (SSL *ssl, SSL_METHOD *meth)
     Sets the SSL method meth to override the default methods that an SSL connection inherits from its SSL_CTX when establishing the SSL connection ssl. More...

    char* SSL_alert_type_string_long (int value)
     Returns a textual description of the alert type in string form. More...

    char* SSL_alert_type_string (int value)
     Returns a textual description of the alert type in a short string form. More...

    char* SSL_alert_desc_string_long (int value)
     Returns a textual description of the alert value in string form. More...

    char* SSL_alert_desc_string (int value)
     Returns a textual description of the alert value in a short string form. More...

    void SSL_set_client_CA_list (SSL *ssl, STACK *sk)
     Sets the list of acceptable Certification Authorities (CAs) against the SSL connection reference for the server side of the connection. More...

    void SSL_CTX_set_client_CA_list (SSL_CTX *ctx, STACK *sk)
     Sets the list of acceptable Certification Authorities (CAs) against the SSL_CTX for the server side of the connection. More...

    STACK* SSL_get_client_CA_list (SSL *ssl)
     Returns the list of acceptable Certification Authorities (CAs) that the SSL on the server side passes to the client if a client certificate is requested. More...

    int SSL_add_client_CA (SSL *ssl, SSLCERT *x509)
     Adds a certificate to the list of acceptable Certification Authorities (CAs). More...

    int SSL_CTX_add_client_CA (SSL_CTX *ctx, SSLCERT *x509)
     Adds a certificate to the list of acceptable Certification Authorities (CAs). More...

    long SSL_get_default_timeout (SSL *ssl)
     Returns the default timeout period (in seconds) for SSL sessions created by a particular SSL version (that is, SSLv2, SSLv3 or TLSv1). More...

    int SSL_CTX_set_quiet_shutdown (SSL_CTX *ctx, int mode)
     Sets the quiet shutdown mode for the SSL_CTX ctx. More...

    int SSL_CTX_get_quiet_shutdown (SSL_CTX *ctx)
     Returns the current setting of the quiet shutdown flag for the SSL_CTX connection ctx. More...

    int SSL_set_quiet_shutdown (SSL *ssl, int mode)
     Sets the SSL quiet shutdown mode for the SSL ssl. More...

    int SSL_get_quiet_shutdown (SSL *ssl)
     Returns the current setting of the quiet shutdown flag for the SSL connection ssl. More...

    int SSL_CTX_set_anytime_shutdown (SSL_CTX *ctx, int mode)
     Sets the anytime shutdown flag for the SSL_CTX ctx. More...

    int SSL_CTX_get_anytime_shutdown (SSL_CTX *ctx)
     Returns the current setting for the anytime shutdown flag for the SSL_CTX connection ctx. More...

    int SSL_set_anytime_shutdown (SSL *ssl, int mode)
     Sets the anytime shutdown mode for the SSL connection ssl. More...

    int SSL_get_anytime_shutdown (SSL *ssl)
     Returns the current setting for the anytime shutdown flag for the SSL connection ssl. More...

    int SSL_set_debug (SSL *ssl)
     Sets the debug mode on the SSL object. More...

    int SSL_CTX_set_default_verify_paths (SSL_CTX *ctx)
     Associates the pre-defined path and filenames for certificate verification with the SSL_CTX in a similar way to SSL_CTX_load_verify_locations(). More...

    int SSL_CTX_load_verify_locations (SSL_CTX *ctx, char *CAfile, char *CApath)
     Specifies the directories, filenames and location of trusted certificates. More...

    int SSL_CTX_add_certificate_to_store (SSL_CTX *ctx, SSLCERT *cert)
     Adds a certificate to the store managed by the SSL_CTX structure. More...

    int SSL_get_client_CA_list_count (SSL *ssl)
     Returns the number of acceptable Certification Authorities (CAs) for the SSL ssl. More...

    SSLCERT_NAMESSL_get_client_CA_list_item (SSL *ssl, int n)
     Returns the names of the Certification Authorities (CAs) that the server side of the SSL protocol deems acceptable for verification of a client certificate. More...

    int SSL_CTX_get_client_CA_list_count (SSL_CTX *ctx)
     Returns the number of acceptable Certification Authorities (CAs) for the SSL_CTX ctx. More...

    SSLCERT_NAMESSL_CTX_get_client_CA_list_item (SSL_CTX *ctx, int n)
     Returns the names of the Certification Authorities (CAs) that the server side of the SSL protocol deems acceptable for verification of a client certificate. More...

    void SSL_CTX_set_client_cert_cb (SSL_CTX *ctx, SSL_CTX_CLIENT_CERT_CB_T *cb)
     Sets the client certificate callback for the SSL_CTX ctx. More...

    SSL_CTX_CLIENT_CERT_CB_TSSL_CTX_get_client_cert_cb (SSL_CTX *ctx)
     Returns the application-supplied client certificate callback from the relevant ctx reference. More...

    long SSL_CTX_set_tmp_rsa (SSL_CTX *ctx, RSA *rsa)
     Sets an RSA key for the default key for the SSL_CTX ctx. More...

    long SSL_CTX_set_tmp_dh (SSL_CTX *ctx, DH *dh)
     Indicates that Diffie-Hellman (DH) parameters and ciphers should be used when creating a temporary key for the SSL_CTX ctx. More...

    long SSL_CTX_set_tmp_rsa_cb (SSL_CTX *ctx, SSL_TMP_RSA_CB_T *cb)
     Sets an RSA key generation callback for ctx. More...

    SSL_TMP_RSA_CB_TSSL_CTX_get_tmp_rsa_cb (SSL_CTX *ctx)
     Returns the temporary RSA callback routine set against the SSL_CTX certificate. More...

    long SSL_CTX_set_tmp_dh_cb (SSL_CTX *ctx, SSL_TMP_DH_CB_T *cb)
     Delays the creation of the Diffie-Hellman (DH) key until such time as it is required by a cipher suite. More...

    SSL_TMP_DH_CB_TSSL_CTX_get_tmp_dh_cb (SSL_CTX *ctx)
     Returns the temporary Diffie-Hellman callback routine set against the SSL_CTX certificate. More...

    long SSL_set_tmp_rsa_cb (SSL *ssl, SSL_TMP_RSA_CB_T *callback)
     Creates a temporary RSA key. More...

    SSL_TMP_RSA_CB_TSSL_get_tmp_rsa_cb (SSL *ssl)
     Returns the temporary RSA callback routine set against the SSL certificate. More...

    long SSL_set_tmp_dh_cb (SSL *ssl, SSL_TMP_DH_CB_T *callback)
     Delays the creation of the Diffie-Hellman (DH) key until such time as it is required by a cipher suite. More...

    SSL_TMP_DH_CB_TSSL_get_tmp_dh_cb (SSL *ssl)
     Returns the temporary Diffie-Hellman callback routine set against the SSL certificate. More...

    int SSL_CTX_set_tmp_key_mode (SSL_CTX *ctx, int type, int mode)
     This function is used to preset temporary keys or to set the builtin callbacks. More...

    void SSL_CTX_set_verify (SSL_CTX *ctx, int mode, SSL_VERIFY_CB_T *cb)
     Sets a certificate verification callback against the SSL_CTX that extends the default internal verification. More...

    void SSL_set_verify (SSL *ssl, int mode, SSL_VERIFY_CB_T *cb)
     Sets a certificate verification callback against the SSL_CTX that extends the default internal verification. More...

    void SSL_CTX_set_alert_info_cb (SSL_CTX *ctx, SSL_ALERT_INFO_CB_T *cb, char *arg)
     Associates an alert_info callback and callback argument with the SSL_CTX ctx. More...

    SSL_ALERT_INFO_CB_TSSL_CTX_get_alert_info_cb (SSL_CTX *ctx)
     Returns a reference to the alert_info callback associated with an SSL_CTX. More...

    char* SSL_CTX_get_alert_info_cb_arg (SSL_CTX *ctx)
     Returns the reference to the user-defined callback argument that is passed to the alert_info callback associated with the SSL_CTX ctx. More...

    SSL_ALERT_INFO_CB_TSSL_get_alert_info_cb (SSL *ssl)
     Returns a reference to the alert_info callback associated with the SSL structure ssl. More...

    void SSL_set_alert_info_cb (SSL *ssl, SSL_ALERT_INFO_CB_T *cb, char *arg)
     Associates an alert_info callback and callback argument with the SSL structure ssl. More...

    char* SSL_get_alert_info_cb_arg (SSL *ssl)
     Returns the user-defined callback argument for any alert_info callback function associated with the SSL structure ssl. More...

    void SSL_CTX_set_verify_cb (SSL_CTX *ctx, SSL_VERIFY_CB_T *cb)
     Sets a certificate verification callback against the SSL_CTX that extends the default internal verification. More...

    SSL_VERIFY_CB_TSSL_CTX_get_verify_cb (SSL_CTX *ctx)
     Returns the certificate verification callback set against the SSL_CTX. More...

    void SSL_set_verify_cb (SSL *s, SSL_VERIFY_CB_T *cb)
     Sets a certificate verification callback against the SSL_CTX that extends the default internal verification. More...

    SSL_VERIFY_CB_TSSL_get_verify_cb (SSL *ssl)
     Returns the certificate verification callback set against the SSL. More...

    int SSL_feature_set (long feature)
     Sets a feature for the library. More...

    int SSL_feature_clear (long feature)
     Clears the library feature which disables functionality at run time. More...

    int SSL_feature_test (long feature)
     Tests for the specified library feature in the current library setup. More...

    int SSL_feature_reset (void)
     Clears all library feature settings for the library (that is, functionality that is controlled by feature settings will be available). More...

    void SSL_set_info_cb (SSL *ssl, SSL_INFO_CB_T *info_cb)
     Sets the information callback for the SSL connection ssl. More...

    SSL_INFO_CB_TSSL_get_info_cb (SSL *ssl)
     Returns a reference to the information callback. More...

    SSL_METHODSSL_get_ssl_method (SSL *ssl)
     Returns a reference to SSL_METHOD. More...

    void SSL_set_shutdown (SSL *ssl, int mode)
     Sets the shutdown status defining which parts of the shutdown handshake have been performed. More...

    int SSL_get_shutdown (SSL *ssl)
     Returns the shutdown status defining which parts of the shutdown handshake have been performed. More...

    BIOSSL_get_rbio (SSL *ssl)
     Returns a reference to the SSL read BIO. More...

    BIOSSL_get_wbio (SSL *ssl)
     Returns a reference to the SSL write BIO. More...

    int SSL_version (SSL *ssl)
     Returns the SSL version negotiated during the handshake. More...

    SSL_SESSIONSSL_get_session (SSL *ssl)
     Returns a reference to the SSL_SESSION structure of the ssl. More...

    SSL_CTXSSL_get_SSL_CTX (SSL *ssl)
     Returns a reference to the SSL_CTX structure. More...

    int SSL_state (SSL *ssl)
     Returns the handshake state information for the SSL structure ssl.
    The state information indicates whether the handshake is the client or server side. More...

    int SSL_reuse (SSL *ssl)
     Determines if the current SSL session identifier is being reused on the SSL connection ssl. More...

    void SSL_set_verify_result (SSL *ssl, long verify)
     Sets the result of the certificate verification callback. More...

    long SSL_get_verify_result (SSL *ssl)
     Returns the result of the certificate verification function. More...

    int SSL_get_verify_depth (SSL *ssl)
     Returns the certificate verification depth and limits the number of certificates in a chain. More...

    void SSL_set_verify_depth (SSL *ssl, int depth)
     Sets the verification depth for the SSL and determines the maximum number of certificates acceptable in a chain. More...

    int SSL_get_verify_mode (SSL *ssl)
     Returns the certificate verification mode. More...

    void SSL_set_verify_mode (SSL *ssl, int mode)
     Sets the verification mode for the SSL. More...

    int SSL_want (SSL *ssl)
     Returns the read/write state value from the SSL. More...

    void SSL_CTX_set_app_data_cb (SSL_CTX *ctx, SSL_APP_DATA_CB_T *cb, char *arg)
     Sets the application data callback against the SSL_CTX structure. More...

    SSL_APP_DATA_CB_TSSL_CTX_get_app_data_cb (SSL_CTX *ctx)
     Returns the application data callback set against the SSL_CTX structure ctx. More...

    char* SSL_CTX_get_app_data_cb_arg (SSL_CTX *ctx)
     Returns the application data callback argument set against the SSL_CTX structure ctx. More...

    void SSL_set_app_data_cb (SSL *ssl, SSL_APP_DATA_CB_T *cb, char *arg)
     Sets the application data callback for the specified connection and associated user-defined arguments. More...

    SSL_APP_DATA_CB_TSSL_get_app_data_cb (SSL *ssl)
     Returns the application data callback function pointer set against the SSL structure ssl. More...

    char* SSL_get_app_data_cb_arg (SSL *ssl)
     Returns the application data callback argument set against the SSL structure ssl. More...

    int SSL_set_ex_data (SSL *ssl, int idx, char *data)
     Allows additional information to be stored against the SSL. More...

    char* SSL_get_ex_data (SSL *ssl, int idx)
     Retrieves the extra data set against index idx from the SSL. More...

    int SSL_get_ex_new_index (long argl, char *argp, SSL_EX_DATA_NEW_CB_T *new_func, SSL_EX_DATA_DUP_CB_T *dup_func, SSL_EX_DATA_FREE_CB_T *free_func)
     Returns an index which manages extra data. More...

    int SSL_get_ex_data_SSLCERT_STORE_CTX_idx (void)
     Returns the index of the external data element holding the SSL structure reference. More...

    int SSL_CTX_set_ex_data (SSL_CTX *ssl, int idx, char *data)
     Allows additional information to be stored against the SSL. More...

    char* SSL_CTX_get_ex_data (SSL_CTX *ssl, int idx)
     Retrieves the extra data set against index idx from the SSL_CTX. More...

    int SSL_CTX_get_ex_new_index (long argl, char *argp, SSL_EX_DATA_NEW_CB_T *new_func, SSL_EX_DATA_DUP_CB_T *dup_func, SSL_EX_DATA_FREE_CB_T *free_func)
     Returns an index used to manage extra data. More...


    Function Documentation

    RSA* RSA_dup RSA *    rsa ;
     

    Duplicates the RSA structure rsa.

    Parameters:
    rsa [In] A reference to the RSA key to duplicate.
    Returns:
    The duplicated RSA key.
    NULL indicates error.
    See also:
    RSA_new() and RSA_free().

    void RSA_free RSA *    rsa ;
     

    Frees the RSA structure rsa. This function should always be used to free the RSA structure as it also frees sub-fields safely by clearing memory first. The finish method is called before freeing memory.

    Parameters:
    rsa [In] The RSA reference.
    note.gif
    The RSA structure maintains reference counts so the memory is not actually freed until all references to it are freed.
    See also:
    RSA_new() and RSA_dup().

    RSA* RSA_new void    ;
     

    Creates a new RSA structure and associates the default RSA method with the newly created structure.

    Returns:
    A reference to an RSA structure indicates success.
    NULL indicates memory allocation or initialization failed.
    An error code may also be set.
    See ERR_print_errors() for valid values.
    note.gif
    Memory should be de-allocated via RSA_free().
    See also:
    RSA_dup() and RSA_free().

    int RSA_size RSA *    rsa ;
     

    Returns the size of the RSA key rsa in Bytes.

    Parameters:
    rsa [In] A reference to the RSA key whose size is requested.
    Returns:
    The size of the key in Bytes.
    0 indicates error.


    Copyright (c) 1999-2004 RSA Security Inc. All rights reserved. 050-001001-2600-000-000 - 2.6