summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_locl.h
diff options
context:
space:
mode:
authorbeck <>1999-09-29 04:37:45 +0000
committerbeck <>1999-09-29 04:37:45 +0000
commitde8f24ea083384bb66b32ec105dc4743c5663cdf (patch)
tree1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libssl/ssl_locl.h
parentcb929d29896bcb87c2a97417fbd03e50078fc178 (diff)
downloadopenbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.gz
openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.bz2
openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.zip
OpenSSL 0.9.4 merge
Diffstat (limited to 'src/lib/libssl/ssl_locl.h')
-rw-r--r--src/lib/libssl/ssl_locl.h299
1 files changed, 120 insertions, 179 deletions
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index b29517081b..0bfd57db32 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -63,17 +63,19 @@
63#include <string.h> 63#include <string.h>
64#include <errno.h> 64#include <errno.h>
65 65
66#include "e_os.h" 66#include "openssl/e_os.h"
67 67
68#include "buffer.h" 68#include <openssl/buffer.h>
69#include "bio.h" 69#include <openssl/comp.h>
70#include "crypto.h" 70#include <openssl/bio.h>
71#include "evp.h" 71#include <openssl/crypto.h>
72#include "stack.h" 72#include <openssl/evp.h>
73#include "x509.h" 73#include <openssl/stack.h>
74#include "err.h" 74#include <openssl/x509.h>
75#include "ssl.h" 75#include <openssl/err.h>
76#include <openssl/ssl.h>
76 77
78#define PKCS1_CHECK
77 79
78#define c2l(c,l) (l = ((unsigned long)(*((c)++))) , \ 80#define c2l(c,l) (l = ((unsigned long)(*((c)++))) , \
79 l|=(((unsigned long)(*((c)++)))<< 8), \ 81 l|=(((unsigned long)(*((c)++)))<< 8), \
@@ -126,18 +128,18 @@
126 } \ 128 } \
127 } 129 }
128 130
129#define n2s(c,s) (s =((unsigned int)(*((c)++)))<< 8, \ 131#define n2s(c,s) ((s=(((unsigned int)(c[0]))<< 8)| \
130 s|=((unsigned int)(*((c)++)))) 132 (((unsigned int)(c[1])) )),c+=2)
131#define s2n(s,c) (*((c)++)=(unsigned char)(((s)>> 8)&0xff), \ 133#define s2n(s,c) ((c[0]=(unsigned char)(((s)>> 8)&0xff), \
132 *((c)++)=(unsigned char)(((s) )&0xff)) 134 c[1]=(unsigned char)(((s) )&0xff)),c+=2)
133 135
134#define n2l3(c,l) (l =((unsigned long)(*((c)++)))<<16, \ 136#define n2l3(c,l) ((l =(((unsigned long)(c[0]))<<16)| \
135 l|=((unsigned long)(*((c)++)))<< 8, \ 137 (((unsigned long)(c[1]))<< 8)| \
136 l|=((unsigned long)(*((c)++)))) 138 (((unsigned long)(c[2])) )),c+=3)
137 139
138#define l2n3(l,c) (*((c)++)=(unsigned char)(((l)>>16)&0xff), \ 140#define l2n3(l,c) ((c[0]=(unsigned char)(((l)>>16)&0xff), \
139 *((c)++)=(unsigned char)(((l)>> 8)&0xff), \ 141 c[1]=(unsigned char)(((l)>> 8)&0xff), \
140 *((c)++)=(unsigned char)(((l) )&0xff)) 142 c[2]=(unsigned char)(((l) )&0xff)),c+=3)
141 143
142/* LOCAL STUFF */ 144/* LOCAL STUFF */
143 145
@@ -190,13 +192,25 @@
190#define SSL_SHA (SSL_SHA1) 192#define SSL_SHA (SSL_SHA1)
191 193
192#define SSL_EXP_MASK 0x00300000L 194#define SSL_EXP_MASK 0x00300000L
193#define SSL_EXP 0x00100000L 195#define SSL_EXP40 0x00100000L
194#define SSL_NOT_EXP 0x00200000L 196#define SSL_NOT_EXP 0x00200000L
195#define SSL_EXPORT SSL_EXP 197#define SSL_EXP56 0x00300000L
198#define SSL_IS_EXPORT(a) ((a)&SSL_EXP40)
199#define SSL_IS_EXPORT56(a) (((a)&SSL_EXP_MASK) == SSL_EXP56)
200#define SSL_IS_EXPORT40(a) (((a)&SSL_EXP_MASK) == SSL_EXP40)
201#define SSL_C_IS_EXPORT(c) SSL_IS_EXPORT((c)->algorithms)
202#define SSL_C_IS_EXPORT56(c) SSL_IS_EXPORT56((c)->algorithms)
203#define SSL_C_IS_EXPORT40(c) SSL_IS_EXPORT40((c)->algorithms)
204#define SSL_EXPORT_KEYLENGTH(a) (SSL_IS_EXPORT40(a) ? 5 : \
205 ((a)&SSL_ENC_MASK) == SSL_DES ? 8 : 7)
206#define SSL_EXPORT_PKEYLENGTH(a) (SSL_IS_EXPORT40(a) ? 512 : 1024)
207#define SSL_C_EXPORT_KEYLENGTH(c) SSL_EXPORT_KEYLENGTH((c)->algorithms)
208#define SSL_C_EXPORT_PKEYLENGTH(c) SSL_EXPORT_PKEYLENGTH((c)->algorithms)
196 209
197#define SSL_SSL_MASK 0x00c00000L 210#define SSL_SSL_MASK 0x00c00000L
198#define SSL_SSLV2 0x00400000L 211#define SSL_SSLV2 0x00400000L
199#define SSL_SSLV3 0x00800000L 212#define SSL_SSLV3 0x00800000L
213#define SSL_TLSV1 SSL_SSLV3 /* for now */
200 214
201#define SSL_STRONG_MASK 0x07000000L 215#define SSL_STRONG_MASK 0x07000000L
202#define SSL_LOW 0x01000000L 216#define SSL_LOW 0x01000000L
@@ -233,44 +247,59 @@
233typedef struct cert_pkey_st 247typedef struct cert_pkey_st
234 { 248 {
235 X509 *x509; 249 X509 *x509;
236/* EVP_PKEY *publickey; *//* when extracted */
237 EVP_PKEY *privatekey; 250 EVP_PKEY *privatekey;
238 } CERT_PKEY; 251 } CERT_PKEY;
239 252
240typedef struct cert_st 253typedef struct cert_st
241 { 254 {
242 int cert_type;
243
244#ifdef undef
245 X509 *x509;
246 EVP_PKEY *publickey; /* when extracted */
247 EVP_PKEY *privatekey;
248
249 pkeys[SSL_PKEY_RSA_ENC].x509
250/* pkeys[SSL_PKEY_RSA_ENC].publickey */
251 pkeys[SSL_PKEY_RSA_ENC].privatekey
252#endif
253
254 /* Current active set */ 255 /* Current active set */
255 CERT_PKEY *key; 256 CERT_PKEY *key; /* ALWAYS points to an element of the pkeys array
257 * Probably it would make more sense to store
258 * an index, not a pointer. */
256 259
257 /* The following masks are for the key and auth 260 /* The following masks are for the key and auth
258 * algorithms that are supported by the certs below */ 261 * algorithms that are supported by the certs below */
259 int valid; 262 int valid;
260 unsigned long mask; 263 unsigned long mask;
261 unsigned long export_mask; 264 unsigned long export_mask;
262 265#ifndef NO_RSA
263 RSA *rsa_tmp; 266 RSA *rsa_tmp;
267 RSA *(*rsa_tmp_cb)(SSL *ssl,int is_export,int keysize);
268#endif
269#ifndef NO_DH
264 DH *dh_tmp; 270 DH *dh_tmp;
265 RSA *(*rsa_tmp_cb)(); 271 DH *(*dh_tmp_cb)(SSL *ssl,int is_export,int keysize);
266 DH *(*dh_tmp_cb)(); 272#endif
267 CERT_PKEY pkeys[SSL_PKEY_NUM];
268 273
269 STACK *cert_chain; 274 CERT_PKEY pkeys[SSL_PKEY_NUM];
270 275
271 int references; 276 int references; /* >1 only if SSL_copy_session_id is used */
272 } CERT; 277 } CERT;
273 278
279
280typedef struct sess_cert_st
281 {
282 STACK_OF(X509) *cert_chain; /* as received from peer (not for SSL2) */
283
284 /* The 'peer_...' members are used only by clients. */
285 int peer_cert_type;
286
287 CERT_PKEY *peer_key; /* points to an element of peer_pkeys (never NULL!) */
288 CERT_PKEY peer_pkeys[SSL_PKEY_NUM];
289 /* Obviously we don't have the private keys of these,
290 * so maybe we shouldn't even use the CERT_PKEY type here. */
291
292#ifndef NO_RSA
293 RSA *peer_rsa_tmp; /* not used for SSL 2 */
294#endif
295#ifndef NO_DH
296 DH *peer_dh_tmp; /* not used for SSL 2 */
297#endif
298
299 int references; /* actually always 1 at the moment */
300 } SESS_CERT;
301
302
274/*#define MAC_DEBUG */ 303/*#define MAC_DEBUG */
275 304
276/*#define ERR_DEBUG */ 305/*#define ERR_DEBUG */
@@ -282,12 +311,7 @@ typedef struct cert_st
282/*#define RSA_DEBUG */ 311/*#define RSA_DEBUG */
283/*#define IDEA_DEBUG */ 312/*#define IDEA_DEBUG */
284 313
285#ifndef NOPROTO
286#define FP_ICC (int (*)(const void *,const void *)) 314#define FP_ICC (int (*)(const void *,const void *))
287#else
288#define FP_ICC
289#endif
290
291#define ssl_put_cipher_by_char(ssl,ciph,ptr) \ 315#define ssl_put_cipher_by_char(ssl,ciph,ptr) \
292 ((ssl)->method->put_cipher_by_char((ciph),(ptr))) 316 ((ssl)->method->put_cipher_by_char((ciph),(ptr)))
293#define ssl_get_cipher_by_char(ssl,ptr) \ 317#define ssl_get_cipher_by_char(ssl,ptr) \
@@ -313,11 +337,23 @@ typedef struct ssl3_enc_method
313 int (*alert_value)(); 337 int (*alert_value)();
314 } SSL3_ENC_METHOD; 338 } SSL3_ENC_METHOD;
315 339
316extern SSL3_ENC_METHOD ssl3_undef_enc_method; 340/* Used for holding the relevant compression methods loaded into SSL_CTX */
317extern SSL_CIPHER ssl2_ciphers[]; 341typedef struct ssl3_comp_st
318extern SSL_CIPHER ssl3_ciphers[]; 342 {
343 int comp_id; /* The identifer byte for this compression type */
344 char *name; /* Text name used for the compression type */
345 COMP_METHOD *method; /* The method :-) */
346 } SSL3_COMP;
347
348OPENSSL_EXTERN SSL3_ENC_METHOD ssl3_undef_enc_method;
349OPENSSL_EXTERN SSL_CIPHER ssl2_ciphers[];
350OPENSSL_EXTERN SSL_CIPHER ssl3_ciphers[];
351
352#ifdef VMS
353#undef SSL_COMP_get_compression_methods
354#define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods
355#endif
319 356
320#ifndef NOPROTO
321 357
322SSL_METHOD *ssl_bad_method(int ver); 358SSL_METHOD *ssl_bad_method(int ver);
323SSL_METHOD *sslv2_base_method(void); 359SSL_METHOD *sslv2_base_method(void);
@@ -327,33 +363,41 @@ SSL_METHOD *sslv3_base_method(void);
327void ssl_clear_cipher_ctx(SSL *s); 363void ssl_clear_cipher_ctx(SSL *s);
328int ssl_clear_bad_session(SSL *s); 364int ssl_clear_bad_session(SSL *s);
329CERT *ssl_cert_new(void); 365CERT *ssl_cert_new(void);
366CERT *ssl_cert_dup(CERT *cert);
367int ssl_cert_inst(CERT **o);
330void ssl_cert_free(CERT *c); 368void ssl_cert_free(CERT *c);
331int ssl_set_cert_type(CERT *c, int type); 369SESS_CERT *ssl_sess_cert_new(void);
370void ssl_sess_cert_free(SESS_CERT *sc);
371int ssl_set_peer_cert_type(SESS_CERT *c, int type);
332int ssl_get_new_session(SSL *s, int session); 372int ssl_get_new_session(SSL *s, int session);
333int ssl_get_prev_session(SSL *s, unsigned char *session,int len); 373int ssl_get_prev_session(SSL *s, unsigned char *session,int len);
334int ssl_cipher_id_cmp(SSL_CIPHER *a,SSL_CIPHER *b); 374int ssl_cipher_id_cmp(SSL_CIPHER *a,SSL_CIPHER *b);
335int ssl_cipher_ptr_id_cmp(SSL_CIPHER **ap,SSL_CIPHER **bp); 375int ssl_cipher_ptr_id_cmp(SSL_CIPHER **ap,SSL_CIPHER **bp);
336STACK *ssl_bytes_to_cipher_list(SSL *s,unsigned char *p,int num,STACK **skp); 376STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s,unsigned char *p,int num,
337int ssl_cipher_list_to_bytes(SSL *s,STACK *sk,unsigned char *p); 377 STACK_OF(SSL_CIPHER) **skp);
338STACK *ssl_create_cipher_list(SSL_METHOD *meth,STACK **pref, 378int ssl_cipher_list_to_bytes(SSL *s,STACK_OF(SSL_CIPHER) *sk,unsigned char *p);
339 STACK **sorted,char *str); 379STACK_OF(SSL_CIPHER) *ssl_create_cipher_list(SSL_METHOD *meth,
380 STACK_OF(SSL_CIPHER) **pref,
381 STACK_OF(SSL_CIPHER) **sorted,
382 char *str);
340void ssl_update_cache(SSL *s, int mode); 383void ssl_update_cache(SSL *s, int mode);
341int ssl_cipher_get_evp(SSL_CIPHER *c, EVP_CIPHER **enc, EVP_MD **md); 384int ssl_cipher_get_evp(SSL_SESSION *s,const EVP_CIPHER **enc,const EVP_MD **md,
342int ssl_verify_cert_chain(SSL *s,STACK *sk); 385 SSL_COMP **comp);
386int ssl_verify_cert_chain(SSL *s,STACK_OF(X509) *sk);
343int ssl_undefined_function(SSL *s); 387int ssl_undefined_function(SSL *s);
344X509 *ssl_get_server_send_cert(SSL *); 388X509 *ssl_get_server_send_cert(SSL *);
345EVP_PKEY *ssl_get_sign_pkey(SSL *,SSL_CIPHER *); 389EVP_PKEY *ssl_get_sign_pkey(SSL *,SSL_CIPHER *);
346int ssl_cert_type(X509 *x,EVP_PKEY *pkey); 390int ssl_cert_type(X509 *x,EVP_PKEY *pkey);
347void ssl_set_cert_masks(CERT *c); 391void ssl_set_cert_masks(CERT *c, SSL_CIPHER *cipher);
348STACK *ssl_get_ciphers_by_id(SSL *s); 392STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s);
349int ssl_verify_alarm_type(long type); 393int ssl_verify_alarm_type(long type);
350 394
351int ssl2_enc_init(SSL *s, int client); 395int ssl2_enc_init(SSL *s, int client);
352void ssl2_generate_key_material(SSL *s); 396void ssl2_generate_key_material(SSL *s);
353void ssl2_enc(SSL *s,int send_data); 397void ssl2_enc(SSL *s,int send_data);
354void ssl2_mac(SSL *s,unsigned char *mac,int send_data); 398void ssl2_mac(SSL *s,unsigned char *mac,int send_data);
355SSL_CIPHER *ssl2_get_cipher_by_char(unsigned char *p); 399SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p);
356int ssl2_put_cipher_by_char(SSL_CIPHER *c,unsigned char *p); 400int ssl2_put_cipher_by_char(const SSL_CIPHER *c,unsigned char *p);
357int ssl2_part_read(SSL *s, unsigned long f, int i); 401int ssl2_part_read(SSL *s, unsigned long f, int i);
358int ssl2_do_write(SSL *s); 402int ssl2_do_write(SSL *s);
359int ssl2_set_certificate(SSL *s, int type, int len, unsigned char *data); 403int ssl2_set_certificate(SSL *s, int type, int len, unsigned char *data);
@@ -365,17 +409,17 @@ int ssl2_new(SSL *s);
365void ssl2_free(SSL *s); 409void ssl2_free(SSL *s);
366int ssl2_accept(SSL *s); 410int ssl2_accept(SSL *s);
367int ssl2_connect(SSL *s); 411int ssl2_connect(SSL *s);
368int ssl2_read(SSL *s, char *buf, int len); 412int ssl2_read(SSL *s, void *buf, int len);
369int ssl2_peek(SSL *s, char *buf, int len); 413int ssl2_peek(SSL *s, char *buf, int len);
370int ssl2_write(SSL *s, char *buf, int len); 414int ssl2_write(SSL *s, const void *buf, int len);
371int ssl2_shutdown(SSL *s); 415int ssl2_shutdown(SSL *s);
372void ssl2_clear(SSL *s); 416void ssl2_clear(SSL *s);
373long ssl2_ctrl(SSL *s,int cmd, long larg, char *parg); 417long ssl2_ctrl(SSL *s,int cmd, long larg, char *parg);
374long ssl2_ctx_ctrl(SSL_CTX *s,int cmd, long larg, char *parg); 418long ssl2_ctx_ctrl(SSL_CTX *s,int cmd, long larg, char *parg);
375int ssl2_pending(SSL *s); 419int ssl2_pending(SSL *s);
376 420
377SSL_CIPHER *ssl3_get_cipher_by_char(unsigned char *p); 421SSL_CIPHER *ssl3_get_cipher_by_char(const unsigned char *p);
378int ssl3_put_cipher_by_char(SSL_CIPHER *c,unsigned char *p); 422int ssl3_put_cipher_by_char(const SSL_CIPHER *c,unsigned char *p);
379void ssl3_init_finished_mac(SSL *s); 423void ssl3_init_finished_mac(SSL *s);
380int ssl3_send_server_certificate(SSL *s); 424int ssl3_send_server_certificate(SSL *s);
381int ssl3_get_finished(SSL *s,int state_a,int state_b); 425int ssl3_get_finished(SSL *s,int state_a,int state_b);
@@ -395,25 +439,26 @@ SSL_CIPHER *ssl3_get_cipher(unsigned int u);
395int ssl3_renegotiate(SSL *ssl); 439int ssl3_renegotiate(SSL *ssl);
396int ssl3_renegotiate_check(SSL *ssl); 440int ssl3_renegotiate_check(SSL *ssl);
397int ssl3_dispatch_alert(SSL *s); 441int ssl3_dispatch_alert(SSL *s);
398int ssl3_read_bytes(SSL *s, int type, char *buf, int len); 442int ssl3_read_bytes(SSL *s, int type, unsigned char *buf, int len);
399int ssl3_part_read(SSL *s, int i); 443int ssl3_part_read(SSL *s, int i);
400int ssl3_write_bytes(SSL *s, int type, char *buf, int len); 444int ssl3_write_bytes(SSL *s, int type, const void *buf, int len);
401int ssl3_final_finish_mac(SSL *s, EVP_MD_CTX *ctx1,EVP_MD_CTX *ctx2, 445int ssl3_final_finish_mac(SSL *s, EVP_MD_CTX *ctx1,EVP_MD_CTX *ctx2,
402 unsigned char *sender, int slen,unsigned char *p); 446 unsigned char *sender, int slen,unsigned char *p);
403int ssl3_cert_verify_mac(SSL *s, EVP_MD_CTX *in, unsigned char *p); 447int ssl3_cert_verify_mac(SSL *s, EVP_MD_CTX *in, unsigned char *p);
404void ssl3_finish_mac(SSL *s, unsigned char *buf, int len); 448void ssl3_finish_mac(SSL *s, const unsigned char *buf, int len);
405int ssl3_enc(SSL *s, int send_data); 449int ssl3_enc(SSL *s, int send_data);
406int ssl3_mac(SSL *ssl, unsigned char *md, int send_data); 450int ssl3_mac(SSL *ssl, unsigned char *md, int send_data);
407unsigned long ssl3_output_cert_chain(SSL *s, X509 *x); 451unsigned long ssl3_output_cert_chain(SSL *s, X509 *x);
408SSL_CIPHER *ssl3_choose_cipher(SSL *ssl,STACK *have,STACK *pref); 452SSL_CIPHER *ssl3_choose_cipher(SSL *ssl,STACK_OF(SSL_CIPHER) *have,
453 STACK_OF(SSL_CIPHER) *pref);
409int ssl3_setup_buffers(SSL *s); 454int ssl3_setup_buffers(SSL *s);
410int ssl3_new(SSL *s); 455int ssl3_new(SSL *s);
411void ssl3_free(SSL *s); 456void ssl3_free(SSL *s);
412int ssl3_accept(SSL *s); 457int ssl3_accept(SSL *s);
413int ssl3_connect(SSL *s); 458int ssl3_connect(SSL *s);
414int ssl3_read(SSL *s, char *buf, int len); 459int ssl3_read(SSL *s, void *buf, int len);
415int ssl3_peek(SSL *s,char *buf, int len); 460int ssl3_peek(SSL *s,char *buf, int len);
416int ssl3_write(SSL *s, char *buf, int len); 461int ssl3_write(SSL *s, const void *buf, int len);
417int ssl3_shutdown(SSL *s); 462int ssl3_shutdown(SSL *s);
418void ssl3_clear(SSL *s); 463void ssl3_clear(SSL *s);
419long ssl3_ctrl(SSL *s,int cmd, long larg, char *parg); 464long ssl3_ctrl(SSL *s,int cmd, long larg, char *parg);
@@ -431,8 +476,8 @@ void tls1_clear(SSL *s);
431long tls1_ctrl(SSL *s,int cmd, long larg, char *parg); 476long tls1_ctrl(SSL *s,int cmd, long larg, char *parg);
432SSL_METHOD *tlsv1_base_method(void ); 477SSL_METHOD *tlsv1_base_method(void );
433 478
434
435int ssl_init_wbio_buffer(SSL *s, int push); 479int ssl_init_wbio_buffer(SSL *s, int push);
480void ssl_free_wbio_buffer(SSL *s);
436 481
437int tls1_change_cipher_state(SSL *s, int which); 482int tls1_change_cipher_state(SSL *s, int which);
438int tls1_setup_key_block(SSL *s); 483int tls1_setup_key_block(SSL *s);
@@ -445,114 +490,10 @@ int tls1_generate_master_secret(SSL *s, unsigned char *out,
445 unsigned char *p, int len); 490 unsigned char *p, int len);
446int tls1_alert_code(int code); 491int tls1_alert_code(int code);
447int ssl3_alert_code(int code); 492int ssl3_alert_code(int code);
493int ssl_ok(SSL *s);
448 494
495SSL_COMP *ssl3_comp_find(STACK_OF(SSL_COMP) *sk, int n);
496STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
449 497
450#else
451
452SSL_METHOD *ssl_bad_method();
453SSL_METHOD *sslv2_base_method();
454SSL_METHOD *sslv23_base_method();
455SSL_METHOD *sslv3_base_method();
456
457void ssl_clear_cipher_ctx();
458int ssl_clear_bad_session();
459CERT *ssl_cert_new();
460void ssl_cert_free();
461int ssl_set_cert_type();
462int ssl_get_new_session();
463int ssl_get_prev_session();
464int ssl_cipher_id_cmp();
465int ssl_cipher_ptr_id_cmp();
466STACK *ssl_bytes_to_cipher_list();
467int ssl_cipher_list_to_bytes();
468STACK *ssl_create_cipher_list();
469void ssl_update_cache();
470int ssl_session_get_ciphers();
471int ssl_verify_cert_chain();
472int ssl_undefined_function();
473X509 *ssl_get_server_send_cert();
474EVP_PKEY *ssl_get_sign_pkey();
475int ssl_cert_type();
476void ssl_set_cert_masks();
477STACK *ssl_get_ciphers_by_id();
478int ssl_verify_alarm_type();
479
480int ssl2_enc_init();
481void ssl2_generate_key_material();
482void ssl2_enc();
483void ssl2_mac();
484SSL_CIPHER *ssl2_get_cipher_by_char();
485int ssl2_put_cipher_by_char();
486int ssl2_part_read();
487int ssl2_do_write();
488int ssl2_set_certificate();
489void ssl2_return_error();
490void ssl2_write_error();
491int ssl2_num_ciphers();
492SSL_CIPHER *ssl2_get_cipher();
493int ssl2_new();
494void ssl2_free();
495int ssl2_accept();
496int ssl2_connect();
497int ssl2_read();
498int ssl2_peek();
499int ssl2_write();
500int ssl2_shutdown();
501void ssl2_clear();
502long ssl2_ctrl();
503long ssl2_ctx_ctrl();
504int ssl2_pending();
505
506SSL_CIPHER *ssl3_get_cipher_by_char();
507int ssl3_put_cipher_by_char();
508void ssl3_init_finished_mac();
509int ssl3_send_server_certificate();
510int ssl3_get_finished();
511int ssl3_setup_key_block();
512int ssl3_send_change_cipher_spec();
513int ssl3_change_cipher_state();
514void ssl3_cleanup_key_block();
515int ssl3_do_write();
516void ssl3_send_alert();
517int ssl3_generate_master_secret();
518int ssl3_get_req_cert_type();
519long ssl3_get_message();
520int ssl3_send_finished();
521int ssl3_num_ciphers();
522SSL_CIPHER *ssl3_get_cipher();
523int ssl3_renegotiate();
524int ssl3_renegotiate_check();
525int ssl3_dispatch_alert();
526int ssl3_read_bytes();
527int ssl3_part_read();
528int ssl3_write_bytes();
529int ssl3_final_finish_mac();
530void ssl3_finish_mac();
531int ssl3_enc();
532int ssl3_mac();
533unsigned long ssl3_output_cert_chain();
534SSL_CIPHER *ssl3_choose_cipher();
535int ssl3_setup_buffers();
536int ssl3_new();
537void ssl3_free();
538int ssl3_accept();
539int ssl3_connect();
540int ssl3_read();
541int ssl3_peek();
542int ssl3_write();
543int ssl3_shutdown();
544void ssl3_clear();
545long ssl3_ctrl();
546long ssl3_ctx_ctrl();
547int ssl3_pending();
548
549int ssl23_accept();
550int ssl23_connect();
551int ssl23_read_bytes();
552int ssl23_write_bytes();
553
554int ssl_init_wbio_buffer();
555
556#endif
557 498
558#endif 499#endif