1ssl(3) OpenSSL ssl(3)
2
3
4
6 SSL - OpenSSL SSL/TLS library
7
10 The OpenSSL ssl library implements the Secure Sockets Layer (SSL v2/v3)
11 and Transport Layer Security (TLS v1) protocols. It provides a rich API
12 which is documented here.
13
14 At first the library must be initialized; see SSL_library_init(3).
15
16 Then an SSL_CTX object is created as a framework to establish TLS/SSL
17 enabled connections (see SSL_CTX_new(3)). Various options regarding
18 certificates, algorithms etc. can be set in this object.
19
20 When a network connection has been created, it can be assigned to an
21 SSL object. After the SSL object has been created using SSL_new(3),
22 SSL_set_fd(3) or SSL_set_bio(3) can be used to associate the network
23 connection with the object.
24
25 Then the TLS/SSL handshake is performed using SSL_accept(3) or SSL_con‐
26 nect(3) respectively. SSL_read(3) and SSL_write(3) are used to read
27 and write data on the TLS/SSL connection. SSL_shutdown(3) can be used
28 to shut down the TLS/SSL connection.
29
31 Currently the OpenSSL ssl library functions deals with the following
32 data structures:
33
34 SSL_METHOD (SSL Method)
35 That's a dispatch structure describing the internal ssl library
36 methods/functions which implement the various protocol versions
37 (SSLv1, SSLv2 and TLSv1). It's needed to create an SSL_CTX.
38
39 SSL_CIPHER (SSL Cipher)
40 This structure holds the algorithm information for a particular
41 cipher which are a core part of the SSL/TLS protocol. The available
42 ciphers are configured on a SSL_CTX basis and the actually used
43 ones are then part of the SSL_SESSION.
44
45 SSL_CTX (SSL Context)
46 That's the global context structure which is created by a server or
47 client once per program life-time and which holds mainly default
48 values for the SSL structures which are later created for the con‐
49 nections.
50
51 SSL_SESSION (SSL Session)
52 This is a structure containing the current TLS/SSL session details
53 for a connection: SSL_CIPHERs, client and server certificates,
54 keys, etc.
55
56 SSL (SSL Connection)
57 That's the main SSL/TLS structure which is created by a server or
58 client per established connection. This actually is the core struc‐
59 ture in the SSL API. Under run-time the application usually deals
60 with this structure which has links to mostly all other structures.
61
63 Currently the OpenSSL ssl library provides the following C header files
64 containing the prototypes for the data structures and and functions:
65
66 ssl.h
67 That's the common header file for the SSL/TLS API. Include it into
68 your program to make the API of the ssl library available. It
69 internally includes both more private SSL headers and headers from
70 the crypto library. Whenever you need hard-core details on the
71 internals of the SSL API, look inside this header file.
72
73 ssl2.h
74 That's the sub header file dealing with the SSLv2 protocol only.
75 Usually you don't have to include it explicitly because it's
76 already included by ssl.h.
77
78 ssl3.h
79 That's the sub header file dealing with the SSLv3 protocol only.
80 Usually you don't have to include it explicitly because it's
81 already included by ssl.h.
82
83 ssl23.h
84 That's the sub header file dealing with the combined use of the
85 SSLv2 and SSLv3 protocols. Usually you don't have to include it
86 explicitly because it's already included by ssl.h.
87
88 tls1.h
89 That's the sub header file dealing with the TLSv1 protocol only.
90 Usually you don't have to include it explicitly because it's
91 already included by ssl.h.
92
94 Currently the OpenSSL ssl library exports 214 API functions. They are
95 documented in the following:
96
97 DEALING WITH PROTOCOL METHODS
98
99 Here we document the various API functions which deal with the SSL/TLS
100 protocol methods defined in SSL_METHOD structures.
101
102 SSL_METHOD *SSLv2_client_method(void);
103 Constructor for the SSLv2 SSL_METHOD structure for a dedicated
104 client.
105
106 SSL_METHOD *SSLv2_server_method(void);
107 Constructor for the SSLv2 SSL_METHOD structure for a dedicated
108 server.
109
110 SSL_METHOD *SSLv2_method(void);
111 Constructor for the SSLv2 SSL_METHOD structure for combined client
112 and server.
113
114 SSL_METHOD *SSLv3_client_method(void);
115 Constructor for the SSLv3 SSL_METHOD structure for a dedicated
116 client.
117
118 SSL_METHOD *SSLv3_server_method(void);
119 Constructor for the SSLv3 SSL_METHOD structure for a dedicated
120 server.
121
122 SSL_METHOD *SSLv3_method(void);
123 Constructor for the SSLv3 SSL_METHOD structure for combined client
124 and server.
125
126 SSL_METHOD *TLSv1_client_method(void);
127 Constructor for the TLSv1 SSL_METHOD structure for a dedicated
128 client.
129
130 SSL_METHOD *TLSv1_server_method(void);
131 Constructor for the TLSv1 SSL_METHOD structure for a dedicated
132 server.
133
134 SSL_METHOD *TLSv1_method(void);
135 Constructor for the TLSv1 SSL_METHOD structure for combined client
136 and server.
137
138 DEALING WITH CIPHERS
139
140 Here we document the various API functions which deal with the SSL/TLS
141 ciphers defined in SSL_CIPHER structures.
142
143 char *SSL_CIPHER_description(SSL_CIPHER *cipher, char *buf, int len);
144 Write a string to buf (with a maximum size of len) containing a
145 human readable description of cipher. Returns buf.
146
147 int SSL_CIPHER_get_bits(SSL_CIPHER *cipher, int *alg_bits);
148 Determine the number of bits in cipher. Because of export crippled
149 ciphers there are two bits: The bits the algorithm supports in gen‐
150 eral (stored to alg_bits) and the bits which are actually used (the
151 return value).
152
153 const char *SSL_CIPHER_get_name(SSL_CIPHER *cipher);
154 Return the internal name of cipher as a string. These are the vari‐
155 ous strings defined by the SSL2_TXT_xxx, SSL3_TXT_xxx and
156 TLS1_TXT_xxx definitions in the header files.
157
158 char *SSL_CIPHER_get_version(SSL_CIPHER *cipher);
159 Returns a string like ""TLSv1/SSLv3"" or ""SSLv2"" which indicates
160 the SSL/TLS protocol version to which cipher belongs (i.e. where it
161 was defined in the specification the first time).
162
163 DEALING WITH PROTOCOL CONTEXTS
164
165 Here we document the various API functions which deal with the SSL/TLS
166 protocol context defined in the SSL_CTX structure.
167
168 int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x);
169 long SSL_CTX_add_extra_chain_cert(SSL_CTX *ctx, X509 *x509);
170 int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c);
171 int SSL_CTX_check_private_key(const SSL_CTX *ctx);
172 long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, char *parg);
173 void SSL_CTX_flush_sessions(SSL_CTX *s, long t);
174 void SSL_CTX_free(SSL_CTX *a);
175 char *SSL_CTX_get_app_data(SSL_CTX *ctx);
176 X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *ctx);
177 STACK *SSL_CTX_get_client_CA_list(const SSL_CTX *ctx);
178 int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL *ssl, X509 **x509,
179 EVP_PKEY **pkey);
180 char *SSL_CTX_get_ex_data(const SSL_CTX *s, int idx);
181 int SSL_CTX_get_ex_new_index(long argl, char *argp, int
182 (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
183 void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(SSL *ssl, int cb, int
184 ret);
185 int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
186 int SSL_CTX_get_session_cache_mode(SSL_CTX *ctx);
187 long SSL_CTX_get_timeout(const SSL_CTX *ctx);
188 int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int ok,
189 X509_STORE_CTX *ctx);
190 int SSL_CTX_get_verify_mode(SSL_CTX *ctx);
191 int SSL_CTX_load_verify_locations(SSL_CTX *ctx, char *CAfile, char
192 *CApath);
193 long SSL_CTX_need_tmp_RSA(SSL_CTX *ctx);
194 SSL_CTX *SSL_CTX_new(SSL_METHOD *meth);
195 int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *c);
196 int SSL_CTX_sess_accept(SSL_CTX *ctx);
197 int SSL_CTX_sess_accept_good(SSL_CTX *ctx);
198 int SSL_CTX_sess_accept_renegotiate(SSL_CTX *ctx);
199 int SSL_CTX_sess_cache_full(SSL_CTX *ctx);
200 int SSL_CTX_sess_cb_hits(SSL_CTX *ctx);
201 int SSL_CTX_sess_connect(SSL_CTX *ctx);
202 int SSL_CTX_sess_connect_good(SSL_CTX *ctx);
203 int SSL_CTX_sess_connect_renegotiate(SSL_CTX *ctx);
204 int SSL_CTX_sess_get_cache_size(SSL_CTX *ctx);
205 SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx))(SSL *ssl,
206 unsigned char *data, int len, int *copy);
207 int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)(SSL *ssl, SSL_SESSION
208 *sess);
209 void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)(SSL_CTX *ctx, SSL_SES‐
210 SION *sess);
211 int SSL_CTX_sess_hits(SSL_CTX *ctx);
212 int SSL_CTX_sess_misses(SSL_CTX *ctx);
213 int SSL_CTX_sess_number(SSL_CTX *ctx);
214 void SSL_CTX_sess_set_cache_size(SSL_CTX *ctx,t);
215 void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, SSL_SESSION *(*cb)(SSL *ssl,
216 unsigned char *data, int len, int *copy));
217 void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, int (*cb)(SSL *ssl, SSL_SES‐
218 SION *sess));
219 void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, void (*cb)(SSL_CTX *ctx,
220 SSL_SESSION *sess));
221 int SSL_CTX_sess_timeouts(SSL_CTX *ctx);
222 LHASH *SSL_CTX_sessions(SSL_CTX *ctx);
223 void SSL_CTX_set_app_data(SSL_CTX *ctx, void *arg);
224 void SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *cs);
225 void SSL_CTX_set_cert_verify_cb(SSL_CTX *ctx, int (*cb)(), char *arg)
226 int SSL_CTX_set_cipher_list(SSL_CTX *ctx, char *str);
227 void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK *list);
228 void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*cb)(SSL *ssl, X509
229 **x509, EVP_PKEY **pkey));
230 void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, int (*cb);(void))
231 void SSL_CTX_set_default_read_ahead(SSL_CTX *ctx, int m);
232 int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
233 int SSL_CTX_set_ex_data(SSL_CTX *s, int idx, char *arg);
234 void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(SSL *ssl, int
235 cb, int ret));
236 void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb)(int write_p, int
237 version, int content_type, const void *buf, size_t len, SSL *ssl, void
238 *arg));
239 void SSL_CTX_set_msg_callback_arg(SSL_CTX *ctx, void *arg);
240 void SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);
241 void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);
242 void SSL_CTX_set_session_cache_mode(SSL_CTX *ctx, int mode);
243 int SSL_CTX_set_ssl_version(SSL_CTX *ctx, SSL_METHOD *meth);
244 void SSL_CTX_set_timeout(SSL_CTX *ctx, long t);
245 long SSL_CTX_set_tmp_dh(SSL_CTX* ctx, DH *dh);
246 long SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, DH *(*cb)(void));
247 long SSL_CTX_set_tmp_rsa(SSL_CTX *ctx, RSA *rsa);
248 SSL_CTX_set_tmp_rsa_callback
249 "long SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, RSA *(*cb)(SSL
250 *ssl, int export, int keylength));"
251
252 Sets the callback which will be called when a temporary private key
253 is required. The "export" flag will be set if the reason for need‐
254 ing a temp key is that an export ciphersuite is in use, in which
255 case, "keylength" will contain the required keylength in bits. Gen‐
256 erate a key of appropriate size (using ???) and return it.
257
258 SSL_set_tmp_rsa_callback
259 long SSL_set_tmp_rsa_callback(SSL *ssl, RSA *(*cb)(SSL *ssl, int
260 export, int keylength));
261
262 The same as SSL_CTX_set_tmp_rsa_callback, except it operates on an
263 SSL session instead of a context.
264
265 void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*cb);(void))
266 int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
267 int SSL_CTX_use_PrivateKey_ASN1(int type, SSL_CTX *ctx, unsigned char
268 *d, long len);
269 int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, char *file, int type);
270 int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
271 int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long
272 len);
273 int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, char *file, int type);
274 int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
275 int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, unsigned char
276 *d);
277 int SSL_CTX_use_certificate_file(SSL_CTX *ctx, char *file, int type);
278
279 DEALING WITH SESSIONS
280
281 Here we document the various API functions which deal with the SSL/TLS
282 sessions defined in the SSL_SESSION structures.
283
284 int SSL_SESSION_cmp(const SSL_SESSION *a, const SSL_SESSION *b);
285 void SSL_SESSION_free(SSL_SESSION *ss);
286 char *SSL_SESSION_get_app_data(SSL_SESSION *s);
287 char *SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx);
288 int SSL_SESSION_get_ex_new_index(long argl, char *argp, int
289 (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))
290 long SSL_SESSION_get_time(const SSL_SESSION *s);
291 long SSL_SESSION_get_timeout(const SSL_SESSION *s);
292 unsigned long SSL_SESSION_hash(const SSL_SESSION *a);
293 SSL_SESSION *SSL_SESSION_new(void);
294 int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x);
295 int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x);
296 void SSL_SESSION_set_app_data(SSL_SESSION *s, char *a);
297 int SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, char *arg);
298 long SSL_SESSION_set_time(SSL_SESSION *s, long t);
299 long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
300
301 DEALING WITH CONNECTIONS
302
303 Here we document the various API functions which deal with the SSL/TLS
304 connection defined in the SSL structure.
305
306 int SSL_accept(SSL *ssl);
307 int SSL_add_dir_cert_subjects_to_stack(STACK *stack, const char *dir);
308 int SSL_add_file_cert_subjects_to_stack(STACK *stack, const char
309 *file);
310 int SSL_add_client_CA(SSL *ssl, X509 *x);
311 char *SSL_alert_desc_string(int value);
312 char *SSL_alert_desc_string_long(int value);
313 char *SSL_alert_type_string(int value);
314 char *SSL_alert_type_string_long(int value);
315 int SSL_check_private_key(const SSL *ssl);
316 void SSL_clear(SSL *ssl);
317 long SSL_clear_num_renegotiations(SSL *ssl);
318 int SSL_connect(SSL *ssl);
319 void SSL_copy_session_id(SSL *t, const SSL *f);
320 long SSL_ctrl(SSL *ssl, int cmd, long larg, char *parg);
321 int SSL_do_handshake(SSL *ssl);
322 SSL *SSL_dup(SSL *ssl);
323 STACK *SSL_dup_CA_list(STACK *sk);
324 void SSL_free(SSL *ssl);
325 SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);
326 char *SSL_get_app_data(SSL *ssl);
327 X509 *SSL_get_certificate(const SSL *ssl);
328 const char *SSL_get_cipher(const SSL *ssl);
329 int SSL_get_cipher_bits(const SSL *ssl, int *alg_bits);
330 char *SSL_get_cipher_list(const SSL *ssl, int n);
331 char *SSL_get_cipher_name(const SSL *ssl);
332 char *SSL_get_cipher_version(const SSL *ssl);
333 STACK *SSL_get_ciphers(const SSL *ssl);
334 STACK *SSL_get_client_CA_list(const SSL *ssl);
335 SSL_CIPHER *SSL_get_current_cipher(SSL *ssl);
336 long SSL_get_default_timeout(const SSL *ssl);
337 int SSL_get_error(const SSL *ssl, int i);
338 char *SSL_get_ex_data(const SSL *ssl, int idx);
339 int SSL_get_ex_data_X509_STORE_CTX_idx(void);
340 int SSL_get_ex_new_index(long argl, char *argp, int (*new_func);(void),
341 int (*dup_func)(void), void (*free_func)(void))
342 int SSL_get_fd(const SSL *ssl);
343 void (*SSL_get_info_callback(const SSL *ssl);)()
344 STACK *SSL_get_peer_cert_chain(const SSL *ssl);
345 X509 *SSL_get_peer_certificate(const SSL *ssl);
346 EVP_PKEY *SSL_get_privatekey(SSL *ssl);
347 int SSL_get_quiet_shutdown(const SSL *ssl);
348 BIO *SSL_get_rbio(const SSL *ssl);
349 int SSL_get_read_ahead(const SSL *ssl);
350 SSL_SESSION *SSL_get_session(const SSL *ssl);
351 char *SSL_get_shared_ciphers(const SSL *ssl, char *buf, int len);
352 int SSL_get_shutdown(const SSL *ssl);
353 SSL_METHOD *SSL_get_ssl_method(SSL *ssl);
354 int SSL_get_state(const SSL *ssl);
355 long SSL_get_time(const SSL *ssl);
356 long SSL_get_timeout(const SSL *ssl);
357 int (*SSL_get_verify_callback(const SSL *ssl))(int,X509_STORE_CTX *)
358 int SSL_get_verify_mode(const SSL *ssl);
359 long SSL_get_verify_result(const SSL *ssl);
360 char *SSL_get_version(const SSL *ssl);
361 BIO *SSL_get_wbio(const SSL *ssl);
362 int SSL_in_accept_init(SSL *ssl);
363 int SSL_in_before(SSL *ssl);
364 int SSL_in_connect_init(SSL *ssl);
365 int SSL_in_init(SSL *ssl);
366 int SSL_is_init_finished(SSL *ssl);
367 STACK *SSL_load_client_CA_file(char *file);
368 void SSL_load_error_strings(void);
369 SSL *SSL_new(SSL_CTX *ctx);
370 long SSL_num_renegotiations(SSL *ssl);
371 int SSL_peek(SSL *ssl, void *buf, int num);
372 int SSL_pending(const SSL *ssl);
373 int SSL_read(SSL *ssl, void *buf, int num);
374 int SSL_renegotiate(SSL *ssl);
375 char *SSL_rstate_string(SSL *ssl);
376 char *SSL_rstate_string_long(SSL *ssl);
377 long SSL_session_reused(SSL *ssl);
378 void SSL_set_accept_state(SSL *ssl);
379 void SSL_set_app_data(SSL *ssl, char *arg);
380 void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio);
381 int SSL_set_cipher_list(SSL *ssl, char *str);
382 void SSL_set_client_CA_list(SSL *ssl, STACK *list);
383 void SSL_set_connect_state(SSL *ssl);
384 int SSL_set_ex_data(SSL *ssl, int idx, char *arg);
385 int SSL_set_fd(SSL *ssl, int fd);
386 void SSL_set_info_callback(SSL *ssl, void (*cb);(void))
387 void SSL_set_msg_callback(SSL *ctx, void (*cb)(int write_p, int ver‐
388 sion, int content_type, const void *buf, size_t len, SSL *ssl, void
389 *arg));
390 void SSL_set_msg_callback_arg(SSL *ctx, void *arg);
391 void SSL_set_options(SSL *ssl, unsigned long op);
392 void SSL_set_quiet_shutdown(SSL *ssl, int mode);
393 void SSL_set_read_ahead(SSL *ssl, int yes);
394 int SSL_set_rfd(SSL *ssl, int fd);
395 int SSL_set_session(SSL *ssl, SSL_SESSION *session);
396 void SSL_set_shutdown(SSL *ssl, int mode);
397 int SSL_set_ssl_method(SSL *ssl, SSL_METHOD *meth);
398 void SSL_set_time(SSL *ssl, long t);
399 void SSL_set_timeout(SSL *ssl, long t);
400 void SSL_set_verify(SSL *ssl, int mode, int (*callback);(void))
401 void SSL_set_verify_result(SSL *ssl, long arg);
402 int SSL_set_wfd(SSL *ssl, int fd);
403 int SSL_shutdown(SSL *ssl);
404 int SSL_state(const SSL *ssl);
405 char *SSL_state_string(const SSL *ssl);
406 char *SSL_state_string_long(const SSL *ssl);
407 long SSL_total_renegotiations(SSL *ssl);
408 int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);
409 int SSL_use_PrivateKey_ASN1(int type, SSL *ssl, unsigned char *d, long
410 len);
411 int SSL_use_PrivateKey_file(SSL *ssl, char *file, int type);
412 int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);
413 int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len);
414 int SSL_use_RSAPrivateKey_file(SSL *ssl, char *file, int type);
415 int SSL_use_certificate(SSL *ssl, X509 *x);
416 int SSL_use_certificate_ASN1(SSL *ssl, int len, unsigned char *d);
417 int SSL_use_certificate_file(SSL *ssl, char *file, int type);
418 int SSL_version(const SSL *ssl);
419 int SSL_want(const SSL *ssl);
420 int SSL_want_nothing(const SSL *ssl);
421 int SSL_want_read(const SSL *ssl);
422 int SSL_want_write(const SSL *ssl);
423 int SSL_want_x509_lookup(const SSL *ssl);
424 int SSL_write(SSL *ssl, const void *buf, int num);
425
427 openssl(1), crypto(3), SSL_accept(3), SSL_clear(3), SSL_connect(3),
428 SSL_CIPHER_get_name(3), SSL_COMP_add_compression_method(3),
429 SSL_CTX_add_extra_chain_cert(3), SSL_CTX_add_session(3),
430 SSL_CTX_ctrl(3), SSL_CTX_flush_sessions(3),
431 SSL_CTX_get_ex_new_index(3), SSL_CTX_get_verify_mode(3),
432 SSL_CTX_load_verify_locations(3) SSL_CTX_new(3), SSL_CTX_sess_num‐
433 ber(3), SSL_CTX_sess_set_cache_size(3), SSL_CTX_sess_set_get_cb(3),
434 SSL_CTX_sessions(3), SSL_CTX_set_cert_store(3), SSL_CTX_set_cert_ver‐
435 ify_callback(3), SSL_CTX_set_cipher_list(3),
436 SSL_CTX_set_client_CA_list(3), SSL_CTX_set_client_cert_cb(3),
437 SSL_CTX_set_default_passwd_cb(3), SSL_CTX_set_generate_session_id(3),
438 SSL_CTX_set_info_callback(3), SSL_CTX_set_max_cert_list(3),
439 SSL_CTX_set_mode(3), SSL_CTX_set_msg_callback(3),
440 SSL_CTX_set_options(3), SSL_CTX_set_quiet_shutdown(3), SSL_CTX_set_ses‐
441 sion_cache_mode(3), SSL_CTX_set_session_id_context(3),
442 SSL_CTX_set_ssl_version(3), SSL_CTX_set_timeout(3),
443 SSL_CTX_set_tmp_rsa_callback(3), SSL_CTX_set_tmp_dh_callback(3),
444 SSL_CTX_set_verify(3), SSL_CTX_use_certificate(3),
445 SSL_alert_type_string(3), SSL_do_handshake(3), SSL_get_SSL_CTX(3),
446 SSL_get_ciphers(3), SSL_get_client_CA_list(3), SSL_get_default_time‐
447 out(3), SSL_get_error(3), SSL_get_ex_data_X509_STORE_CTX_idx(3),
448 SSL_get_ex_new_index(3), SSL_get_fd(3), SSL_get_peer_cert_chain(3),
449 SSL_get_rbio(3), SSL_get_session(3), SSL_get_verify_result(3),
450 SSL_get_version(3), SSL_library_init(3), SSL_load_client_CA_file(3),
451 SSL_new(3), SSL_pending(3), SSL_read(3), SSL_rstate_string(3), SSL_ses‐
452 sion_reused(3), SSL_set_bio(3), SSL_set_connect_state(3),
453 SSL_set_fd(3), SSL_set_session(3), SSL_set_shutdown(3), SSL_shut‐
454 down(3), SSL_state_string(3), SSL_want(3), SSL_write(3), SSL_SES‐
455 SION_free(3), SSL_SESSION_get_ex_new_index(3), SSL_SESSION_get_time(3),
456 d2i_SSL_SESSION(3)
457
459 The ssl(3) document appeared in OpenSSL 0.9.2
460
461
462
4630.9.8b 2005-03-30 ssl(3)