ssl 3 2008-05-09 0.9.9-dev OpenSSL
NAME
SSL - OpenSSL SSL/TLS library
LIBRARY
libcrypto, -lcrypto
SYNOPSIS
DESCRIPTION
The OpenSSL ssssll library implements the Secure Sockets Layer (SSL v2/v3) and
Transport Layer Security (TLS v1) protocols. It provides a rich API which is
documented here.
At first the library must be initialized; see
_S_S_L___l_i_b_r_a_r_y___i_n_i_t(3).
Then an SSSSLL__CCTTXX object is created as a framework to establish
TLS/SSL enabled connections (see _S_S_L___C_T_X___n_e_w(3)).
Various options regarding certificates, algorithms etc. can be set
in this object.
When a network connection has been created, it can be assigned to an
SSSSLL object. After the SSSSLL object has been created using
_S_S_L___n_e_w(3), _S_S_L___s_e_t___f_d(3) or
_S_S_L___s_e_t___b_i_o(3) can be used to associate the network
connection with the object.
Then the TLS/SSL handshake is performed using
_S_S_L___a_c_c_e_p_t(3) or _S_S_L___c_o_n_n_e_c_t(3)
respectively.
_S_S_L___r_e_a_d(3) and _S_S_L___w_r_i_t_e(3) are used
to read and write data on the TLS/SSL connection.
_S_S_L___s_h_u_t_d_o_w_n(3) can be used to shut down the
TLS/SSL connection.
DATA STRUCTURES
Currently the OpenSSL ssssll library functions deals with the following data
structures:
-
SSSSLL__MMEETTHHOODD (SSL Method)
That's a dispatch structure describing the internal ssssll library
-
methods/functions which implement the various protocol versions (SSLv1, SSLv2
and TLSv1). It's needed to create an SSSSLL__CCTTXX.
-
SSSSLL__CCIIPPHHEERR (SSL Cipher)
This structure holds the algorithm information for a particular cipher which
-
are a core part of the SSL/TLS protocol. The available ciphers are configured
on a SSSSLL__CCTTXX basis and the actually used ones are then part of the
SSSSLL__SSEESSSSIIOONN.
-
SSSSLL__CCTTXX (SSL Context)
That's the global context structure which is created by a server or client
-
once per program life-time and which holds mainly default values for the
SSSSLL structures which are later created for the connections.
-
SSSSLL__SSEESSSSIIOONN (SSL Session)
This is a structure containing the current TLS/SSL session details for a
-
connection: SSSSLL__CCIIPPHHEERRs, client and server certificates, keys, etc.
-
SSSSLL (SSL Connection)
That's the main SSL/TLS structure which is created by a server or client per
-
established connection. This actually is the core structure in the SSL API.
Under run-time the application usually deals with this structure which has
links to mostly all other structures.
Currently the OpenSSL ssssll library provides the following C header files
containing the prototypes for the data structures and and functions:
-
ssssll..hh
That's the common header file for the SSL/TLS API. Include it into your
-
program to make the API of the ssssll library available. It internally
includes both more private SSL headers and headers from the ccrryyppttoo library.
Whenever you need hard-core details on the internals of the SSL API, look
inside this header file.
-
ssssll22..hh
That's the sub header file dealing with the SSLv2 protocol only.
-
_U_s_u_a_l_l_y _y_o_u _d_o_n_'_t _h_a_v_e _t_o _i_n_c_l_u_d_e _i_t _e_x_p_l_i_c_i_t_l_y _b_e_c_a_u_s_e
_i_t_'_s _a_l_r_e_a_d_y _i_n_c_l_u_d_e_d _b_y _s_s_l_._h.
-
ssssll33..hh
That's the sub header file dealing with the SSLv3 protocol only.
-
_U_s_u_a_l_l_y _y_o_u _d_o_n_'_t _h_a_v_e _t_o _i_n_c_l_u_d_e _i_t _e_x_p_l_i_c_i_t_l_y _b_e_c_a_u_s_e
_i_t_'_s _a_l_r_e_a_d_y _i_n_c_l_u_d_e_d _b_y _s_s_l_._h.
-
ssssll2233..hh
That's the sub header file dealing with the combined use of the SSLv2 and
-
SSLv3 protocols.
_U_s_u_a_l_l_y _y_o_u _d_o_n_'_t _h_a_v_e _t_o _i_n_c_l_u_d_e _i_t _e_x_p_l_i_c_i_t_l_y _b_e_c_a_u_s_e
_i_t_'_s _a_l_r_e_a_d_y _i_n_c_l_u_d_e_d _b_y _s_s_l_._h.
-
ttllss11..hh
That's the sub header file dealing with the TLSv1 protocol only.
-
_U_s_u_a_l_l_y _y_o_u _d_o_n_'_t _h_a_v_e _t_o _i_n_c_l_u_d_e _i_t _e_x_p_l_i_c_i_t_l_y _b_e_c_a_u_s_e
_i_t_'_s _a_l_r_e_a_d_y _i_n_c_l_u_d_e_d _b_y _s_s_l_._h.
API FUNCTIONS
Currently the OpenSSL ssssll library exports 214 API functions.
They are documented in the following:
DDEEAALLIINNGG WWIITTHH PPRROOTTOOCCOOLL MMEETTHHOODDSS
Here we document the various API functions which deal with the SSL/TLS
protocol methods defined in SSSSLL__MMEETTHHOODD structures.
-
const SSL_METHOD *SSSSLLvv22__cclliieenntt__mmeetthhoodd(void);
Constructor for the SSLv2 SSL_METHOD structure for a dedicated client.
-
-
const SSL_METHOD *SSSSLLvv22__sseerrvveerr__mmeetthhoodd(void);
Constructor for the SSLv2 SSL_METHOD structure for a dedicated server.
-
-
const SSL_METHOD *SSSSLLvv22__mmeetthhoodd(void);
Constructor for the SSLv2 SSL_METHOD structure for combined client and server.
-
-
const SSL_METHOD *SSSSLLvv33__cclliieenntt__mmeetthhoodd(void);
Constructor for the SSLv3 SSL_METHOD structure for a dedicated client.
-
-
const SSL_METHOD *SSSSLLvv33__sseerrvveerr__mmeetthhoodd(void);
Constructor for the SSLv3 SSL_METHOD structure for a dedicated server.
-
-
const SSL_METHOD *SSSSLLvv33__mmeetthhoodd(void);
Constructor for the SSLv3 SSL_METHOD structure for combined client and server.
-
-
const SSL_METHOD *TTLLSSvv11__cclliieenntt__mmeetthhoodd(void);
Constructor for the TLSv1 SSL_METHOD structure for a dedicated client.
-
-
const SSL_METHOD *TTLLSSvv11__sseerrvveerr__mmeetthhoodd(void);
Constructor for the TLSv1 SSL_METHOD structure for a dedicated server.
-
-
const SSL_METHOD *TTLLSSvv11__mmeetthhoodd(void);
Constructor for the TLSv1 SSL_METHOD structure for combined client and server.
-
DDEEAALLIINNGG WWIITTHH CCIIPPHHEERRSS
Here we document the various API functions which deal with the SSL/TLS
ciphers defined in SSSSLL__CCIIPPHHEERR structures.
-
char *SSSSLL__CCIIPPHHEERR__ddeessccrriippttiioonn(SSL_CIPHER *cipher, char *buf, int len);
Write a string to _b_u_f (with a maximum size of _l_e_n) containing a human
-
readable description of _c_i_p_h_e_r. Returns _b_u_f.
-
int SSSSLL__CCIIPPHHEERR__ggeett__bbiittss(SSL_CIPHER *cipher, int *alg_bits);
Determine the number of bits in _c_i_p_h_e_r. Because of export crippled ciphers
-
there are two bits: The bits the algorithm supports in general (stored to
_a_l_g___b_i_t_s) and the bits which are actually used (the return value).
-
const char *SSSSLL__CCIIPPHHEERR__ggeett__nnaammee(SSL_CIPHER *cipher);
Return the internal name of _c_i_p_h_e_r as a string. These are the various
-
strings defined by the _S_S_L_2___T_X_T___x_x_x, _S_S_L_3___T_X_T___x_x_x and _T_L_S_1___T_X_T___x_x_x
definitions in the header files.
-
char *SSSSLL__CCIIPPHHEERR__ggeett__vveerrssiioonn(SSL_CIPHER *cipher);
Returns a string like ""TLSv1/SSLv3"" or ""SSLv2"" which indicates the
-
SSL/TLS protocol version to which _c_i_p_h_e_r belongs (i.e. where it was defined
in the specification the first time).
DDEEAALLIINNGG WWIITTHH PPRROOTTOOCCOOLL CCOONNTTEEXXTTSS
Here we document the various API functions which deal with the SSL/TLS
protocol context defined in the SSSSLL__CCTTXX structure.
-
int SSSSLL__CCTTXX__aadddd__cclliieenntt__CCAA(SSL_CTX *ctx, X509 *x);
-
-
long SSSSLL__CCTTXX__aadddd__eexxttrraa__cchhaaiinn__cceerrtt(SSL_CTX *ctx, X509 *x509);
-
-
int SSSSLL__CCTTXX__aadddd__sseessssiioonn(SSL_CTX *ctx, SSL_SESSION *c);
-
-
int SSSSLL__CCTTXX__cchheecckk__pprriivvaattee__kkeeyy(const SSL_CTX *ctx);
-
-
long SSSSLL__CCTTXX__ccttrrll(SSL_CTX *ctx, int cmd, long larg, char *parg);
-
-
void SSSSLL__CCTTXX__fflluusshh__sseessssiioonnss(SSL_CTX *s, long t);
-
-
void SSSSLL__CCTTXX__ffrreeee(SSL_CTX *a);
-
-
char *SSSSLL__CCTTXX__ggeett__aapppp__ddaattaa(SSL_CTX *ctx);
-
-
X509_STORE *SSSSLL__CCTTXX__ggeett__cceerrtt__ssttoorree(SSL_CTX *ctx);
-
-
STACK *SSSSLL__CCTTXX__ggeett__cclliieenntt__CCAA__lliisstt(const SSL_CTX *ctx);
-
-
int (*SSSSLL__CCTTXX__ggeett__cclliieenntt__cceerrtt__ccbb(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey);
-
-
char *SSSSLL__CCTTXX__ggeett__eexx__ddaattaa(const SSL_CTX *s, int idx);
-
-
int SSSSLL__CCTTXX__ggeett__eexx__nneeww__iinnddeexx(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
-
-
void (*SSSSLL__CCTTXX__ggeett__iinnffoo__ccaallllbbaacckk(SSL_CTX *ctx))(SSL *ssl, int cb, int ret);
-
-
int SSSSLL__CCTTXX__ggeett__qquuiieett__sshhuuttddoowwnn(const SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__ggeett__sseessssiioonn__ccaacchhee__mmooddee(SSL_CTX *ctx);
-
-
long SSSSLL__CCTTXX__ggeett__ttiimmeeoouutt(const SSL_CTX *ctx);
-
-
int (*SSSSLL__CCTTXX__ggeett__vveerriiffyy__ccaallllbbaacckk(const SSL_CTX *ctx))(int ok, X509_STORE_CTX *ctx);
-
-
int SSSSLL__CCTTXX__ggeett__vveerriiffyy__mmooddee(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__llooaadd__vveerriiffyy__llooccaattiioonnss(SSL_CTX *ctx, char *CAfile, char *CApath);
-
-
long SSSSLL__CCTTXX__nneeeedd__ttmmpp__RRSSAA(SSL_CTX *ctx);
-
-
SSL_CTX *SSSSLL__CCTTXX__nneeww(const SSL_METHOD *meth);
-
-
int SSSSLL__CCTTXX__rreemmoovvee__sseessssiioonn(SSL_CTX *ctx, SSL_SESSION *c);
-
-
int SSSSLL__CCTTXX__sseessss__aacccceepptt(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__aacccceepptt__ggoooodd(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__aacccceepptt__rreenneeggoottiiaattee(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__ccaacchhee__ffuullll(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__ccbb__hhiittss(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__ccoonnnneecctt(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__ccoonnnneecctt__ggoooodd(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__ccoonnnneecctt__rreenneeggoottiiaattee(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__ggeett__ccaacchhee__ssiizzee(SSL_CTX *ctx);
-
-
SSL_SESSION *(*SSSSLL__CCTTXX__sseessss__ggeett__ggeett__ccbb(SSL_CTX *ctx))(SSL *ssl, unsigned char *data, int len, int *copy);
-
-
int (*SSSSLL__CCTTXX__sseessss__ggeett__nneeww__ccbb(SSL_CTX *ctx)(SSL *ssl, SSL_SESSION *sess);
-
-
void (*SSSSLL__CCTTXX__sseessss__ggeett__rreemmoovvee__ccbb(SSL_CTX *ctx)(SSL_CTX *ctx, SSL_SESSION *sess);
-
-
int SSSSLL__CCTTXX__sseessss__hhiittss(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__mmiisssseess(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseessss__nnuummbbeerr(SSL_CTX *ctx);
-
-
void SSSSLL__CCTTXX__sseessss__sseett__ccaacchhee__ssiizzee(SSL_CTX *ctx,t);
-
-
void SSSSLL__CCTTXX__sseessss__sseett__ggeett__ccbb(SSL_CTX *ctx, SSL_SESSION *(*cb)(SSL *ssl, unsigned char *data, int len, int *copy));
-
-
void SSSSLL__CCTTXX__sseessss__sseett__nneeww__ccbb(SSL_CTX *ctx, int (*cb)(SSL *ssl, SSL_SESSION *sess));
-
-
void SSSSLL__CCTTXX__sseessss__sseett__rreemmoovvee__ccbb(SSL_CTX *ctx, void (*cb)(SSL_CTX *ctx, SSL_SESSION *sess));
-
-
int SSSSLL__CCTTXX__sseessss__ttiimmeeoouuttss(SSL_CTX *ctx);
-
-
LHASH *SSSSLL__CCTTXX__sseessssiioonnss(SSL_CTX *ctx);
-
-
void SSSSLL__CCTTXX__sseett__aapppp__ddaattaa(SSL_CTX *ctx, void *arg);
-
-
void SSSSLL__CCTTXX__sseett__cceerrtt__ssttoorree(SSL_CTX *ctx, X509_STORE *cs);
-
-
void SSSSLL__CCTTXX__sseett__cceerrtt__vveerriiffyy__ccbb(SSL_CTX *ctx, int (*cb)(), char *arg)
-
-
int SSSSLL__CCTTXX__sseett__cciipphheerr__lliisstt(SSL_CTX *ctx, char *str);
-
-
void SSSSLL__CCTTXX__sseett__cclliieenntt__CCAA__lliisstt(SSL_CTX *ctx, STACK *list);
-
-
void SSSSLL__CCTTXX__sseett__cclliieenntt__cceerrtt__ccbb(SSL_CTX *ctx, int (*cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey));
-
-
void SSSSLL__CCTTXX__sseett__ddeeffaauulltt__ppaasssswwdd__ccbb(SSL_CTX *ctx, int (*cb);(void))
-
-
void SSSSLL__CCTTXX__sseett__ddeeffaauulltt__rreeaadd__aahheeaadd(SSL_CTX *ctx, int m);
-
-
int SSSSLL__CCTTXX__sseett__ddeeffaauulltt__vveerriiffyy__ppaatthhss(SSL_CTX *ctx);
-
-
int SSSSLL__CCTTXX__sseett__eexx__ddaattaa(SSL_CTX *s, int idx, char *arg);
-
-
void SSSSLL__CCTTXX__sseett__iinnffoo__ccaallllbbaacckk(SSL_CTX *ctx, void (*cb)(SSL *ssl, int cb, int ret));
-
-
void SSSSLL__CCTTXX__sseett__mmssgg__ccaallllbbaacckk(SSL_CTX *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg));
-
-
void SSSSLL__CCTTXX__sseett__mmssgg__ccaallllbbaacckk__aarrgg(SSL_CTX *ctx, void *arg);
-
-
void SSSSLL__CCTTXX__sseett__ooppttiioonnss(SSL_CTX *ctx, unsigned long op);
-
-
void SSSSLL__CCTTXX__sseett__qquuiieett__sshhuuttddoowwnn(SSL_CTX *ctx, int mode);
-
-
void SSSSLL__CCTTXX__sseett__sseessssiioonn__ccaacchhee__mmooddee(SSL_CTX *ctx, int mode);
-
-
int SSSSLL__CCTTXX__sseett__ssssll__vveerrssiioonn(SSL_CTX *ctx, const SSL_METHOD *meth);
-
-
void SSSSLL__CCTTXX__sseett__ttiimmeeoouutt(SSL_CTX *ctx, long t);
-
-
long SSSSLL__CCTTXX__sseett__ttmmpp__ddhh(SSL_CTX* ctx, DH *dh);
-
-
long SSSSLL__CCTTXX__sseett__ttmmpp__ddhh__ccaallllbbaacckk(SSL_CTX *ctx, DH *(*cb)(void));
-
-
long SSSSLL__CCTTXX__sseett__ttmmpp__rrssaa(SSL_CTX *ctx, RSA *rsa);
-
-
SSL_CTX_set_tmp_rsa_callback
"long SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, RSA *(*cb)(SSL *ssl, int export, int keylength));"
-
Sets the callback which will be called when a temporary private key is
required. The ""eexxppoorrtt"" flag will be set if the reason for needing
a temp key is that an export ciphersuite is in use, in which case,
""kkeeyylleennggtthh"" will contain the required keylength in bits. Generate a key of
appropriate size (using ???) and return it.
-
SSL_set_tmp_rsa_callback
long SSSSLL__sseett__ttmmpp__rrssaa__ccaallllbbaacckk(SSL *ssl, RSA *(*cb)(SSL *ssl, int export, int keylength));
-
The same as SSSSLL__CCTTXX__sseett__ttmmpp__rrssaa__ccaallllbbaacckk, except it operates on an SSL
session instead of a context.
-
void SSSSLL__CCTTXX__sseett__vveerriiffyy(SSL_CTX *ctx, int mode, int (*cb);(void))
-
-
int SSSSLL__CCTTXX__uussee__PPrriivvaatteeKKeeyy(SSL_CTX *ctx, EVP_PKEY *pkey);
-
-
int SSSSLL__CCTTXX__uussee__PPrriivvaatteeKKeeyy__AASSNN11(int type, SSL_CTX *ctx, unsigned char *d, long len);
-
-
int SSSSLL__CCTTXX__uussee__PPrriivvaatteeKKeeyy__ffiillee(SSL_CTX *ctx, char *file, int type);
-
-
int SSSSLL__CCTTXX__uussee__RRSSAAPPrriivvaatteeKKeeyy(SSL_CTX *ctx, RSA *rsa);
-
-
int SSSSLL__CCTTXX__uussee__RRSSAAPPrriivvaatteeKKeeyy__AASSNN11(SSL_CTX *ctx, unsigned char *d, long len);
-
-
int SSSSLL__CCTTXX__uussee__RRSSAAPPrriivvaatteeKKeeyy__ffiillee(SSL_CTX *ctx, char *file, int type);
-
-
int SSSSLL__CCTTXX__uussee__cceerrttiiffiiccaattee(SSL_CTX *ctx, X509 *x);
-
-
int SSSSLL__CCTTXX__uussee__cceerrttiiffiiccaattee__AASSNN11(SSL_CTX *ctx, int len, unsigned char *d);
-
-
int SSSSLL__CCTTXX__uussee__cceerrttiiffiiccaattee__ffiillee(SSL_CTX *ctx, char *file, int type);
-
-
void SSSSLL__CCTTXX__sseett__ppsskk__cclliieenntt__ccaallllbbaacckk(SSL_CTX *ctx, unsigned int (*callback)(SSL *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len));
-
-
int SSSSLL__CCTTXX__uussee__ppsskk__iiddeennttiittyy__hhiinntt(SSL_CTX *ctx, const char *hint);
-
-
void SSSSLL__CCTTXX__sseett__ppsskk__sseerrvveerr__ccaallllbbaacckk(SSL_CTX *ctx, unsigned int (*callback)(SSL *ssl, const char *identity, unsigned char *psk, int max_psk_len));
-
DDEEAALLIINNGG WWIITTHH SSEESSSSIIOONNSS
Here we document the various API functions which deal with the SSL/TLS
sessions defined in the SSSSLL__SSEESSSSIIOONN structures.
-
int SSSSLL__SSEESSSSIIOONN__ccmmpp(const SSL_SESSION *a, const SSL_SESSION *b);
-
-
void SSSSLL__SSEESSSSIIOONN__ffrreeee(SSL_SESSION *ss);
-
-
char *SSSSLL__SSEESSSSIIOONN__ggeett__aapppp__ddaattaa(SSL_SESSION *s);
-
-
char *SSSSLL__SSEESSSSIIOONN__ggeett__eexx__ddaattaa(const SSL_SESSION *s, int idx);
-
-
int SSSSLL__SSEESSSSIIOONN__ggeett__eexx__nneeww__iinnddeexx(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
-
-
long SSSSLL__SSEESSSSIIOONN__ggeett__ttiimmee(const SSL_SESSION *s);
-
-
long SSSSLL__SSEESSSSIIOONN__ggeett__ttiimmeeoouutt(const SSL_SESSION *s);
-
-
unsigned long SSSSLL__SSEESSSSIIOONN__hhaasshh(const SSL_SESSION *a);
-
-
SSL_SESSION *SSSSLL__SSEESSSSIIOONN__nneeww(void);
-
-
int SSSSLL__SSEESSSSIIOONN__pprriinntt(BIO *bp, const SSL_SESSION *x);
-
-
int SSSSLL__SSEESSSSIIOONN__pprriinntt__ffpp(FILE *fp, const SSL_SESSION *x);
-
-
void SSSSLL__SSEESSSSIIOONN__sseett__aapppp__ddaattaa(SSL_SESSION *s, char *a);
-
-
int SSSSLL__SSEESSSSIIOONN__sseett__eexx__ddaattaa(SSL_SESSION *s, int idx, char *arg);
-
-
long SSSSLL__SSEESSSSIIOONN__sseett__ttiimmee(SSL_SESSION *s, long t);
-
-
long SSSSLL__SSEESSSSIIOONN__sseett__ttiimmeeoouutt(SSL_SESSION *s, long t);
-
DDEEAALLIINNGG WWIITTHH CCOONNNNEECCTTIIOONNSS
Here we document the various API functions which deal with the SSL/TLS
connection defined in the SSSSLL structure.
-
int SSSSLL__aacccceepptt(SSL *ssl);
-
-
int SSSSLL__aadddd__ddiirr__cceerrtt__ssuubbjjeeccttss__ttoo__ssttaacckk(STACK *stack, const char *dir);
-
-
int SSSSLL__aadddd__ffiillee__cceerrtt__ssuubbjjeeccttss__ttoo__ssttaacckk(STACK *stack, const char *file);
-
-
int SSSSLL__aadddd__cclliieenntt__CCAA(SSL *ssl, X509 *x);
-
-
char *SSSSLL__aalleerrtt__ddeesscc__ssttrriinngg(int value);
-
-
char *SSSSLL__aalleerrtt__ddeesscc__ssttrriinngg__lloonngg(int value);
-
-
char *SSSSLL__aalleerrtt__ttyyppee__ssttrriinngg(int value);
-
-
char *SSSSLL__aalleerrtt__ttyyppee__ssttrriinngg__lloonngg(int value);
-
-
int SSSSLL__cchheecckk__pprriivvaattee__kkeeyy(const SSL *ssl);
-
-
void SSSSLL__cclleeaarr(SSL *ssl);
-
-
long SSSSLL__cclleeaarr__nnuumm__rreenneeggoottiiaattiioonnss(SSL *ssl);
-
-
int SSSSLL__ccoonnnneecctt(SSL *ssl);
-
-
void SSSSLL__ccooppyy__sseessssiioonn__iidd(SSL *t, const SSL *f);
-
-
long SSSSLL__ccttrrll(SSL *ssl, int cmd, long larg, char *parg);
-
-
int SSSSLL__ddoo__hhaannddsshhaakkee(SSL *ssl);
-
-
SSL *SSSSLL__dduupp(SSL *ssl);
-
-
STACK *SSSSLL__dduupp__CCAA__lliisstt(STACK *sk);
-
-
void SSSSLL__ffrreeee(SSL *ssl);
-
-
SSL_CTX *SSSSLL__ggeett__SSSSLL__CCTTXX(const SSL *ssl);
-
-
char *SSSSLL__ggeett__aapppp__ddaattaa(SSL *ssl);
-
-
X509 *SSSSLL__ggeett__cceerrttiiffiiccaattee(const SSL *ssl);
-
-
const char *SSSSLL__ggeett__cciipphheerr(const SSL *ssl);
-
-
int SSSSLL__ggeett__cciipphheerr__bbiittss(const SSL *ssl, int *alg_bits);
-
-
char *SSSSLL__ggeett__cciipphheerr__lliisstt(const SSL *ssl, int n);
-
-
char *SSSSLL__ggeett__cciipphheerr__nnaammee(const SSL *ssl);
-
-
char *SSSSLL__ggeett__cciipphheerr__vveerrssiioonn(const SSL *ssl);
-
-
STACK *SSSSLL__ggeett__cciipphheerrss(const SSL *ssl);
-
-
STACK *SSSSLL__ggeett__cclliieenntt__CCAA__lliisstt(const SSL *ssl);
-
-
SSL_CIPHER *SSSSLL__ggeett__ccuurrrreenntt__cciipphheerr(SSL *ssl);
-
-
long SSSSLL__ggeett__ddeeffaauulltt__ttiimmeeoouutt(const SSL *ssl);
-
-
int SSSSLL__ggeett__eerrrroorr(const SSL *ssl, int i);
-
-
char *SSSSLL__ggeett__eexx__ddaattaa(const SSL *ssl, int idx);
-
-
int SSSSLL__ggeett__eexx__ddaattaa__XX550099__SSTTOORREE__CCTTXX__iiddxx(void);
-
-
int SSSSLL__ggeett__eexx__nneeww__iinnddeexx(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
-
-
int SSSSLL__ggeett__ffdd(const SSL *ssl);
-
-
void (*SSSSLL__ggeett__iinnffoo__ccaallllbbaacckk(const SSL *ssl);)()
-
-
STACK *SSSSLL__ggeett__ppeeeerr__cceerrtt__cchhaaiinn(const SSL *ssl);
-
-
X509 *SSSSLL__ggeett__ppeeeerr__cceerrttiiffiiccaattee(const SSL *ssl);
-
-
EVP_PKEY *SSSSLL__ggeett__pprriivvaatteekkeeyy(SSL *ssl);
-
-
int SSSSLL__ggeett__qquuiieett__sshhuuttddoowwnn(const SSL *ssl);
-
-
BIO *SSSSLL__ggeett__rrbbiioo(const SSL *ssl);
-
-
int SSSSLL__ggeett__rreeaadd__aahheeaadd(const SSL *ssl);
-
-
SSL_SESSION *SSSSLL__ggeett__sseessssiioonn(const SSL *ssl);
-
-
char *SSSSLL__ggeett__sshhaarreedd__cciipphheerrss(const SSL *ssl, char *buf, int len);
-
-
int SSSSLL__ggeett__sshhuuttddoowwnn(const SSL *ssl);
-
-
const SSL_METHOD *SSSSLL__ggeett__ssssll__mmeetthhoodd(SSL *ssl);
-
-
int SSSSLL__ggeett__ssttaattee(const SSL *ssl);
-
-
long SSSSLL__ggeett__ttiimmee(const SSL *ssl);
-
-
long SSSSLL__ggeett__ttiimmeeoouutt(const SSL *ssl);
-
-
int (*SSSSLL__ggeett__vveerriiffyy__ccaallllbbaacckk(const SSL *ssl))(int,X509_STORE_CTX *)
-
-
int SSSSLL__ggeett__vveerriiffyy__mmooddee(const SSL *ssl);
-
-
long SSSSLL__ggeett__vveerriiffyy__rreessuulltt(const SSL *ssl);
-
-
char *SSSSLL__ggeett__vveerrssiioonn(const SSL *ssl);
-
-
BIO *SSSSLL__ggeett__wwbbiioo(const SSL *ssl);
-
-
int SSSSLL__iinn__aacccceepptt__iinniitt(SSL *ssl);
-
-
int SSSSLL__iinn__bbeeffoorree(SSL *ssl);
-
-
int SSSSLL__iinn__ccoonnnneecctt__iinniitt(SSL *ssl);
-
-
int SSSSLL__iinn__iinniitt(SSL *ssl);
-
-
int SSSSLL__iiss__iinniitt__ffiinniisshheedd(SSL *ssl);
-
-
STACK *SSSSLL__llooaadd__cclliieenntt__CCAA__ffiillee(char *file);
-
-
void SSSSLL__llooaadd__eerrrroorr__ssttrriinnggss(void);
-
-
SSL *SSSSLL__nneeww(SSL_CTX *ctx);
-
-
long SSSSLL__nnuumm__rreenneeggoottiiaattiioonnss(SSL *ssl);
-
-
int SSSSLL__ppeeeekk(SSL *ssl, void *buf, int num);
-
-
int SSSSLL__ppeennddiinngg(const SSL *ssl);
-
-
int SSSSLL__rreeaadd(SSL *ssl, void *buf, int num);
-
-
int SSSSLL__rreenneeggoottiiaattee(SSL *ssl);
-
-
char *SSSSLL__rrssttaattee__ssttrriinngg(SSL *ssl);
-
-
char *SSSSLL__rrssttaattee__ssttrriinngg__lloonngg(SSL *ssl);
-
-
long SSSSLL__sseessssiioonn__rreeuusseedd(SSL *ssl);
-
-
void SSSSLL__sseett__aacccceepptt__ssttaattee(SSL *ssl);
-
-
void SSSSLL__sseett__aapppp__ddaattaa(SSL *ssl, char *arg);
-
-
void SSSSLL__sseett__bbiioo(SSL *ssl, BIO *rbio, BIO *wbio);
-
-
int SSSSLL__sseett__cciipphheerr__lliisstt(SSL *ssl, char *str);
-
-
void SSSSLL__sseett__cclliieenntt__CCAA__lliisstt(SSL *ssl, STACK *list);
-
-
void SSSSLL__sseett__ccoonnnneecctt__ssttaattee(SSL *ssl);
-
-
int SSSSLL__sseett__eexx__ddaattaa(SSL *ssl, int idx, char *arg);
-
-
int SSSSLL__sseett__ffdd(SSL *ssl, int fd);
-
-
void SSSSLL__sseett__iinnffoo__ccaallllbbaacckk(SSL *ssl, void (*cb);(void))
-
-
void SSSSLL__sseett__mmssgg__ccaallllbbaacckk(SSL *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg));
-
-
void SSSSLL__sseett__mmssgg__ccaallllbbaacckk__aarrgg(SSL *ctx, void *arg);
-
-
void SSSSLL__sseett__ooppttiioonnss(SSL *ssl, unsigned long op);
-
-
void SSSSLL__sseett__qquuiieett__sshhuuttddoowwnn(SSL *ssl, int mode);
-
-
void SSSSLL__sseett__rreeaadd__aahheeaadd(SSL *ssl, int yes);
-
-
int SSSSLL__sseett__rrffdd(SSL *ssl, int fd);
-
-
int SSSSLL__sseett__sseessssiioonn(SSL *ssl, SSL_SESSION *session);
-
-
void SSSSLL__sseett__sshhuuttddoowwnn(SSL *ssl, int mode);
-
-
int SSSSLL__sseett__ssssll__mmeetthhoodd(SSL *ssl, const SSL_METHOD *meth);
-
-
void SSSSLL__sseett__ttiimmee(SSL *ssl, long t);
-
-
void SSSSLL__sseett__ttiimmeeoouutt(SSL *ssl, long t);
-
-
void SSSSLL__sseett__vveerriiffyy(SSL *ssl, int mode, int (*callback);(void))
-
-
void SSSSLL__sseett__vveerriiffyy__rreessuulltt(SSL *ssl, long arg);
-
-
int SSSSLL__sseett__wwffdd(SSL *ssl, int fd);
-
-
int SSSSLL__sshhuuttddoowwnn(SSL *ssl);
-
-
int SSSSLL__ssttaattee(const SSL *ssl);
-
-
char *SSSSLL__ssttaattee__ssttrriinngg(const SSL *ssl);
-
-
char *SSSSLL__ssttaattee__ssttrriinngg__lloonngg(const SSL *ssl);
-
-
long SSSSLL__ttoottaall__rreenneeggoottiiaattiioonnss(SSL *ssl);
-
-
int SSSSLL__uussee__PPrriivvaatteeKKeeyy(SSL *ssl, EVP_PKEY *pkey);
-
-
int SSSSLL__uussee__PPrriivvaatteeKKeeyy__AASSNN11(int type, SSL *ssl, unsigned char *d, long len);
-
-
int SSSSLL__uussee__PPrriivvaatteeKKeeyy__ffiillee(SSL *ssl, char *file, int type);
-
-
int SSSSLL__uussee__RRSSAAPPrriivvaatteeKKeeyy(SSL *ssl, RSA *rsa);
-
-
int SSSSLL__uussee__RRSSAAPPrriivvaatteeKKeeyy__AASSNN11(SSL *ssl, unsigned char *d, long len);
-
-
int SSSSLL__uussee__RRSSAAPPrriivvaatteeKKeeyy__ffiillee(SSL *ssl, char *file, int type);
-
-
int SSSSLL__uussee__cceerrttiiffiiccaattee(SSL *ssl, X509 *x);
-
-
int SSSSLL__uussee__cceerrttiiffiiccaattee__AASSNN11(SSL *ssl, int len, unsigned char *d);
-
-
int SSSSLL__uussee__cceerrttiiffiiccaattee__ffiillee(SSL *ssl, char *file, int type);
-
-
int SSSSLL__vveerrssiioonn(const SSL *ssl);
-
-
int SSSSLL__wwaanntt(const SSL *ssl);
-
-
int SSSSLL__wwaanntt__nnootthhiinngg(const SSL *ssl);
-
-
int SSSSLL__wwaanntt__rreeaadd(const SSL *ssl);
-
-
int SSSSLL__wwaanntt__wwrriittee(const SSL *ssl);
-
-
int SSSSLL__wwaanntt__xx550099__llooookkuupp(const SSL *ssl);
-
-
int SSSSLL__wwrriittee(SSL *ssl, const void *buf, int num);
-
-
void SSSSLL__sseett__ppsskk__cclliieenntt__ccaallllbbaacckk(SSL *ssl, unsigned int (*callback)(SSL *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len));
-
-
int SSSSLL__uussee__ppsskk__iiddeennttiittyy__hhiinntt(SSL *ssl, const char *hint);
-
-
void SSSSLL__sseett__ppsskk__sseerrvveerr__ccaallllbbaacckk(SSL *ssl, unsigned int (*callback)(SSL *ssl, const char *identity, unsigned char *psk, int max_psk_len));
-
-
const char *SSSSLL__ggeett__ppsskk__iiddeennttiittyy__hhiinntt(SSL *ssl);
-
-
const char *SSSSLL__ggeett__ppsskk__iiddeennttiittyy(SSL *ssl);
SEE ALSO
_o_p_e_n_s_s_l(1), _c_r_y_p_t_o(3),
_S_S_L___a_c_c_e_p_t(3), _S_S_L___c_l_e_a_r(3),
_S_S_L___c_o_n_n_e_c_t(3),
_S_S_L___C_I_P_H_E_R___g_e_t___n_a_m_e(3),
_S_S_L___C_O_M_P___a_d_d___c_o_m_p_r_e_s_s_i_o_n___m_e_t_h_o_d(3),
_S_S_L___C_T_X___a_d_d___e_x_t_r_a___c_h_a_i_n___c_e_r_t(3),
_S_S_L___C_T_X___a_d_d___s_e_s_s_i_o_n(3),
_S_S_L___C_T_X___c_t_r_l(3),
_S_S_L___C_T_X___f_l_u_s_h___s_e_s_s_i_o_n_s(3),
_S_S_L___C_T_X___g_e_t___e_x___n_e_w___i_n_d_e_x(3),
_S_S_L___C_T_X___g_e_t___v_e_r_i_f_y___m_o_d_e(3),
_S_S_L___C_T_X___l_o_a_d___v_e_r_i_f_y___l_o_c_a_t_i_o_n_s(3)
_S_S_L___C_T_X___n_e_w(3),
_S_S_L___C_T_X___s_e_s_s___n_u_m_b_e_r(3),
_S_S_L___C_T_X___s_e_s_s___s_e_t___c_a_c_h_e___s_i_z_e(3),
_S_S_L___C_T_X___s_e_s_s___s_e_t___g_e_t___c_b(3),
_S_S_L___C_T_X___s_e_s_s_i_o_n_s(3),
_S_S_L___C_T_X___s_e_t___c_e_r_t___s_t_o_r_e(3),
_S_S_L___C_T_X___s_e_t___c_e_r_t___v_e_r_i_f_y___c_a_l_l_b_a_c_k(3),
_S_S_L___C_T_X___s_e_t___c_i_p_h_e_r___l_i_s_t(3),
_S_S_L___C_T_X___s_e_t___c_l_i_e_n_t___C_A___l_i_s_t(3),
_S_S_L___C_T_X___s_e_t___c_l_i_e_n_t___c_e_r_t___c_b(3),
_S_S_L___C_T_X___s_e_t___d_e_f_a_u_l_t___p_a_s_s_w_d___c_b(3),
_S_S_L___C_T_X___s_e_t___g_e_n_e_r_a_t_e___s_e_s_s_i_o_n___i_d(3),
_S_S_L___C_T_X___s_e_t___i_n_f_o___c_a_l_l_b_a_c_k(3),
_S_S_L___C_T_X___s_e_t___m_a_x___c_e_r_t___l_i_s_t(3),
_S_S_L___C_T_X___s_e_t___m_o_d_e(3),
_S_S_L___C_T_X___s_e_t___m_s_g___c_a_l_l_b_a_c_k(3),
_S_S_L___C_T_X___s_e_t___o_p_t_i_o_n_s(3),
_S_S_L___C_T_X___s_e_t___q_u_i_e_t___s_h_u_t_d_o_w_n(3),
_S_S_L___C_T_X___s_e_t___s_e_s_s_i_o_n___c_a_c_h_e___m_o_d_e(3),
_S_S_L___C_T_X___s_e_t___s_e_s_s_i_o_n___i_d___c_o_n_t_e_x_t(3),
_S_S_L___C_T_X___s_e_t___s_s_l___v_e_r_s_i_o_n(3),
_S_S_L___C_T_X___s_e_t___t_i_m_e_o_u_t(3),
_S_S_L___C_T_X___s_e_t___t_m_p___r_s_a___c_a_l_l_b_a_c_k(3),
_S_S_L___C_T_X___s_e_t___t_m_p___d_h___c_a_l_l_b_a_c_k(3),
_S_S_L___C_T_X___s_e_t___v_e_r_i_f_y(3),
_S_S_L___C_T_X___u_s_e___c_e_r_t_i_f_i_c_a_t_e(3),
_S_S_L___a_l_e_r_t___t_y_p_e___s_t_r_i_n_g(3),
_S_S_L___d_o___h_a_n_d_s_h_a_k_e(3),
_S_S_L___g_e_t___S_S_L___C_T_X(3),
_S_S_L___g_e_t___c_i_p_h_e_r_s(3),
_S_S_L___g_e_t___c_l_i_e_n_t___C_A___l_i_s_t(3),
_S_S_L___g_e_t___d_e_f_a_u_l_t___t_i_m_e_o_u_t(3),
_S_S_L___g_e_t___e_r_r_o_r(3),
_S_S_L___g_e_t___e_x___d_a_t_a___X_5_0_9___S_T_O_R_E___C_T_X___i_d_x(3),
_S_S_L___g_e_t___e_x___n_e_w___i_n_d_e_x(3),
_S_S_L___g_e_t___f_d(3),
_S_S_L___g_e_t___p_e_e_r___c_e_r_t___c_h_a_i_n(3),
_S_S_L___g_e_t___r_b_i_o(3),
_S_S_L___g_e_t___s_e_s_s_i_o_n(3),
_S_S_L___g_e_t___v_e_r_i_f_y___r_e_s_u_l_t(3),
_S_S_L___g_e_t___v_e_r_s_i_o_n(3),
_S_S_L___l_i_b_r_a_r_y___i_n_i_t(3),
_S_S_L___l_o_a_d___c_l_i_e_n_t___C_A___f_i_l_e(3),
_S_S_L___n_e_w(3),
_S_S_L___p_e_n_d_i_n_g(3),
_S_S_L___r_e_a_d(3),
_S_S_L___r_s_t_a_t_e___s_t_r_i_n_g(3),
_S_S_L___s_e_s_s_i_o_n___r_e_u_s_e_d(3),
_S_S_L___s_e_t___b_i_o(3),
_S_S_L___s_e_t___c_o_n_n_e_c_t___s_t_a_t_e(3),
_S_S_L___s_e_t___f_d(3),
_S_S_L___s_e_t___s_e_s_s_i_o_n(3),
_S_S_L___s_e_t___s_h_u_t_d_o_w_n(3),
_S_S_L___s_h_u_t_d_o_w_n(3),
_S_S_L___s_t_a_t_e___s_t_r_i_n_g(3),
_S_S_L___w_a_n_t(3),
_S_S_L___w_r_i_t_e(3),
_S_S_L___S_E_S_S_I_O_N___f_r_e_e(3),
_S_S_L___S_E_S_S_I_O_N___g_e_t___e_x___n_e_w___i_n_d_e_x(3),
_S_S_L___S_E_S_S_I_O_N___g_e_t___t_i_m_e(3),
_d_2_i___S_S_L___S_E_S_S_I_O_N(3),
_S_S_L___C_T_X___s_e_t___p_s_k___c_l_i_e_n_t___c_a_l_l_b_a_c_k(3),
_S_S_L___C_T_X___u_s_e___p_s_k___i_d_e_n_t_i_t_y___h_i_n_t(3),
_S_S_L___g_e_t___p_s_k___i_d_e_n_t_i_t_y(3)
HISTORY
The _s_s_l(3) document appeared in OpenSSL 0.9.2