00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170 #ifndef HEADER_SSL_H
00171 #define HEADER_SSL_H
00172
00173 #include <openssl/e_os2.h>
00174
00175 #ifndef OPENSSL_NO_COMP
00176 #include <openssl/comp.h>
00177 #endif
00178 #ifndef OPENSSL_NO_BIO
00179 #include <openssl/bio.h>
00180 #endif
00181 #ifndef OPENSSL_NO_DEPRECATED
00182 #ifndef OPENSSL_NO_X509
00183 #include <openssl/x509.h>
00184 #endif
00185 #include <openssl/crypto.h>
00186 #include <openssl/lhash.h>
00187 #include <openssl/buffer.h>
00188 #endif
00189 #include <openssl/pem.h>
00190
00191 #include <openssl/kssl.h>
00192 #include <openssl/safestack.h>
00193 #include <openssl/symhacks.h>
00194
00195 #ifdef __cplusplus
00196 extern "C" {
00197 #endif
00198
00199
00200
00201
00202
00203 #define SSL_SESSION_ASN1_VERSION 0x0001
00204
00205
00206 #define SSL_TXT_NULL_WITH_MD5 SSL2_TXT_NULL_WITH_MD5
00207 #define SSL_TXT_RC4_128_WITH_MD5 SSL2_TXT_RC4_128_WITH_MD5
00208 #define SSL_TXT_RC4_128_EXPORT40_WITH_MD5 SSL2_TXT_RC4_128_EXPORT40_WITH_MD5
00209 #define SSL_TXT_RC2_128_CBC_WITH_MD5 SSL2_TXT_RC2_128_CBC_WITH_MD5
00210 #define SSL_TXT_RC2_128_CBC_EXPORT40_WITH_MD5 SSL2_TXT_RC2_128_CBC_EXPORT40_WITH_MD5
00211 #define SSL_TXT_IDEA_128_CBC_WITH_MD5 SSL2_TXT_IDEA_128_CBC_WITH_MD5
00212 #define SSL_TXT_DES_64_CBC_WITH_MD5 SSL2_TXT_DES_64_CBC_WITH_MD5
00213 #define SSL_TXT_DES_64_CBC_WITH_SHA SSL2_TXT_DES_64_CBC_WITH_SHA
00214 #define SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5
00215 #define SSL_TXT_DES_192_EDE3_CBC_WITH_SHA SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA
00216
00217
00218
00219 #define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA
00220 #define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA
00221 #define SSL_TXT_KRB5_RC4_128_SHA SSL3_TXT_KRB5_RC4_128_SHA
00222 #define SSL_TXT_KRB5_IDEA_128_CBC_SHA SSL3_TXT_KRB5_IDEA_128_CBC_SHA
00223 #define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5
00224 #define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5
00225 #define SSL_TXT_KRB5_RC4_128_MD5 SSL3_TXT_KRB5_RC4_128_MD5
00226 #define SSL_TXT_KRB5_IDEA_128_CBC_MD5 SSL3_TXT_KRB5_IDEA_128_CBC_MD5
00227
00228 #define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA
00229 #define SSL_TXT_KRB5_RC2_40_CBC_SHA SSL3_TXT_KRB5_RC2_40_CBC_SHA
00230 #define SSL_TXT_KRB5_RC4_40_SHA SSL3_TXT_KRB5_RC4_40_SHA
00231 #define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5
00232 #define SSL_TXT_KRB5_RC2_40_CBC_MD5 SSL3_TXT_KRB5_RC2_40_CBC_MD5
00233 #define SSL_TXT_KRB5_RC4_40_MD5 SSL3_TXT_KRB5_RC4_40_MD5
00234
00235 #define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA
00236 #define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5
00237 #define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA
00238 #define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5
00239 #define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA
00240 #define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5
00241 #define SSL_MAX_KRB5_PRINCIPAL_LENGTH 256
00242
00243 #define SSL_MAX_SSL_SESSION_ID_LENGTH 32
00244 #define SSL_MAX_SID_CTX_LENGTH 32
00245
00246 #define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8)
00247 #define SSL_MAX_KEY_ARG_LENGTH 8
00248 #define SSL_MAX_MASTER_KEY_LENGTH 48
00249
00250
00251 #define SSL_TXT_LOW "LOW"
00252 #define SSL_TXT_MEDIUM "MEDIUM"
00253 #define SSL_TXT_HIGH "HIGH"
00254 #define SSL_TXT_kFZA "kFZA"
00255 #define SSL_TXT_aFZA "aFZA"
00256 #define SSL_TXT_eFZA "eFZA"
00257 #define SSL_TXT_FZA "FZA"
00258
00259 #define SSL_TXT_aNULL "aNULL"
00260 #define SSL_TXT_eNULL "eNULL"
00261 #define SSL_TXT_NULL "NULL"
00262
00263 #define SSL_TXT_kKRB5 "kKRB5"
00264 #define SSL_TXT_aKRB5 "aKRB5"
00265 #define SSL_TXT_KRB5 "KRB5"
00266
00267 #define SSL_TXT_kRSA "kRSA"
00268 #define SSL_TXT_kDHr "kDHr"
00269 #define SSL_TXT_kDHd "kDHd"
00270 #define SSL_TXT_kEDH "kEDH"
00271 #define SSL_TXT_aRSA "aRSA"
00272 #define SSL_TXT_aDSS "aDSS"
00273 #define SSL_TXT_aDH "aDH"
00274 #define SSL_TXT_DSS "DSS"
00275 #define SSL_TXT_DH "DH"
00276 #define SSL_TXT_EDH "EDH"
00277 #define SSL_TXT_ADH "ADH"
00278 #define SSL_TXT_RSA "RSA"
00279 #define SSL_TXT_DES "DES"
00280 #define SSL_TXT_3DES "3DES"
00281 #define SSL_TXT_RC4 "RC4"
00282 #define SSL_TXT_RC2 "RC2"
00283 #define SSL_TXT_IDEA "IDEA"
00284 #define SSL_TXT_AES "AES"
00285 #define SSL_TXT_CAMELLIA "CAMELLIA"
00286 #define SSL_TXT_MD5 "MD5"
00287 #define SSL_TXT_SHA1 "SHA1"
00288 #define SSL_TXT_SHA "SHA"
00289 #define SSL_TXT_EXP "EXP"
00290 #define SSL_TXT_EXPORT "EXPORT"
00291 #define SSL_TXT_EXP40 "EXPORT40"
00292 #define SSL_TXT_EXP56 "EXPORT56"
00293 #define SSL_TXT_SSLV2 "SSLv2"
00294 #define SSL_TXT_SSLV3 "SSLv3"
00295 #define SSL_TXT_TLSV1 "TLSv1"
00296 #define SSL_TXT_ALL "ALL"
00297 #define SSL_TXT_ECC "ECCdraft"
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313 #define SSL_TXT_CMPALL "COMPLEMENTOFALL"
00314 #define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT"
00315
00316
00317
00318
00319 #ifdef OPENSSL_NO_CAMELLIA
00320 # define SSL_DEFAULT_CIPHER_LIST "ALL:!ADH:+RC4:@STRENGTH"
00321 #else
00322 # define SSL_DEFAULT_CIPHER_LIST "AES:CAMELLIA:ALL:!ADH:+RC4:@STRENGTH"
00323 #endif
00324
00325
00326 #define SSL_SENT_SHUTDOWN 1
00327 #define SSL_RECEIVED_SHUTDOWN 2
00328
00329 #ifdef __cplusplus
00330 }
00331 #endif
00332
00333 #ifdef __cplusplus
00334 extern "C" {
00335 #endif
00336
00337 #if (defined(OPENSSL_NO_RSA) || defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2)
00338 #define OPENSSL_NO_SSL2
00339 #endif
00340
00341 #define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1
00342 #define SSL_FILETYPE_PEM X509_FILETYPE_PEM
00343
00344
00345
00346
00347 typedef struct ssl_st *ssl_crock_st;
00348
00349
00350 typedef struct ssl_cipher_st
00351 {
00352 int valid;
00353 const char *name;
00354 unsigned long id;
00355 unsigned long algorithms;
00356 unsigned long algo_strength;
00357 unsigned long algorithm2;
00358 int strength_bits;
00359 int alg_bits;
00360 unsigned long mask;
00361 unsigned long mask_strength;
00362 } SSL_CIPHER;
00363
00364 DECLARE_STACK_OF(SSL_CIPHER)
00365
00366 typedef struct ssl_st SSL;
00367 typedef struct ssl_ctx_st SSL_CTX;
00368
00369
00370 typedef struct ssl_method_st
00371 {
00372 int version;
00373 int (*ssl_new)(SSL *s);
00374 void (*ssl_clear)(SSL *s);
00375 void (*ssl_free)(SSL *s);
00376 int (*ssl_accept)(SSL *s);
00377 int (*ssl_connect)(SSL *s);
00378 int (*ssl_read)(SSL *s,void *buf,int len);
00379 int (*ssl_peek)(SSL *s,void *buf,int len);
00380 int (*ssl_write)(SSL *s,const void *buf,int len);
00381 int (*ssl_shutdown)(SSL *s);
00382 int (*ssl_renegotiate)(SSL *s);
00383 int (*ssl_renegotiate_check)(SSL *s);
00384 long (*ssl_get_message)(SSL *s, int st1, int stn, int mt, long
00385 max, int *ok);
00386 int (*ssl_read_bytes)(SSL *s, int type, unsigned char *buf, int len,
00387 int peek);
00388 int (*ssl_write_bytes)(SSL *s, int type, const void *buf_, int len);
00389 int (*ssl_dispatch_alert)(SSL *s);
00390 long (*ssl_ctrl)(SSL *s,int cmd,long larg,void *parg);
00391 long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,void *parg);
00392 SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr);
00393 int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr);
00394 int (*ssl_pending)(const SSL *s);
00395 int (*num_ciphers)(void);
00396 SSL_CIPHER *(*get_cipher)(unsigned ncipher);
00397 struct ssl_method_st *(*get_ssl_method)(int version);
00398 long (*get_timeout)(void);
00399 struct ssl3_enc_method *ssl3_enc;
00400 int (*ssl_version)(void);
00401 long (*ssl_callback_ctrl)(SSL *s, int cb_id, void (*fp)(void));
00402 long (*ssl_ctx_callback_ctrl)(SSL_CTX *s, int cb_id, void (*fp)(void));
00403 } SSL_METHOD;
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424 typedef struct ssl_session_st
00425 {
00426 int ssl_version;
00427
00428
00429
00430 unsigned int key_arg_length;
00431 unsigned char key_arg[SSL_MAX_KEY_ARG_LENGTH];
00432 int master_key_length;
00433 unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH];
00434
00435 unsigned int session_id_length;
00436 unsigned char session_id[SSL_MAX_SSL_SESSION_ID_LENGTH];
00437
00438
00439
00440 unsigned int sid_ctx_length;
00441 unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH];
00442
00443 #ifndef OPENSSL_NO_KRB5
00444 unsigned int krb5_client_princ_len;
00445 unsigned char krb5_client_princ[SSL_MAX_KRB5_PRINCIPAL_LENGTH];
00446 #endif
00447
00448 int not_resumable;
00449
00450
00451 struct sess_cert_st *sess_cert;
00452
00453
00454
00455
00456
00457 X509 *peer;
00458
00459
00460 long verify_result;
00461
00462 int references;
00463 long timeout;
00464 long time;
00465
00466 int compress_meth;
00467
00468 SSL_CIPHER *cipher;
00469 unsigned long cipher_id;
00470
00471
00472
00473 STACK_OF(SSL_CIPHER) *ciphers;
00474
00475 CRYPTO_EX_DATA ex_data;
00476
00477
00478
00479 struct ssl_session_st *prev,*next;
00480 } SSL_SESSION;
00481
00482
00483 #define SSL_OP_MICROSOFT_SESS_ID_BUG 0x00000001L
00484 #define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x00000002L
00485 #define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x00000008L
00486 #define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x00000010L
00487 #define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x00000020L
00488 #define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x00000040L
00489 #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L
00490 #define SSL_OP_TLS_D5_BUG 0x00000100L
00491 #define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L
00492
00493
00494
00495
00496
00497
00498 #define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800L
00499
00500
00501
00502 #define SSL_OP_ALL 0x00000FFFL
00503
00504
00505 #define SSL_OP_NO_QUERY_MTU 0x00001000L
00506
00507 #define SSL_OP_COOKIE_EXCHANGE 0x00002000L
00508
00509
00510 #define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L
00511
00512 #define SSL_OP_SINGLE_ECDH_USE 0x00080000L
00513
00514 #define SSL_OP_SINGLE_DH_USE 0x00100000L
00515
00516
00517 #define SSL_OP_EPHEMERAL_RSA 0x00200000L
00518
00519
00520 #define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000L
00521
00522
00523
00524
00525 #define SSL_OP_TLS_ROLLBACK_BUG 0x00800000L
00526
00527 #define SSL_OP_NO_SSLv2 0x01000000L
00528 #define SSL_OP_NO_SSLv3 0x02000000L
00529 #define SSL_OP_NO_TLSv1 0x04000000L
00530
00531
00532
00533 #define SSL_OP_PKCS1_CHECK_1 0x08000000L
00534 #define SSL_OP_PKCS1_CHECK_2 0x10000000L
00535 #define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L
00536 #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L
00537
00538
00539
00540
00541 #define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001L
00542
00543
00544
00545
00546 #define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002L
00547
00548
00549 #define SSL_MODE_AUTO_RETRY 0x00000004L
00550
00551 #define SSL_MODE_NO_AUTO_CHAIN 0x00000008L
00552
00553
00554
00555
00556
00557 #define SSL_CTX_set_options(ctx,op) \
00558 SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
00559 #define SSL_CTX_get_options(ctx) \
00560 SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL)
00561 #define SSL_set_options(ssl,op) \
00562 SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL)
00563 #define SSL_get_options(ssl) \
00564 SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL)
00565
00566 #define SSL_CTX_set_mode(ctx,op) \
00567 SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
00568 #define SSL_CTX_get_mode(ctx) \
00569 SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL)
00570 #define SSL_set_mode(ssl,op) \
00571 SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL)
00572 #define SSL_get_mode(ssl) \
00573 SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL)
00574 #define SSL_set_mtu(ssl, mtu) \
00575 SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL)
00576
00577
00578 void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg));
00579 void SSL_set_msg_callback(SSL *ssl, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg));
00580 #define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))
00581 #define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg))
00582
00583
00584
00585 #if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32)
00586 #define SSL_MAX_CERT_LIST_DEFAULT 1024*30
00587 #else
00588 #define SSL_MAX_CERT_LIST_DEFAULT 1024*100
00589 #endif
00590
00591 #define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20)
00592
00593
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606 typedef int (*GEN_SESSION_CB)(const SSL *ssl, unsigned char *id,
00607 unsigned int *id_len);
00608
00609 typedef struct ssl_comp_st
00610 {
00611 int id;
00612 const char *name;
00613 #ifndef OPENSSL_NO_COMP
00614 COMP_METHOD *method;
00615 #else
00616 char *method;
00617 #endif
00618 } SSL_COMP;
00619
00620 DECLARE_STACK_OF(SSL_COMP)
00621
00622 struct ssl_ctx_st
00623 {
00624 SSL_METHOD *method;
00625
00626 STACK_OF(SSL_CIPHER) *cipher_list;
00627
00628 STACK_OF(SSL_CIPHER) *cipher_list_by_id;
00629
00630 struct x509_store_st *cert_store;
00631 struct lhash_st *sessions;
00632
00633
00634 unsigned long session_cache_size;
00635 struct ssl_session_st *session_cache_head;
00636 struct ssl_session_st *session_cache_tail;
00637
00638
00639
00640
00641
00642
00643 int session_cache_mode;
00644
00645
00646
00647
00648 long session_timeout;
00649
00650
00651
00652
00653
00654
00655
00656
00657
00658 int (*new_session_cb)(struct ssl_st *ssl,SSL_SESSION *sess);
00659 void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess);
00660 SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl,
00661 unsigned char *data,int len,int *copy);
00662
00663 struct
00664 {
00665 int sess_connect;
00666 int sess_connect_renegotiate;
00667 int sess_connect_good;
00668 int sess_accept;
00669 int sess_accept_renegotiate;
00670 int sess_accept_good;
00671 int sess_miss;
00672 int sess_timeout;
00673 int sess_cache_full;
00674 int sess_hit;
00675 int sess_cb_hit;
00676
00677
00678
00679
00680
00681 } stats;
00682
00683 int references;
00684
00685
00686 int (*app_verify_callback)(X509_STORE_CTX *, void *);
00687 void *app_verify_arg;
00688
00689
00690
00691
00692 pem_password_cb *default_passwd_callback;
00693
00694
00695 void *default_passwd_callback_userdata;
00696
00697
00698 int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey);
00699
00700
00701 int (*app_gen_cookie_cb)(SSL *ssl, unsigned char *cookie,
00702 unsigned int *cookie_len);
00703
00704
00705 int (*app_verify_cookie_cb)(SSL *ssl, unsigned char *cookie,
00706 unsigned int cookie_len);
00707
00708 CRYPTO_EX_DATA ex_data;
00709
00710 const EVP_MD *rsa_md5;
00711 const EVP_MD *md5;
00712 const EVP_MD *sha1;
00713
00714 STACK_OF(X509) *extra_certs;
00715 STACK_OF(SSL_COMP) *comp_methods;
00716
00717
00718
00719
00720 void (*info_callback)(const SSL *ssl,int type,int val);
00721
00722
00723 STACK_OF(X509_NAME) *client_CA;
00724
00725
00726
00727
00728 unsigned long options;
00729 unsigned long mode;
00730 long max_cert_list;
00731
00732 struct cert_st *cert;
00733 int read_ahead;
00734
00735
00736 void (*msg_callback)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg);
00737 void *msg_callback_arg;
00738
00739 int verify_mode;
00740 unsigned int sid_ctx_length;
00741 unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH];
00742 int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx);
00743
00744
00745 GEN_SESSION_CB generate_session_id;
00746
00747 X509_VERIFY_PARAM *param;
00748
00749 #if 0
00750 int purpose;
00751 int trust;
00752 #endif
00753
00754 int quiet_shutdown;
00755 };
00756
00757 #define SSL_SESS_CACHE_OFF 0x0000
00758 #define SSL_SESS_CACHE_CLIENT 0x0001
00759 #define SSL_SESS_CACHE_SERVER 0x0002
00760 #define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER)
00761 #define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080
00762
00763 #define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100
00764 #define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200
00765 #define SSL_SESS_CACHE_NO_INTERNAL \
00766 (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE)
00767
00768 struct lhash_st *SSL_CTX_sessions(SSL_CTX *ctx);
00769 #define SSL_CTX_sess_number(ctx) \
00770 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL)
00771 #define SSL_CTX_sess_connect(ctx) \
00772 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL)
00773 #define SSL_CTX_sess_connect_good(ctx) \
00774 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL)
00775 #define SSL_CTX_sess_connect_renegotiate(ctx) \
00776 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL)
00777 #define SSL_CTX_sess_accept(ctx) \
00778 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL)
00779 #define SSL_CTX_sess_accept_renegotiate(ctx) \
00780 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL)
00781 #define SSL_CTX_sess_accept_good(ctx) \
00782 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL)
00783 #define SSL_CTX_sess_hits(ctx) \
00784 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL)
00785 #define SSL_CTX_sess_cb_hits(ctx) \
00786 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL)
00787 #define SSL_CTX_sess_misses(ctx) \
00788 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL)
00789 #define SSL_CTX_sess_timeouts(ctx) \
00790 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL)
00791 #define SSL_CTX_sess_cache_full(ctx) \
00792 SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL)
00793
00794 void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, int (*new_session_cb)(struct ssl_st *ssl,SSL_SESSION *sess));
00795 int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx))(struct ssl_st *ssl, SSL_SESSION *sess);
00796 void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess));
00797 void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx))(struct ssl_ctx_st *ctx, SSL_SESSION *sess);
00798 void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, unsigned char *data,int len,int *copy));
00799 SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx))(struct ssl_st *ssl, unsigned char *Data, int len, int *copy);
00800 void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(const SSL *ssl,int type,int val));
00801 void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(const SSL *ssl,int type,int val);
00802 void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey));
00803 int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey);
00804 void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, int (*app_gen_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len));
00805 void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, int (*app_verify_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int cookie_len));
00806
00807 #define SSL_NOTHING 1
00808 #define SSL_WRITING 2
00809 #define SSL_READING 3
00810 #define SSL_X509_LOOKUP 4
00811
00812
00813 #define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING)
00814 #define SSL_want_read(s) (SSL_want(s) == SSL_READING)
00815 #define SSL_want_write(s) (SSL_want(s) == SSL_WRITING)
00816 #define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP)
00817
00818 struct ssl_st
00819 {
00820
00821
00822
00823 int version;
00824 int type;
00825
00826 SSL_METHOD *method;
00827
00828
00829
00830
00831
00832 #ifndef OPENSSL_NO_BIO
00833 BIO *rbio;
00834 BIO *wbio;
00835 BIO *bbio;
00836
00837 #else
00838 char *rbio;
00839 char *wbio;
00840 char *bbio;
00841 #endif
00842
00843
00844
00845
00846 int rwstate;
00847
00848
00849 int in_handshake;
00850 int (*handshake_func)(SSL *);
00851
00852
00853
00854
00855
00856
00857
00858
00859
00860 int server;
00861
00862 int new_session;
00863
00864
00865
00866
00867
00868 int quiet_shutdown;
00869 int shutdown;
00870
00871 int state;
00872 int rstate;
00873
00874 BUF_MEM *init_buf;
00875 void *init_msg;
00876 int init_num;
00877 int init_off;
00878
00879
00880 unsigned char *packet;
00881 unsigned int packet_length;
00882
00883 struct ssl2_state_st *s2;
00884 struct ssl3_state_st *s3;
00885 struct dtls1_state_st *d1;
00886
00887 int read_ahead;
00888
00889
00890
00891 void (*msg_callback)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg);
00892 void *msg_callback_arg;
00893
00894 int hit;
00895
00896 X509_VERIFY_PARAM *param;
00897
00898 #if 0
00899 int purpose;
00900 int trust;
00901 #endif
00902
00903
00904 STACK_OF(SSL_CIPHER) *cipher_list;
00905 STACK_OF(SSL_CIPHER) *cipher_list_by_id;
00906
00907
00908
00909
00910 EVP_CIPHER_CTX *enc_read_ctx;
00911 const EVP_MD *read_hash;
00912 #ifndef OPENSSL_NO_COMP
00913 COMP_CTX *expand;
00914 #else
00915 char *expand;
00916 #endif
00917
00918 EVP_CIPHER_CTX *enc_write_ctx;
00919 const EVP_MD *write_hash;
00920 #ifndef OPENSSL_NO_COMP
00921 COMP_CTX *compress;
00922 #else
00923 char *compress;
00924 #endif
00925
00926
00927
00928
00929
00930 struct cert_st *cert;
00931
00932
00933
00934 unsigned int sid_ctx_length;
00935 unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH];
00936
00937
00938 SSL_SESSION *session;
00939
00940
00941 GEN_SESSION_CB generate_session_id;
00942
00943
00944 int verify_mode;
00945
00946 int (*verify_callback)(int ok,X509_STORE_CTX *ctx);
00947
00948 void (*info_callback)(const SSL *ssl,int type,int val);
00949
00950 int error;
00951 int error_code;
00952
00953 #ifndef OPENSSL_NO_KRB5
00954 KSSL_CTX *kssl_ctx;
00955 #endif
00956
00957 SSL_CTX *ctx;
00958
00959
00960 int debug;
00961
00962
00963 long verify_result;
00964 CRYPTO_EX_DATA ex_data;
00965
00966
00967 STACK_OF(X509_NAME) *client_CA;
00968
00969 int references;
00970 unsigned long options;
00971 unsigned long mode;
00972 long max_cert_list;
00973 int first_packet;
00974 int client_version;
00975
00976 };
00977
00978 #ifdef __cplusplus
00979 }
00980 #endif
00981
00982 #include <openssl/ssl2.h>
00983 #include <openssl/ssl3.h>
00984 #include <openssl/tls1.h>
00985 #include <openssl/dtls1.h>
00986 #include <openssl/ssl23.h>
00987
00988 #ifdef __cplusplus
00989 extern "C" {
00990 #endif
00991
00992
00993 #define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg))
00994 #define SSL_get_app_data(s) (SSL_get_ex_data(s,0))
00995 #define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a))
00996 #define SSL_SESSION_get_app_data(s) (SSL_SESSION_get_ex_data(s,0))
00997 #define SSL_CTX_get_app_data(ctx) (SSL_CTX_get_ex_data(ctx,0))
00998 #define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg))
00999
01000
01001
01002
01003
01004
01005
01006
01007 #define SSL_ST_CONNECT 0x1000
01008 #define SSL_ST_ACCEPT 0x2000
01009 #define SSL_ST_MASK 0x0FFF
01010 #define SSL_ST_INIT (SSL_ST_CONNECT|SSL_ST_ACCEPT)
01011 #define SSL_ST_BEFORE 0x4000
01012 #define SSL_ST_OK 0x03
01013 #define SSL_ST_RENEGOTIATE (0x04|SSL_ST_INIT)
01014
01015 #define SSL_CB_LOOP 0x01
01016 #define SSL_CB_EXIT 0x02
01017 #define SSL_CB_READ 0x04
01018 #define SSL_CB_WRITE 0x08
01019 #define SSL_CB_ALERT 0x4000
01020 #define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ)
01021 #define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE)
01022 #define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP)
01023 #define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT)
01024 #define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP)
01025 #define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT)
01026 #define SSL_CB_HANDSHAKE_START 0x10
01027 #define SSL_CB_HANDSHAKE_DONE 0x20
01028
01029
01030 #define SSL_get_state(a) SSL_state(a)
01031 #define SSL_is_init_finished(a) (SSL_state(a) == SSL_ST_OK)
01032 #define SSL_in_init(a) (SSL_state(a)&SSL_ST_INIT)
01033 #define SSL_in_before(a) (SSL_state(a)&SSL_ST_BEFORE)
01034 #define SSL_in_connect_init(a) (SSL_state(a)&SSL_ST_CONNECT)
01035 #define SSL_in_accept_init(a) (SSL_state(a)&SSL_ST_ACCEPT)
01036
01037
01038
01039 #define SSL_ST_READ_HEADER 0xF0
01040 #define SSL_ST_READ_BODY 0xF1
01041 #define SSL_ST_READ_DONE 0xF2
01042
01043
01044
01045
01046
01047 size_t SSL_get_finished(const SSL *s, void *buf, size_t count);
01048 size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count);
01049
01050
01051
01052 #define SSL_VERIFY_NONE 0x00
01053 #define SSL_VERIFY_PEER 0x01
01054 #define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
01055 #define SSL_VERIFY_CLIENT_ONCE 0x04
01056
01057 #define OpenSSL_add_ssl_algorithms() SSL_library_init()
01058 #define SSLeay_add_ssl_algorithms() SSL_library_init()
01059
01060
01061 #if 0
01062 #define SSL_CTX_set_default_verify(a,b,c) SSL_CTX_set_verify(a,b,c)
01063 #define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n)
01064 #define SSL_add_session(a,b) SSL_CTX_add_session((a),(b))
01065 #define SSL_remove_session(a,b) SSL_CTX_remove_session((a),(b))
01066 #define SSL_flush_sessions(a,b) SSL_CTX_flush_sessions((a),(b))
01067 #endif
01068
01069 #define SSL_get_cipher(s) \
01070 SSL_CIPHER_get_name(SSL_get_current_cipher(s))
01071 #define SSL_get_cipher_bits(s,np) \
01072 SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np)
01073 #define SSL_get_cipher_version(s) \
01074 SSL_CIPHER_get_version(SSL_get_current_cipher(s))
01075 #define SSL_get_cipher_name(s) \
01076 SSL_CIPHER_get_name(SSL_get_current_cipher(s))
01077 #define SSL_get_time(a) SSL_SESSION_get_time(a)
01078 #define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b))
01079 #define SSL_get_timeout(a) SSL_SESSION_get_timeout(a)
01080 #define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b))
01081
01082 #if 1
01083 #define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id)
01084 #define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id)
01085 #define PEM_read_SSL_SESSION(fp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read( \
01086 (char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,fp,(char **)x,cb,u)
01087 #define PEM_read_bio_SSL_SESSION(bp,x,cb,u) PEM_ASN1_read_bio_of(SSL_SESSION,d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,x,cb,u)
01088 #define PEM_write_SSL_SESSION(fp,x) \
01089 PEM_ASN1_write((int (*)())i2d_SSL_SESSION, \
01090 PEM_STRING_SSL_SESSION,fp, (char *)x, NULL,NULL,0,NULL,NULL)
01091 #define PEM_write_bio_SSL_SESSION(bp,x) \
01092 PEM_ASN1_write_bio_of(SSL_SESSION,i2d_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,x,NULL,NULL,0,NULL,NULL)
01093 #endif
01094
01095 #define SSL_AD_REASON_OFFSET 1000
01096
01097 #define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY
01098 #define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE
01099 #define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC
01100 #define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED
01101 #define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW
01102 #define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE
01103 #define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE
01104 #define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE
01105 #define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE
01106 #define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE
01107 #define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED
01108 #define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED
01109 #define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN
01110 #define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER
01111 #define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA
01112 #define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED
01113 #define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR
01114 #define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR
01115 #define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION
01116 #define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION
01117 #define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY
01118 #define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR
01119 #define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED
01120 #define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION
01121
01122 #define SSL_ERROR_NONE 0
01123 #define SSL_ERROR_SSL 1
01124 #define SSL_ERROR_WANT_READ 2
01125 #define SSL_ERROR_WANT_WRITE 3
01126 #define SSL_ERROR_WANT_X509_LOOKUP 4
01127 #define SSL_ERROR_SYSCALL 5
01128 #define SSL_ERROR_ZERO_RETURN 6
01129 #define SSL_ERROR_WANT_CONNECT 7
01130 #define SSL_ERROR_WANT_ACCEPT 8
01131
01132 #define SSL_CTRL_NEED_TMP_RSA 1
01133 #define SSL_CTRL_SET_TMP_RSA 2
01134 #define SSL_CTRL_SET_TMP_DH 3
01135 #define SSL_CTRL_SET_TMP_ECDH 4
01136 #define SSL_CTRL_SET_TMP_RSA_CB 5
01137 #define SSL_CTRL_SET_TMP_DH_CB 6
01138 #define SSL_CTRL_SET_TMP_ECDH_CB 7
01139
01140 #define SSL_CTRL_GET_SESSION_REUSED 8
01141 #define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9
01142 #define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10
01143 #define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11
01144 #define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12
01145 #define SSL_CTRL_GET_FLAGS 13
01146 #define SSL_CTRL_EXTRA_CHAIN_CERT 14
01147
01148 #define SSL_CTRL_SET_MSG_CALLBACK 15
01149 #define SSL_CTRL_SET_MSG_CALLBACK_ARG 16
01150
01151
01152 #define SSL_CTRL_SET_MTU 17
01153
01154 #define SSL_CTRL_SESS_NUMBER 20
01155 #define SSL_CTRL_SESS_CONNECT 21
01156 #define SSL_CTRL_SESS_CONNECT_GOOD 22
01157 #define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23
01158 #define SSL_CTRL_SESS_ACCEPT 24
01159 #define SSL_CTRL_SESS_ACCEPT_GOOD 25
01160 #define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26
01161 #define SSL_CTRL_SESS_HIT 27
01162 #define SSL_CTRL_SESS_CB_HIT 28
01163 #define SSL_CTRL_SESS_MISSES 29
01164 #define SSL_CTRL_SESS_TIMEOUTS 30
01165 #define SSL_CTRL_SESS_CACHE_FULL 31
01166 #define SSL_CTRL_OPTIONS 32
01167 #define SSL_CTRL_MODE 33
01168
01169 #define SSL_CTRL_GET_READ_AHEAD 40
01170 #define SSL_CTRL_SET_READ_AHEAD 41
01171 #define SSL_CTRL_SET_SESS_CACHE_SIZE 42
01172 #define SSL_CTRL_GET_SESS_CACHE_SIZE 43
01173 #define SSL_CTRL_SET_SESS_CACHE_MODE 44
01174 #define SSL_CTRL_GET_SESS_CACHE_MODE 45
01175
01176 #define SSL_CTRL_GET_MAX_CERT_LIST 50
01177 #define SSL_CTRL_SET_MAX_CERT_LIST 51
01178
01179 #define SSL_session_reused(ssl) \
01180 SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL)
01181 #define SSL_num_renegotiations(ssl) \
01182 SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL)
01183 #define SSL_clear_num_renegotiations(ssl) \
01184 SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL)
01185 #define SSL_total_renegotiations(ssl) \
01186 SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL)
01187
01188 #define SSL_CTX_need_tmp_RSA(ctx) \
01189 SSL_CTX_ctrl(ctx,SSL_CTRL_NEED_TMP_RSA,0,NULL)
01190 #define SSL_CTX_set_tmp_rsa(ctx,rsa) \
01191 SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa)
01192 #define SSL_CTX_set_tmp_dh(ctx,dh) \
01193 SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
01194 #define SSL_CTX_set_tmp_ecdh(ctx,ecdh) \
01195 SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
01196
01197 #define SSL_need_tmp_RSA(ssl) \
01198 SSL_ctrl(ssl,SSL_CTRL_NEED_TMP_RSA,0,NULL)
01199 #define SSL_set_tmp_rsa(ssl,rsa) \
01200 SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa)
01201 #define SSL_set_tmp_dh(ssl,dh) \
01202 SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
01203 #define SSL_set_tmp_ecdh(ssl,ecdh) \
01204 SSL_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
01205
01206 #define SSL_CTX_add_extra_chain_cert(ctx,x509) \
01207 SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
01208
01209 #ifndef OPENSSL_NO_BIO
01210 BIO_METHOD *BIO_f_ssl(void);
01211 BIO *BIO_new_ssl(SSL_CTX *ctx,int client);
01212 BIO *BIO_new_ssl_connect(SSL_CTX *ctx);
01213 BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx);
01214 int BIO_ssl_copy_session_id(BIO *to,BIO *from);
01215 void BIO_ssl_shutdown(BIO *ssl_bio);
01216
01217 #endif
01218
01219 int SSL_CTX_set_cipher_list(SSL_CTX *,const char *str);
01220 SSL_CTX *SSL_CTX_new(SSL_METHOD *meth);
01221 void SSL_CTX_free(SSL_CTX *);
01222 long SSL_CTX_set_timeout(SSL_CTX *ctx,long t);
01223 long SSL_CTX_get_timeout(const SSL_CTX *ctx);
01224 X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *);
01225 void SSL_CTX_set_cert_store(SSL_CTX *,X509_STORE *);
01226 int SSL_want(const SSL *s);
01227 int SSL_clear(SSL *s);
01228
01229 void SSL_CTX_flush_sessions(SSL_CTX *ctx,long tm);
01230
01231 SSL_CIPHER *SSL_get_current_cipher(const SSL *s);
01232 int SSL_CIPHER_get_bits(const SSL_CIPHER *c,int *alg_bits);
01233 char * SSL_CIPHER_get_version(const SSL_CIPHER *c);
01234 const char * SSL_CIPHER_get_name(const SSL_CIPHER *c);
01235
01236 int SSL_get_fd(const SSL *s);
01237 int SSL_get_rfd(const SSL *s);
01238 int SSL_get_wfd(const SSL *s);
01239 const char * SSL_get_cipher_list(const SSL *s,int n);
01240 char * SSL_get_shared_ciphers(const SSL *s, char *buf, int len);
01241 int SSL_get_read_ahead(const SSL * s);
01242 int SSL_pending(const SSL *s);
01243 #ifndef OPENSSL_NO_SOCK
01244 int SSL_set_fd(SSL *s, int fd);
01245 int SSL_set_rfd(SSL *s, int fd);
01246 int SSL_set_wfd(SSL *s, int fd);
01247 #endif
01248 #ifndef OPENSSL_NO_BIO
01249 void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio);
01250 BIO * SSL_get_rbio(const SSL *s);
01251 BIO * SSL_get_wbio(const SSL *s);
01252 #endif
01253 int SSL_set_cipher_list(SSL *s, const char *str);
01254 void SSL_set_read_ahead(SSL *s, int yes);
01255 int SSL_get_verify_mode(const SSL *s);
01256 int SSL_get_verify_depth(const SSL *s);
01257 int (*SSL_get_verify_callback(const SSL *s))(int,X509_STORE_CTX *);
01258 void SSL_set_verify(SSL *s, int mode,
01259 int (*callback)(int ok,X509_STORE_CTX *ctx));
01260 void SSL_set_verify_depth(SSL *s, int depth);
01261 #ifndef OPENSSL_NO_RSA
01262 int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);
01263 #endif
01264 int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len);
01265 int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);
01266 int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, const unsigned char *d, long len);
01267 int SSL_use_certificate(SSL *ssl, X509 *x);
01268 int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len);
01269
01270 #ifndef OPENSSL_NO_STDIO
01271 int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type);
01272 int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type);
01273 int SSL_use_certificate_file(SSL *ssl, const char *file, int type);
01274 int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type);
01275 int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);
01276 int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);
01277 int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file);
01278 STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file);
01279 int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
01280 const char *file);
01281 #ifndef OPENSSL_SYS_VMS
01282 #ifndef OPENSSL_SYS_MACINTOSH_CLASSIC
01283 int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs,
01284 const char *dir);
01285 #endif
01286 #endif
01287
01288 #endif
01289
01290 void SSL_load_error_strings(void );
01291 const char *SSL_state_string(const SSL *s);
01292 const char *SSL_rstate_string(const SSL *s);
01293 const char *SSL_state_string_long(const SSL *s);
01294 const char *SSL_rstate_string_long(const SSL *s);
01295 long SSL_SESSION_get_time(const SSL_SESSION *s);
01296 long SSL_SESSION_set_time(SSL_SESSION *s, long t);
01297 long SSL_SESSION_get_timeout(const SSL_SESSION *s);
01298 long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);
01299 void SSL_copy_session_id(SSL *to,const SSL *from);
01300
01301 SSL_SESSION *SSL_SESSION_new(void);
01302 unsigned long SSL_SESSION_hash(const SSL_SESSION *a);
01303 int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b);
01304 const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len);
01305 #ifndef OPENSSL_NO_FP_API
01306 int SSL_SESSION_print_fp(FILE *fp,const SSL_SESSION *ses);
01307 #endif
01308 #ifndef OPENSSL_NO_BIO
01309 int SSL_SESSION_print(BIO *fp,const SSL_SESSION *ses);
01310 #endif
01311 void SSL_SESSION_free(SSL_SESSION *ses);
01312 int i2d_SSL_SESSION(SSL_SESSION *in,unsigned char **pp);
01313 int SSL_set_session(SSL *to, SSL_SESSION *session);
01314 int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c);
01315 int SSL_CTX_remove_session(SSL_CTX *,SSL_SESSION *c);
01316 int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB);
01317 int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB);
01318 int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,
01319 unsigned int id_len);
01320 SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a,const unsigned char **pp,
01321 long length);
01322
01323 #ifdef HEADER_X509_H
01324 X509 * SSL_get_peer_certificate(const SSL *s);
01325 #endif
01326
01327 STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s);
01328
01329 int SSL_CTX_get_verify_mode(const SSL_CTX *ctx);
01330 int SSL_CTX_get_verify_depth(const SSL_CTX *ctx);
01331 int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int,X509_STORE_CTX *);
01332 void SSL_CTX_set_verify(SSL_CTX *ctx,int mode,
01333 int (*callback)(int, X509_STORE_CTX *));
01334 void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth);
01335 void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(X509_STORE_CTX *,void *), void *arg);
01336 #ifndef OPENSSL_NO_RSA
01337 int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
01338 #endif
01339 int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, long len);
01340 int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);
01341 int SSL_CTX_use_PrivateKey_ASN1(int pk,SSL_CTX *ctx,
01342 const unsigned char *d, long len);
01343 int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);
01344 int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned char *d);
01345
01346 void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);
01347 void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);
01348
01349 int SSL_CTX_check_private_key(const SSL_CTX *ctx);
01350 int SSL_check_private_key(const SSL *ctx);
01351
01352 int SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx,
01353 unsigned int sid_ctx_len);
01354
01355 SSL * SSL_new(SSL_CTX *ctx);
01356 int SSL_set_session_id_context(SSL *ssl,const unsigned char *sid_ctx,
01357 unsigned int sid_ctx_len);
01358
01359 int SSL_CTX_set_purpose(SSL_CTX *s, int purpose);
01360 int SSL_set_purpose(SSL *s, int purpose);
01361 int SSL_CTX_set_trust(SSL_CTX *s, int trust);
01362 int SSL_set_trust(SSL *s, int trust);
01363
01364 void SSL_free(SSL *ssl);
01365 int SSL_accept(SSL *ssl);
01366 int SSL_connect(SSL *ssl);
01367 int SSL_read(SSL *ssl,void *buf,int num);
01368 int SSL_peek(SSL *ssl,void *buf,int num);
01369 int SSL_write(SSL *ssl,const void *buf,int num);
01370 long SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg);
01371 long SSL_callback_ctrl(SSL *, int, void (*)(void));
01372 long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, void *parg);
01373 long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)(void));
01374
01375 int SSL_get_error(const SSL *s,int ret_code);
01376 const char *SSL_get_version(const SSL *s);
01377
01378
01379 int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth);
01380
01381 SSL_METHOD *SSLv2_method(void);
01382 SSL_METHOD *SSLv2_server_method(void);
01383 SSL_METHOD *SSLv2_client_method(void);
01384
01385 SSL_METHOD *SSLv3_method(void);
01386 SSL_METHOD *SSLv3_server_method(void);
01387 SSL_METHOD *SSLv3_client_method(void);
01388
01389 SSL_METHOD *SSLv23_method(void);
01390 SSL_METHOD *SSLv23_server_method(void);
01391 SSL_METHOD *SSLv23_client_method(void);
01392
01393 SSL_METHOD *TLSv1_method(void);
01394 SSL_METHOD *TLSv1_server_method(void);
01395 SSL_METHOD *TLSv1_client_method(void);
01396
01397 SSL_METHOD *DTLSv1_method(void);
01398 SSL_METHOD *DTLSv1_server_method(void);
01399 SSL_METHOD *DTLSv1_client_method(void);
01400
01401 STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s);
01402
01403 int SSL_do_handshake(SSL *s);
01404 int SSL_renegotiate(SSL *s);
01405 int SSL_renegotiate_pending(SSL *s);
01406 int SSL_shutdown(SSL *s);
01407
01408 SSL_METHOD *SSL_get_ssl_method(SSL *s);
01409 int SSL_set_ssl_method(SSL *s,SSL_METHOD *method);
01410 const char *SSL_alert_type_string_long(int value);
01411 const char *SSL_alert_type_string(int value);
01412 const char *SSL_alert_desc_string_long(int value);
01413 const char *SSL_alert_desc_string(int value);
01414
01415 void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
01416 void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
01417 STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
01418 STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s);
01419 int SSL_add_client_CA(SSL *ssl,X509 *x);
01420 int SSL_CTX_add_client_CA(SSL_CTX *ctx,X509 *x);
01421
01422 void SSL_set_connect_state(SSL *s);
01423 void SSL_set_accept_state(SSL *s);
01424
01425 long SSL_get_default_timeout(const SSL *s);
01426
01427 int SSL_library_init(void );
01428
01429 char *SSL_CIPHER_description(SSL_CIPHER *,char *buf,int size);
01430 STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk);
01431
01432 SSL *SSL_dup(SSL *ssl);
01433
01434 X509 *SSL_get_certificate(const SSL *ssl);
01435 struct evp_pkey_st *SSL_get_privatekey(SSL *ssl);
01436
01437 void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode);
01438 int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);
01439 void SSL_set_quiet_shutdown(SSL *ssl,int mode);
01440 int SSL_get_quiet_shutdown(const SSL *ssl);
01441 void SSL_set_shutdown(SSL *ssl,int mode);
01442 int SSL_get_shutdown(const SSL *ssl);
01443 int SSL_version(const SSL *ssl);
01444 int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);
01445 int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
01446 const char *CApath);
01447 #define SSL_get0_session SSL_get_session
01448 SSL_SESSION *SSL_get_session(const SSL *ssl);
01449 SSL_SESSION *SSL_get1_session(SSL *ssl);
01450 SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);
01451 void SSL_set_info_callback(SSL *ssl,
01452 void (*cb)(const SSL *ssl,int type,int val));
01453 void (*SSL_get_info_callback(const SSL *ssl))(const SSL *ssl,int type,int val);
01454 int SSL_state(const SSL *ssl);
01455
01456 void SSL_set_verify_result(SSL *ssl,long v);
01457 long SSL_get_verify_result(const SSL *ssl);
01458
01459 int SSL_set_ex_data(SSL *ssl,int idx,void *data);
01460 void *SSL_get_ex_data(const SSL *ssl,int idx);
01461 int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
01462 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
01463
01464 int SSL_SESSION_set_ex_data(SSL_SESSION *ss,int idx,void *data);
01465 void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss,int idx);
01466 int SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
01467 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
01468
01469 int SSL_CTX_set_ex_data(SSL_CTX *ssl,int idx,void *data);
01470 void *SSL_CTX_get_ex_data(const SSL_CTX *ssl,int idx);
01471 int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
01472 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
01473
01474 int SSL_get_ex_data_X509_STORE_CTX_idx(void );
01475
01476 #define SSL_CTX_sess_set_cache_size(ctx,t) \
01477 SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL)
01478 #define SSL_CTX_sess_get_cache_size(ctx) \
01479 SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL)
01480 #define SSL_CTX_set_session_cache_mode(ctx,m) \
01481 SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
01482 #define SSL_CTX_get_session_cache_mode(ctx) \
01483 SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL)
01484
01485 #define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx)
01486 #define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m)
01487 #define SSL_CTX_get_read_ahead(ctx) \
01488 SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL)
01489 #define SSL_CTX_set_read_ahead(ctx,m) \
01490 SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL)
01491 #define SSL_CTX_get_max_cert_list(ctx) \
01492 SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
01493 #define SSL_CTX_set_max_cert_list(ctx,m) \
01494 SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)
01495 #define SSL_get_max_cert_list(ssl) \
01496 SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL)
01497 #define SSL_set_max_cert_list(ssl,m) \
01498 SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL)
01499
01500
01501 #ifndef OPENSSL_NO_RSA
01502 void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,
01503 RSA *(*cb)(SSL *ssl,int is_export,
01504 int keylength));
01505
01506 void SSL_set_tmp_rsa_callback(SSL *ssl,
01507 RSA *(*cb)(SSL *ssl,int is_export,
01508 int keylength));
01509 #endif
01510 #ifndef OPENSSL_NO_DH
01511 void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,
01512 DH *(*dh)(SSL *ssl,int is_export,
01513 int keylength));
01514 void SSL_set_tmp_dh_callback(SSL *ssl,
01515 DH *(*dh)(SSL *ssl,int is_export,
01516 int keylength));
01517 #endif
01518 #ifndef OPENSSL_NO_ECDH
01519 void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx,
01520 EC_KEY *(*ecdh)(SSL *ssl,int is_export,
01521 int keylength));
01522 void SSL_set_tmp_ecdh_callback(SSL *ssl,
01523 EC_KEY *(*ecdh)(SSL *ssl,int is_export,
01524 int keylength));
01525 #endif
01526
01527 #ifndef OPENSSL_NO_COMP
01528 const COMP_METHOD *SSL_get_current_compression(SSL *s);
01529 const COMP_METHOD *SSL_get_current_expansion(SSL *s);
01530 const char *SSL_COMP_get_name(const COMP_METHOD *comp);
01531 STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
01532 int SSL_COMP_add_compression_method(int id,COMP_METHOD *cm);
01533 #else
01534 const void *SSL_get_current_compression(SSL *s);
01535 const void *SSL_get_current_expansion(SSL *s);
01536 const char *SSL_COMP_get_name(const void *comp);
01537 void *SSL_COMP_get_compression_methods(void);
01538 int SSL_COMP_add_compression_method(int id,void *cm);
01539 #endif
01540
01541
01542
01543
01544
01545 void ERR_load_SSL_strings(void);
01546
01547
01548
01549
01550 #define SSL_F_CLIENT_CERTIFICATE 100
01551 #define SSL_F_CLIENT_FINISHED 167
01552 #define SSL_F_CLIENT_HELLO 101
01553 #define SSL_F_CLIENT_MASTER_KEY 102
01554 #define SSL_F_D2I_SSL_SESSION 103
01555 #define SSL_F_DO_DTLS1_WRITE 245
01556 #define SSL_F_DO_SSL3_WRITE 104
01557 #define SSL_F_DTLS1_ACCEPT 246
01558 #define SSL_F_DTLS1_BUFFER_RECORD 247
01559 #define SSL_F_DTLS1_CLIENT_HELLO 248
01560 #define SSL_F_DTLS1_CONNECT 249
01561 #define SSL_F_DTLS1_ENC 250
01562 #define SSL_F_DTLS1_GET_HELLO_VERIFY 251
01563 #define SSL_F_DTLS1_GET_MESSAGE 252
01564 #define SSL_F_DTLS1_GET_MESSAGE_FRAGMENT 253
01565 #define SSL_F_DTLS1_GET_RECORD 254
01566 #define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255
01567 #define SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE 256
01568 #define SSL_F_DTLS1_PROCESS_RECORD 257
01569 #define SSL_F_DTLS1_READ_BYTES 258
01570 #define SSL_F_DTLS1_READ_FAILED 259
01571 #define SSL_F_DTLS1_SEND_CERTIFICATE_REQUEST 260
01572 #define SSL_F_DTLS1_SEND_CLIENT_CERTIFICATE 261
01573 #define SSL_F_DTLS1_SEND_CLIENT_KEY_EXCHANGE 262
01574 #define SSL_F_DTLS1_SEND_CLIENT_VERIFY 263
01575 #define SSL_F_DTLS1_SEND_HELLO_VERIFY_REQUEST 264
01576 #define SSL_F_DTLS1_SEND_SERVER_CERTIFICATE 265
01577 #define SSL_F_DTLS1_SEND_SERVER_HELLO 266
01578 #define SSL_F_DTLS1_SEND_SERVER_KEY_EXCHANGE 267
01579 #define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268
01580 #define SSL_F_GET_CLIENT_FINISHED 105
01581 #define SSL_F_GET_CLIENT_HELLO 106
01582 #define SSL_F_GET_CLIENT_MASTER_KEY 107
01583 #define SSL_F_GET_SERVER_FINISHED 108
01584 #define SSL_F_GET_SERVER_HELLO 109
01585 #define SSL_F_GET_SERVER_VERIFY 110
01586 #define SSL_F_I2D_SSL_SESSION 111
01587 #define SSL_F_READ_N 112
01588 #define SSL_F_REQUEST_CERTIFICATE 113
01589 #define SSL_F_SERVER_FINISH 239
01590 #define SSL_F_SERVER_HELLO 114
01591 #define SSL_F_SERVER_VERIFY 240
01592 #define SSL_F_SSL23_ACCEPT 115
01593 #define SSL_F_SSL23_CLIENT_HELLO 116
01594 #define SSL_F_SSL23_CONNECT 117
01595 #define SSL_F_SSL23_GET_CLIENT_HELLO 118
01596 #define SSL_F_SSL23_GET_SERVER_HELLO 119
01597 #define SSL_F_SSL23_PEEK 237
01598 #define SSL_F_SSL23_READ 120
01599 #define SSL_F_SSL23_WRITE 121
01600 #define SSL_F_SSL2_ACCEPT 122
01601 #define SSL_F_SSL2_CONNECT 123
01602 #define SSL_F_SSL2_ENC_INIT 124
01603 #define SSL_F_SSL2_GENERATE_KEY_MATERIAL 241
01604 #define SSL_F_SSL2_PEEK 234
01605 #define SSL_F_SSL2_READ 125
01606 #define SSL_F_SSL2_READ_INTERNAL 236
01607 #define SSL_F_SSL2_SET_CERTIFICATE 126
01608 #define SSL_F_SSL2_WRITE 127
01609 #define SSL_F_SSL3_ACCEPT 128
01610 #define SSL_F_SSL3_CALLBACK_CTRL 233
01611 #define SSL_F_SSL3_CHANGE_CIPHER_STATE 129
01612 #define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130
01613 #define SSL_F_SSL3_CLIENT_HELLO 131
01614 #define SSL_F_SSL3_CONNECT 132
01615 #define SSL_F_SSL3_CTRL 213
01616 #define SSL_F_SSL3_CTX_CTRL 133
01617 #define SSL_F_SSL3_ENC 134
01618 #define SSL_F_SSL3_GENERATE_KEY_BLOCK 238
01619 #define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135
01620 #define SSL_F_SSL3_GET_CERT_VERIFY 136
01621 #define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137
01622 #define SSL_F_SSL3_GET_CLIENT_HELLO 138
01623 #define SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE 139
01624 #define SSL_F_SSL3_GET_FINISHED 140
01625 #define SSL_F_SSL3_GET_KEY_EXCHANGE 141
01626 #define SSL_F_SSL3_GET_MESSAGE 142
01627 #define SSL_F_SSL3_GET_RECORD 143
01628 #define SSL_F_SSL3_GET_SERVER_CERTIFICATE 144
01629 #define SSL_F_SSL3_GET_SERVER_DONE 145
01630 #define SSL_F_SSL3_GET_SERVER_HELLO 146
01631 #define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147
01632 #define SSL_F_SSL3_PEEK 235
01633 #define SSL_F_SSL3_READ_BYTES 148
01634 #define SSL_F_SSL3_READ_N 149
01635 #define SSL_F_SSL3_SEND_CERTIFICATE_REQUEST 150
01636 #define SSL_F_SSL3_SEND_CLIENT_CERTIFICATE 151
01637 #define SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE 152
01638 #define SSL_F_SSL3_SEND_CLIENT_VERIFY 153
01639 #define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154
01640 #define SSL_F_SSL3_SEND_SERVER_HELLO 242
01641 #define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155
01642 #define SSL_F_SSL3_SETUP_BUFFERS 156
01643 #define SSL_F_SSL3_SETUP_KEY_BLOCK 157
01644 #define SSL_F_SSL3_WRITE_BYTES 158
01645 #define SSL_F_SSL3_WRITE_PENDING 159
01646 #define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215
01647 #define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216
01648 #define SSL_F_SSL_BAD_METHOD 160
01649 #define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161
01650 #define SSL_F_SSL_CERT_DUP 221
01651 #define SSL_F_SSL_CERT_INST 222
01652 #define SSL_F_SSL_CERT_INSTANTIATE 214
01653 #define SSL_F_SSL_CERT_NEW 162
01654 #define SSL_F_SSL_CHECK_PRIVATE_KEY 163
01655 #define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230
01656 #define SSL_F_SSL_CIPHER_STRENGTH_SORT 231
01657 #define SSL_F_SSL_CLEAR 164
01658 #define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165
01659 #define SSL_F_SSL_CREATE_CIPHER_LIST 166
01660 #define SSL_F_SSL_CTRL 232
01661 #define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168
01662 #define SSL_F_SSL_CTX_NEW 169
01663 #define SSL_F_SSL_CTX_SET_CIPHER_LIST 269
01664 #define SSL_F_SSL_CTX_SET_PURPOSE 226
01665 #define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219
01666 #define SSL_F_SSL_CTX_SET_SSL_VERSION 170
01667 #define SSL_F_SSL_CTX_SET_TRUST 229
01668 #define SSL_F_SSL_CTX_USE_CERTIFICATE 171
01669 #define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172
01670 #define SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE 220
01671 #define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173
01672 #define SSL_F_SSL_CTX_USE_PRIVATEKEY 174
01673 #define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175
01674 #define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176
01675 #define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177
01676 #define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178
01677 #define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179
01678 #define SSL_F_SSL_DO_HANDSHAKE 180
01679 #define SSL_F_SSL_GET_NEW_SESSION 181
01680 #define SSL_F_SSL_GET_PREV_SESSION 217
01681 #define SSL_F_SSL_GET_SERVER_SEND_CERT 182
01682 #define SSL_F_SSL_GET_SIGN_PKEY 183
01683 #define SSL_F_SSL_INIT_WBIO_BUFFER 184
01684 #define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185
01685 #define SSL_F_SSL_NEW 186
01686 #define SSL_F_SSL_PEEK 270
01687 #define SSL_F_SSL_READ 223
01688 #define SSL_F_SSL_RSA_PRIVATE_DECRYPT 187
01689 #define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188
01690 #define SSL_F_SSL_SESSION_NEW 189
01691 #define SSL_F_SSL_SESSION_PRINT_FP 190
01692 #define SSL_F_SSL_SESS_CERT_NEW 225
01693 #define SSL_F_SSL_SET_CERT 191
01694 #define SSL_F_SSL_SET_CIPHER_LIST 271
01695 #define SSL_F_SSL_SET_FD 192
01696 #define SSL_F_SSL_SET_PKEY 193
01697 #define SSL_F_SSL_SET_PURPOSE 227
01698 #define SSL_F_SSL_SET_RFD 194
01699 #define SSL_F_SSL_SET_SESSION 195
01700 #define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218
01701 #define SSL_F_SSL_SET_TRUST 228
01702 #define SSL_F_SSL_SET_WFD 196
01703 #define SSL_F_SSL_SHUTDOWN 224
01704 #define SSL_F_SSL_UNDEFINED_CONST_FUNCTION 243
01705 #define SSL_F_SSL_UNDEFINED_FUNCTION 197
01706 #define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244
01707 #define SSL_F_SSL_USE_CERTIFICATE 198
01708 #define SSL_F_SSL_USE_CERTIFICATE_ASN1 199
01709 #define SSL_F_SSL_USE_CERTIFICATE_FILE 200
01710 #define SSL_F_SSL_USE_PRIVATEKEY 201
01711 #define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202
01712 #define SSL_F_SSL_USE_PRIVATEKEY_FILE 203
01713 #define SSL_F_SSL_USE_RSAPRIVATEKEY 204
01714 #define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205
01715 #define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206
01716 #define SSL_F_SSL_VERIFY_CERT_CHAIN 207
01717 #define SSL_F_SSL_WRITE 208
01718 #define SSL_F_TLS1_CHANGE_CIPHER_STATE 209
01719 #define SSL_F_TLS1_ENC 210
01720 #define SSL_F_TLS1_SETUP_KEY_BLOCK 211
01721 #define SSL_F_WRITE_PENDING 212
01722
01723
01724 #define SSL_R_APP_DATA_IN_HANDSHAKE 100
01725 #define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272
01726 #define SSL_R_BAD_ALERT_RECORD 101
01727 #define SSL_R_BAD_AUTHENTICATION_TYPE 102
01728 #define SSL_R_BAD_CHANGE_CIPHER_SPEC 103
01729 #define SSL_R_BAD_CHECKSUM 104
01730 #define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106
01731 #define SSL_R_BAD_DECOMPRESSION 107
01732 #define SSL_R_BAD_DH_G_LENGTH 108
01733 #define SSL_R_BAD_DH_PUB_KEY_LENGTH 109
01734 #define SSL_R_BAD_DH_P_LENGTH 110
01735 #define SSL_R_BAD_DIGEST_LENGTH 111
01736 #define SSL_R_BAD_DSA_SIGNATURE 112
01737 #define SSL_R_BAD_ECC_CERT 304
01738 #define SSL_R_BAD_ECDSA_SIGNATURE 305
01739 #define SSL_R_BAD_ECPOINT 306
01740 #define SSL_R_BAD_HELLO_REQUEST 105
01741 #define SSL_R_BAD_LENGTH 271
01742 #define SSL_R_BAD_MAC_DECODE 113
01743 #define SSL_R_BAD_MESSAGE_TYPE 114
01744 #define SSL_R_BAD_PACKET_LENGTH 115
01745 #define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116
01746 #define SSL_R_BAD_RESPONSE_ARGUMENT 117
01747 #define SSL_R_BAD_RSA_DECRYPT 118
01748 #define SSL_R_BAD_RSA_ENCRYPT 119
01749 #define SSL_R_BAD_RSA_E_LENGTH 120
01750 #define SSL_R_BAD_RSA_MODULUS_LENGTH 121
01751 #define SSL_R_BAD_RSA_SIGNATURE 122
01752 #define SSL_R_BAD_SIGNATURE 123
01753 #define SSL_R_BAD_SSL_FILETYPE 124
01754 #define SSL_R_BAD_SSL_SESSION_ID_LENGTH 125
01755 #define SSL_R_BAD_STATE 126
01756 #define SSL_R_BAD_WRITE_RETRY 127
01757 #define SSL_R_BIO_NOT_SET 128
01758 #define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129
01759 #define SSL_R_BN_LIB 130
01760 #define SSL_R_CA_DN_LENGTH_MISMATCH 131
01761 #define SSL_R_CA_DN_TOO_LONG 132
01762 #define SSL_R_CCS_RECEIVED_EARLY 133
01763 #define SSL_R_CERTIFICATE_VERIFY_FAILED 134
01764 #define SSL_R_CERT_LENGTH_MISMATCH 135
01765 #define SSL_R_CHALLENGE_IS_DIFFERENT 136
01766 #define SSL_R_CIPHER_CODE_WRONG_LENGTH 137
01767 #define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138
01768 #define SSL_R_CIPHER_TABLE_SRC_ERROR 139
01769 #define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140
01770 #define SSL_R_COMPRESSION_FAILURE 141
01771 #define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307
01772 #define SSL_R_COMPRESSION_LIBRARY_ERROR 142
01773 #define SSL_R_CONNECTION_ID_IS_DIFFERENT 143
01774 #define SSL_R_CONNECTION_TYPE_NOT_SET 144
01775 #define SSL_R_COOKIE_MISMATCH 308
01776 #define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145
01777 #define SSL_R_DATA_LENGTH_TOO_LONG 146
01778 #define SSL_R_DECRYPTION_FAILED 147
01779 #define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281
01780 #define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148
01781 #define SSL_R_DIGEST_CHECK_FAILED 149
01782 #define SSL_R_DUPLICATE_COMPRESSION_ID 309
01783 #define SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER 310
01784 #define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150
01785 #define SSL_R_ERROR_GENERATING_TMP_RSA_KEY 282
01786 #define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151
01787 #define SSL_R_EXCESSIVE_MESSAGE_SIZE 152
01788 #define SSL_R_EXTRA_DATA_IN_MESSAGE 153
01789 #define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154
01790 #define SSL_R_HTTPS_PROXY_REQUEST 155
01791 #define SSL_R_HTTP_REQUEST 156
01792 #define SSL_R_ILLEGAL_PADDING 283
01793 #define SSL_R_INVALID_CHALLENGE_LENGTH 158
01794 #define SSL_R_INVALID_COMMAND 280
01795 #define SSL_R_INVALID_PURPOSE 278
01796 #define SSL_R_INVALID_TRUST 279
01797 #define SSL_R_KEY_ARG_TOO_LONG 284
01798 #define SSL_R_KRB5 285
01799 #define SSL_R_KRB5_C_CC_PRINC 286
01800 #define SSL_R_KRB5_C_GET_CRED 287
01801 #define SSL_R_KRB5_C_INIT 288
01802 #define SSL_R_KRB5_C_MK_REQ 289
01803 #define SSL_R_KRB5_S_BAD_TICKET 290
01804 #define SSL_R_KRB5_S_INIT 291
01805 #define SSL_R_KRB5_S_RD_REQ 292
01806 #define SSL_R_KRB5_S_TKT_EXPIRED 293
01807 #define SSL_R_KRB5_S_TKT_NYV 294
01808 #define SSL_R_KRB5_S_TKT_SKEW 295
01809 #define SSL_R_LENGTH_MISMATCH 159
01810 #define SSL_R_LENGTH_TOO_SHORT 160
01811 #define SSL_R_LIBRARY_BUG 274
01812 #define SSL_R_LIBRARY_HAS_NO_CIPHERS 161
01813 #define SSL_R_MESSAGE_TOO_LONG 296
01814 #define SSL_R_MISSING_DH_DSA_CERT 162
01815 #define SSL_R_MISSING_DH_KEY 163
01816 #define SSL_R_MISSING_DH_RSA_CERT 164
01817 #define SSL_R_MISSING_DSA_SIGNING_CERT 165
01818 #define SSL_R_MISSING_EXPORT_TMP_DH_KEY 166
01819 #define SSL_R_MISSING_EXPORT_TMP_RSA_KEY 167
01820 #define SSL_R_MISSING_RSA_CERTIFICATE 168
01821 #define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169
01822 #define SSL_R_MISSING_RSA_SIGNING_CERT 170
01823 #define SSL_R_MISSING_TMP_DH_KEY 171
01824 #define SSL_R_MISSING_TMP_ECDH_KEY 311
01825 #define SSL_R_MISSING_TMP_RSA_KEY 172
01826 #define SSL_R_MISSING_TMP_RSA_PKEY 173
01827 #define SSL_R_MISSING_VERIFY_MESSAGE 174
01828 #define SSL_R_NON_SSLV2_INITIAL_PACKET 175
01829 #define SSL_R_NO_CERTIFICATES_RETURNED 176
01830 #define SSL_R_NO_CERTIFICATE_ASSIGNED 177
01831 #define SSL_R_NO_CERTIFICATE_RETURNED 178
01832 #define SSL_R_NO_CERTIFICATE_SET 179
01833 #define SSL_R_NO_CERTIFICATE_SPECIFIED 180
01834 #define SSL_R_NO_CIPHERS_AVAILABLE 181
01835 #define SSL_R_NO_CIPHERS_PASSED 182
01836 #define SSL_R_NO_CIPHERS_SPECIFIED 183
01837 #define SSL_R_NO_CIPHER_LIST 184
01838 #define SSL_R_NO_CIPHER_MATCH 185
01839 #define SSL_R_NO_CLIENT_CERT_RECEIVED 186
01840 #define SSL_R_NO_COMPRESSION_SPECIFIED 187
01841 #define SSL_R_NO_METHOD_SPECIFIED 188
01842 #define SSL_R_NO_PRIVATEKEY 189
01843 #define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190
01844 #define SSL_R_NO_PROTOCOLS_AVAILABLE 191
01845 #define SSL_R_NO_PUBLICKEY 192
01846 #define SSL_R_NO_SHARED_CIPHER 193
01847 #define SSL_R_NO_VERIFY_CALLBACK 194
01848 #define SSL_R_NULL_SSL_CTX 195
01849 #define SSL_R_NULL_SSL_METHOD_PASSED 196
01850 #define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197
01851 #define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 297
01852 #define SSL_R_PACKET_LENGTH_TOO_LONG 198
01853 #define SSL_R_PATH_TOO_LONG 270
01854 #define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199
01855 #define SSL_R_PEER_ERROR 200
01856 #define SSL_R_PEER_ERROR_CERTIFICATE 201
01857 #define SSL_R_PEER_ERROR_NO_CERTIFICATE 202
01858 #define SSL_R_PEER_ERROR_NO_CIPHER 203
01859 #define SSL_R_PEER_ERROR_UNSUPPORTED_CERTIFICATE_TYPE 204
01860 #define SSL_R_PRE_MAC_LENGTH_TOO_LONG 205
01861 #define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206
01862 #define SSL_R_PROTOCOL_IS_SHUTDOWN 207
01863 #define SSL_R_PUBLIC_KEY_ENCRYPT_ERROR 208
01864 #define SSL_R_PUBLIC_KEY_IS_NOT_RSA 209
01865 #define SSL_R_PUBLIC_KEY_NOT_RSA 210
01866 #define SSL_R_READ_BIO_NOT_SET 211
01867 #define SSL_R_READ_TIMEOUT_EXPIRED 312
01868 #define SSL_R_READ_WRONG_PACKET_TYPE 212
01869 #define SSL_R_RECORD_LENGTH_MISMATCH 213
01870 #define SSL_R_RECORD_TOO_LARGE 214
01871 #define SSL_R_RECORD_TOO_SMALL 298
01872 #define SSL_R_REQUIRED_CIPHER_MISSING 215
01873 #define SSL_R_REUSE_CERT_LENGTH_NOT_ZERO 216
01874 #define SSL_R_REUSE_CERT_TYPE_NOT_ZERO 217
01875 #define SSL_R_REUSE_CIPHER_LIST_NOT_ZERO 218
01876 #define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277
01877 #define SSL_R_SHORT_READ 219
01878 #define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220
01879 #define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221
01880 #define SSL_R_SSL2_CONNECTION_ID_TOO_LONG 299
01881 #define SSL_R_SSL3_SESSION_ID_TOO_LONG 300
01882 #define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222
01883 #define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042
01884 #define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020
01885 #define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045
01886 #define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044
01887 #define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046
01888 #define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030
01889 #define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040
01890 #define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047
01891 #define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041
01892 #define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010
01893 #define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043
01894 #define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228
01895 #define SSL_R_SSL_HANDSHAKE_FAILURE 229
01896 #define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230
01897 #define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301
01898 #define SSL_R_SSL_SESSION_ID_CONFLICT 302
01899 #define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273
01900 #define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303
01901 #define SSL_R_SSL_SESSION_ID_IS_DIFFERENT 231
01902 #define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049
01903 #define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050
01904 #define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021
01905 #define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051
01906 #define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060
01907 #define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071
01908 #define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080
01909 #define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100
01910 #define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070
01911 #define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022
01912 #define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048
01913 #define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090
01914 #define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232
01915 #define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233
01916 #define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234
01917 #define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235
01918 #define SSL_R_UNABLE_TO_DECODE_DH_CERTS 236
01919 #define SSL_R_UNABLE_TO_DECODE_ECDH_CERTS 313
01920 #define SSL_R_UNABLE_TO_EXTRACT_PUBLIC_KEY 237
01921 #define SSL_R_UNABLE_TO_FIND_DH_PARAMETERS 238
01922 #define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314
01923 #define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239
01924 #define SSL_R_UNABLE_TO_FIND_SSL_METHOD 240
01925 #define SSL_R_UNABLE_TO_LOAD_SSL2_MD5_ROUTINES 241
01926 #define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242
01927 #define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243
01928 #define SSL_R_UNEXPECTED_MESSAGE 244
01929 #define SSL_R_UNEXPECTED_RECORD 245
01930 #define SSL_R_UNINITIALIZED 276
01931 #define SSL_R_UNKNOWN_ALERT_TYPE 246
01932 #define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247
01933 #define SSL_R_UNKNOWN_CIPHER_RETURNED 248
01934 #define SSL_R_UNKNOWN_CIPHER_TYPE 249
01935 #define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250
01936 #define SSL_R_UNKNOWN_PKEY_TYPE 251
01937 #define SSL_R_UNKNOWN_PROTOCOL 252
01938 #define SSL_R_UNKNOWN_REMOTE_ERROR_TYPE 253
01939 #define SSL_R_UNKNOWN_SSL_VERSION 254
01940 #define SSL_R_UNKNOWN_STATE 255
01941 #define SSL_R_UNSUPPORTED_CIPHER 256
01942 #define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257
01943 #define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315
01944 #define SSL_R_UNSUPPORTED_PROTOCOL 258
01945 #define SSL_R_UNSUPPORTED_SSL_VERSION 259
01946 #define SSL_R_WRITE_BIO_NOT_SET 260
01947 #define SSL_R_WRONG_CIPHER_RETURNED 261
01948 #define SSL_R_WRONG_MESSAGE_TYPE 262
01949 #define SSL_R_WRONG_NUMBER_OF_KEY_BITS 263
01950 #define SSL_R_WRONG_SIGNATURE_LENGTH 264
01951 #define SSL_R_WRONG_SIGNATURE_SIZE 265
01952 #define SSL_R_WRONG_SSL_VERSION 266
01953 #define SSL_R_WRONG_VERSION_NUMBER 267
01954 #define SSL_R_X509_LIB 268
01955 #define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269
01956
01957 #ifdef __cplusplus
01958 }
01959 #endif
01960 #endif