RSA BSAFE Micro Edition Suite

Streamlined security for mobile and embedded devices

Search  Print

ssl.h File Reference

This file contains definitions and function prototypes for SSL routines.

#include "r_lib.h"
#include "ssl3.h"
#include "tls1.h"
#include "r_time.h"
#include "cert.h"
#include "ssl_lib.h"
#include "ssl_algs.h"

Go to the source code of this file.

Defines

#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_TMP_512_RSA
 Sets the 512-bit RSA 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_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_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_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_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_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 SSL_CTX_INFO_R_LIB_CTX
     Indicates the reference to the library context in the SSL_CTX object. More...

    #define SSL_INFO_R_LIB_CTX
     Indicates the reference to the library context R_LIB_CTX 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
     The structure that stores the default options and data for SSL handshake operations. More...

    typedef struct ssl_st SSL
     The structure used to perform SSL handshakes. More...

    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 R_CDECL 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 R_CDECL 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_SESSION* R_CDECL SSL_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 R_CDECL 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 R_CDECL SSL_CTX_CERT_VERIFY_CB_T (SSLCERT_STORE_CTX *store_ctx, char *arg)
     The prototype for a user-defined verification routine. More...

    typedef int R_CDECL 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 R_CDECL 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* R_CDECL SSL_TMP_RSA_CB_T (SSL *ssl, int export_type)
     A type of callback function that helps delay temporary RSA key creation. More...

    typedef int R_CDECL SSL_SESSION_CACHE_CB_T (SSL_CTX *ctx, int cmd, SSL_SESSION **sess, void *arg)
     A type of callback function that is invoked for all session cache requests. More...


    Functions

    SSL_SESSION* R_CDECL SSL_SESSION_new (void)
     Creates a new SSL_SESSION structure. More...

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

    int R_CDECL SSL_SESSION_cmp (SSL_SESSION *sessa, SSL_SESSION *sessb)
     Compares the session identifiers of a pair of sessions. More...

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

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

    int R_CDECL 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...

    R_TIME_T* R_CDECL SSL_SESSION_get_time (SSL_SESSION *sess, R_TIME_T *stime)
     Returns the start time of the SSL session's lifetime. More...

    R_TIME_T* R_CDECL SSL_SESSION_set_time (SSL_SESSION *sess, R_TIME_T *stime)
     Sets the beginning time of the SSL session's lifetime. More...

    long R_CDECL SSL_SESSION_get_timeout (SSL_SESSION *sess)
     Returns the lifetime of the session in seconds. More...

    long R_CDECL SSL_SESSION_set_timeout (SSL_SESSION *sess, long tmout)
     Sets a new lifetime for the session in seconds. More...

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

    SSLCERT* R_CDECL SSL_SESSION_get_peer_certificate (SSL_SESSION *sess)
     Returns the peer certificate associated with session passed in at SSL_SESSION sess. More...

    int R_CDECL SSL_SESSION_get_master_key_length (SSL_SESSION *sess)
     Returns the length of the master key associated with session passed in at sess. More...

    unsigned char* R_CDECL SSL_SESSION_get_master_key (SSL_SESSION *sess)
     Returns the master key associated with the session passed in at sess. More...

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

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

    int R_CDECL SSL_SESSION_set_not_reusable (SSL_SESSION *sess)
     Sets the status of an SSL_SESSION to prevent the session from being reused in new connections. More...

    int R_CDECL SSL_SESSION_get_not_reusable (SSL_SESSION *sess)
     Retrieves a flag that indicates if the SSL session is not allowed to be reused. More...

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

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

    BIO* R_CDECL BIO_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 R_CDECL 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 R_CDECL BIO_ssl_shutdown (BIO *bio)
     Closes the SSL connection for the BIO structure bio. More...

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

    int R_CDECL 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...

    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...

    int SSL_in_init (SSL *ssl)
     Indicates whether the SSL handshake is in progress against ssl. More...

    int SSL_in_before (SSL *ssl)
     Indicates whether the SSL handshake is at a state before initialization against ssl. More...

    int SSL_in_connect_init (SSL *ssl)
     Indicates whether the SSL handshake is in client initialization state against ssl. More...

    int SSL_in_accept_init (SSL *ssl)
     Indicates whether the SSL handshake is in server initialization state against 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_clear_explicit_cert_chain (SSL *ssl)
     Removes all certificates in an explicit certificate chain attached to an ssl. 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...

    void R_CDECL 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_T* R_CDECL SSL_CTX_get_info_cb (SSL_CTX *ctx)
     Returns the information callback for the SSL_CTX structure ctx. More...

    int SSL_get_references (SSL *ssl)
     Returns a number of references to the SSL ssl. More...

    long SSL_CTX_get_references (SSL_CTX *ctx)
     Returns number of references to the SSL_CTX ctx. More...

    int SSL_want_nothing (SSL *ssl)
     Returns whether or not the type of operation that was not completed during a non-blocking I/O operation was SSL_NOTHING. More...

    int SSL_want_read (SSL *ssl)
     Returns whether or not the type of operation that was not completed during a non-blocking I/O operation was SSL_READING. More...

    int SSL_want_write (SSL *ssl)
     Returns whether or not the type of operation that was not completed during a non-blocking I/O operation was SSL_WRITING. More...

    int SSL_want_x509_lookup (SSL *ssl)
     Returns whether or not the type of operation that was not completed during a non-blocking I/O operation was SSL_X509_LOOKUP. More...

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

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

    int R_CDECL SSL_CTX_set_cipher_list (SSL_CTX *ctx, char *str)
     Specifies the cipher suites and order for the SSL_CTX ctx. 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 R_CDECL SSL_set_cipher_list (SSL *ssl, char *str)
     Specifies the ciphers to be used by the SSL. More...

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

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

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

    void R_CDECL 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 R_CDECL 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...

    SSLCERT* R_CDECL SSL_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 R_CDECL SSL_get_ciphers_count (SSL *ssl)
     Returns the number of ciphers in the cipher list for the specified ssl. More...

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

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

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

    SSLCERT* R_CDECL SSL_get_certificate (SSL *ssl)
     Returns the current authenticating certificate of the SSL. More...

    SSLCERT_PKEY* R_CDECL SSL_get_privatekey (SSL *ssl)
     Returns the currently active private key of the SSL. More...

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

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

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

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

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

    int R_CDECL SSL_CIPHER_get_valid (SSL_CIPHER *cipher)
     Returns a valid value from the cipher structure. More...

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

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

    int R_CDECL 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 R_CDECL 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 R_CDECL SSL_get_fd (SSL *ssl)
     Retrieves the file descriptor associated with the read BIO of the SSL connection ssl. More...

    SSLCERT* R_CDECL SSL_get_peer_certificate (SSL *ssl)
     Returns the peer certificate of an SSL. More...

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

    long R_CDECL 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...

    void R_CDECL 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...

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

    char* R_CDECL 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* R_CDECL SSL_state_string_long (SSL *ssl)
     Returns a descriptive message indicating the current SSL handshake state for the SSL connection ssl. More...

    char* R_CDECL 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 R_CDECL SSL_CTX_set_verify_depth (SSL_CTX *ssl_ctx, int depth)
     Sets the verification depth for the SSL_CTX. More...

    int R_CDECL 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 R_CDECL SSL_CTX_get_verify_mode (SSL_CTX *ctx)
     Returns the certificate verification mode for the SSL_CTX ctx. More...

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

    void R_CDECL 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_T* R_CDECL SSL_CTX_get_app_verify_cb (SSL_CTX *ctx)
     Returns the application-supplied verification callback associated with the SSL_CTX. More...

    char* R_CDECL 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...

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

    int R_CDECL 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 structure ctx. More...

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

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

    int R_CDECL 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 R_CDECL SSL_check_private_key (SSL *ctx)
     Ensures the identifying certificate and the private key of an SSL structure match. More...

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

    int R_CDECL 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 R_CDECL SSL_use_certificate (SSL *ssl, SSLCERT *x509)
     Binds a certificate x509 to the SSL connection ssl. More...

    int R_CDECL 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...

    SSL* R_CDECL SSL_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 R_CDECL SSL_clear (SSL *ssl)
     Resets all parameters of the SSL structure ssl to their initial state (that is, returns to state 0). More...

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

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

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

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

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

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

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

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

    int R_CDECL 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 R_CDECL SSL_write (SSL *ssl, char *buffer, int num)
     Writes num Bytes from the buffer buf to the SSL connection associated with ssl. More...

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

    SSL_METHOD* R_CDECL SSLv3_server_method (void)
     Specifies the SSL version 3 protocol for servers only. More...

    SSL_METHOD* R_CDECL SSLv3_client_method (void)
     Specifies the SSL version 3 protocol for clients only. More...

    SSL_METHOD* R_CDECL SSLv3_method (void)
     Specifies the SSL version 3 protocol. More...

    SSL_METHOD* R_CDECL TLSv1_method (void)
     Specifies the Transport Layer Security (TLS) version 1 protocol for both clients and servers. More...

    SSL_METHOD* R_CDECL TLSv1_server_method (void)
     Specifies the Transport Layer Security (TLS) version 1 protocol for servers only. More...

    SSL_METHOD* R_CDECL TLSv1_client_method (void)
     Specifies the Transport Layer Security (TLS) version 1 protocol for clients only. More...

    int R_CDECL 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* R_CDECL SSL_alert_type_string_long (int value)
     Returns a textual description of the alert type in string form. More...

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

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

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

    long R_CDECL 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...

    void R_CDECL 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_T*
    R_CDECL 
    SSL_CTX_get_client_cert_cb (SSL_CTX *ctx)
     Returns the application-supplied client certificate callback from the relevant ctx reference. More...

    int R_CDECL SSL_CTX_set_session_cache_cb (SSL_CTX *ctx, SSL_SESSION_CACHE_CB_T *cb)
     Sets the callback which is invoked for all session cache requests. More...

    SSL_SESSION_CACHE_CB_T* R_CDECL SSL_CTX_get_session_cache_cb (SSL_CTX *ctx)
     Returns the callback which is invoked for all session cache requests. More...

    int R_CDECL SSL_CTX_set_session_cache_cb_arg (SSL_CTX *ctx, void *cb_arg)
     Sets a pointer argument that can be accessed by the session cache callback through its argument list. More...

    void* R_CDECL SSL_CTX_get_session_cache_cb_arg (SSL_CTX *ctx)
     Returns the pointer argument that is passed to the session cache callback. More...

    int R_CDECL SSL_CTX_simple_session_cb (SSL_CTX *ctx, int cmd, SSL_SESSION **sess_ptr, void *arg)
     Provides a minimal session cache. More...

    int R_CDECL SSL_CTX_simple_session_init (SSL_SIMPLE_SESSION_CACHE **cache_ptr)
     Initializes the single session cache. More...

    int R_CDECL SSL_CTX_simple_session_final (SSL_SIMPLE_SESSION_CACHE **cache_ptr)
     Finalizes the session cache by clearing all the fields of the session cache and freeing the cache memory. 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 ()
     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 *cb)
     Sets the information callback in the ssl structure by directly accessing the structure. More...

    SSL_INFO_CB_TSSL_get_info_cb (SSL *ssl)
     Returns the information callback reference from ssl by directly accessing the ssl structure. More...

    int SSL_get_verify_mode (SSL *ssl)
     Returns the certificate verification mode by directly accessing the SSL structure. More...

    int SSL_set_verify_mode (SSL *ssl, int mode)
     Sets the certificate verification mode value for the SSL structure by directly accessing the SSL structure. More...

    int SSL_get_verify_depth (SSL *ssl)
     Returns the verify depth value from the SSL structure by directly accessing this field in the SSL structure. More...

    void SSL_set_verify_depth (SSL *ssl, int depth)
     Sets the value of the verify depth in the SSL structure by directly accessing the structure. More...

    void SSL_set_verify_result (SSL *ssl, long verify)
     Sets the certificate verification result value for the SSL structure by directly accessing the verify_result field of the SSL structure. More...

    long SSL_get_verify_result (SSL *ssl)
     Returns the certificate verification result value from the SSL structure by directly accessing the verify_result field of the SSL structure. More...

    SSL_METHODSSL_get_ssl_method (SSL *ssl)
     Returns a reference to the SSL_METHOD structure by directly accessing the ssl structure. More...

    void SSL_set_shutdown (SSL *ssl, int mode)
     Sets the shutdown mode value in the SSL structure by directly accessing the ssl structure. More...

    int SSL_get_shutdown (SSL *ssl)
     Returns the shutdown mode value from the SSL structure by directly accessing the SSL structure. 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 by directly accessing the SSL structure. More...

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

    int SSL_state (SSL *ssl)
     Returns the current state of the SSL handshake by directly accessing the state field of the SSL structure. More...

    int SSL_reuse (SSL *ssl)
     Indicates whether the SSL session identifier is being re-used on the SSL connection ssl. More...

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


    Typedef Documentation

    typedef struct ssl_st SSL
     

    The structure used to perform SSL handshakes. It is constructed from an SSL_CTX, which stores defaults for handshake operations.
    An SSL structure is required for both the client and server.

    typedef struct ssl_ctx_st SSL_CTX
     

    The structure that stores the default options and data for SSL handshake operations. This data includes certificates and private keys.

    typedef int R_CDECL SSL_SESSION_CACHE_CB_T(SSL_CTX *ctx, int cmd, SSL_SESSION **sess, void *arg)
     

    A type of callback function that is invoked for all session cache requests.

    Parameters:
    ctx [In] The SSL_CTX reference.
    cmd [In] A session cache command value. Refer to External Session Cache Command Codes.
    sess [In,Out] A reference to an SSL session pointer. When adding a session to the cache it will refer to valid session data. When deleting a session from the cache it will contain session id data against which to match a cache session. When retrieving a session it will refer to session id data and it will return a reference to the session retrieved from the cache.
    arg [In] A caller-defined pointer argument that has a reference to the session cache structure.
    See also:
    SSL_CTX_set_session_cache_cb() and SSL_CTX_set_session_cache_cb_arg()


    Function Documentation

    long SSL_CTX_get_references SSL_CTX   ctx ;
     

    Returns number of references to the SSL_CTX ctx.

    Parameters:
    ctx [In] The SSL_CTX against which the references are retrieved.
    Returns:
    Number of references to ctx.

    int SSL_get_references SSL   ssl ;
     

    Returns a number of references to the SSL ssl.

    Parameters:
    ssl [In] The SSL against which the references are retrieved.
    Returns:
    Number of references to ssl.


    Copyright (c) 1999-2005 RSA Security Inc. All rights reserved. 072-001001-2100-001-000 - 2.1