diff options
Diffstat (limited to 'src/lib/libssl/ssl.h')
-rw-r--r-- | src/lib/libssl/ssl.h | 117 |
1 files changed, 83 insertions, 34 deletions
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h index fbe4f667fa..f29f775347 100644 --- a/src/lib/libssl/ssl.h +++ b/src/lib/libssl/ssl.h | |||
@@ -123,8 +123,9 @@ extern "C" { | |||
123 | #define SSL_TXT_MD5 "MD5" | 123 | #define SSL_TXT_MD5 "MD5" |
124 | #define SSL_TXT_SHA1 "SHA1" | 124 | #define SSL_TXT_SHA1 "SHA1" |
125 | #define SSL_TXT_SHA "SHA" | 125 | #define SSL_TXT_SHA "SHA" |
126 | #define SSL_TXT_EXP40 "EXP" | 126 | #define SSL_TXT_EXP "EXP" |
127 | #define SSL_TXT_EXPORT "EXPORT" | 127 | #define SSL_TXT_EXPORT "EXPORT" |
128 | #define SSL_TXT_EXP40 "EXPORT40" | ||
128 | #define SSL_TXT_EXP56 "EXPORT56" | 129 | #define SSL_TXT_EXP56 "EXPORT56" |
129 | #define SSL_TXT_SSLV2 "SSLv2" | 130 | #define SSL_TXT_SSLV2 "SSLv2" |
130 | #define SSL_TXT_SSLV3 "SSLv3" | 131 | #define SSL_TXT_SSLV3 "SSLv3" |
@@ -133,12 +134,7 @@ extern "C" { | |||
133 | 134 | ||
134 | /* 'DEFAULT' at the start of the cipher list insert the following string | 135 | /* 'DEFAULT' at the start of the cipher list insert the following string |
135 | * in addition to this being the default cipher string */ | 136 | * in addition to this being the default cipher string */ |
136 | #ifndef NO_RSA | 137 | #define SSL_DEFAULT_CIPHER_LIST "ALL:!ADH:RC4+RSA:+SSLv2:@STRENGTH" |
137 | #define SSL_DEFAULT_CIPHER_LIST "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP" | ||
138 | #else | ||
139 | #define SSL_ALLOW_ADH | ||
140 | #define SSL_DEFAULT_CIPHER_LIST "HIGH:MEDIUM:LOW:ADH+3DES:ADH+RC4:ADH+DES:+EXP" | ||
141 | #endif | ||
142 | 138 | ||
143 | /* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ | 139 | /* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ |
144 | #define SSL_SENT_SHUTDOWN 1 | 140 | #define SSL_SENT_SHUTDOWN 1 |
@@ -151,6 +147,10 @@ extern "C" { | |||
151 | #include <openssl/pem.h> | 147 | #include <openssl/pem.h> |
152 | #include <openssl/x509.h> | 148 | #include <openssl/x509.h> |
153 | 149 | ||
150 | #if (defined(NO_RSA) || defined(NO_MD5)) && !defined(NO_SSL2) | ||
151 | #define NO_SSL2 | ||
152 | #endif | ||
153 | |||
154 | #define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 | 154 | #define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 |
155 | #define SSL_FILETYPE_PEM X509_FILETYPE_PEM | 155 | #define SSL_FILETYPE_PEM X509_FILETYPE_PEM |
156 | 156 | ||
@@ -166,8 +166,12 @@ typedef struct ssl_cipher_st | |||
166 | const char *name; /* text name */ | 166 | const char *name; /* text name */ |
167 | unsigned long id; /* id, 4 bytes, first is version */ | 167 | unsigned long id; /* id, 4 bytes, first is version */ |
168 | unsigned long algorithms; /* what ciphers are used */ | 168 | unsigned long algorithms; /* what ciphers are used */ |
169 | unsigned long algo_strength; /* strength and export flags */ | ||
169 | unsigned long algorithm2; /* Extra flags */ | 170 | unsigned long algorithm2; /* Extra flags */ |
171 | int strength_bits; /* Number of bits really used */ | ||
172 | int alg_bits; /* Number of bits for algorithm */ | ||
170 | unsigned long mask; /* used for matching */ | 173 | unsigned long mask; /* used for matching */ |
174 | unsigned long mask_strength; /* also used for matching */ | ||
171 | } SSL_CIPHER; | 175 | } SSL_CIPHER; |
172 | 176 | ||
173 | DECLARE_STACK_OF(SSL_CIPHER) | 177 | DECLARE_STACK_OF(SSL_CIPHER) |
@@ -201,6 +205,8 @@ typedef struct ssl_method_st | |||
201 | long (*get_timeout)(void); | 205 | long (*get_timeout)(void); |
202 | struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ | 206 | struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ |
203 | int (*ssl_version)(); | 207 | int (*ssl_version)(); |
208 | long (*ssl_callback_ctrl)(SSL *s, int cb_id, void (*fp)()); | ||
209 | long (*ssl_ctx_callback_ctrl)(SSL_CTX *s, int cb_id, void (*fp)()); | ||
204 | } SSL_METHOD; | 210 | } SSL_METHOD; |
205 | 211 | ||
206 | /* Lets make this into an ASN.1 type structure as follows | 212 | /* Lets make this into an ASN.1 type structure as follows |
@@ -215,7 +221,8 @@ typedef struct ssl_method_st | |||
215 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds | 221 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds |
216 | * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate | 222 | * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate |
217 | * Session_ID_context [ 4 ] EXPLICIT OCTET_STRING, -- the Session ID context | 223 | * Session_ID_context [ 4 ] EXPLICIT OCTET_STRING, -- the Session ID context |
218 | * Compression [5] IMPLICIT ASN1_OBJECT -- compression OID XXXXX | 224 | * Verify_result [ 5 ] EXPLICIT INTEGER -- X509_V_... code for `Peer' |
225 | * Compression [6] IMPLICIT ASN1_OBJECT -- compression OID XXXXX | ||
219 | * } | 226 | * } |
220 | * Look in ssl/ssl_asn1.c for more details | 227 | * Look in ssl/ssl_asn1.c for more details |
221 | * I'm using EXPLICIT tags so I can read the damn things using asn1parse :-). | 228 | * I'm using EXPLICIT tags so I can read the damn things using asn1parse :-). |
@@ -249,6 +256,9 @@ typedef struct ssl_session_st | |||
249 | * (the latter is not enough as sess_cert is not retained | 256 | * (the latter is not enough as sess_cert is not retained |
250 | * in the external representation of sessions, see ssl_asn1.c). */ | 257 | * in the external representation of sessions, see ssl_asn1.c). */ |
251 | X509 *peer; | 258 | X509 *peer; |
259 | /* when app_verify_callback accepts a session where the peer's certificate | ||
260 | * is not ok, we must remember the error for session reuse: */ | ||
261 | long verify_result; /* only for servers */ | ||
252 | 262 | ||
253 | int references; | 263 | int references; |
254 | long timeout; | 264 | long timeout; |
@@ -291,6 +301,7 @@ typedef struct ssl_session_st | |||
291 | #define SSL_OP_PKCS1_CHECK_1 0x08000000L | 301 | #define SSL_OP_PKCS1_CHECK_1 0x08000000L |
292 | #define SSL_OP_PKCS1_CHECK_2 0x10000000L | 302 | #define SSL_OP_PKCS1_CHECK_2 0x10000000L |
293 | #define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L | 303 | #define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L |
304 | /* SSL_OP_NON_EXPORT_FIRST looks utterly broken .. */ | ||
294 | #define SSL_OP_NON_EXPORT_FIRST 0x40000000L | 305 | #define SSL_OP_NON_EXPORT_FIRST 0x40000000L |
295 | #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x80000000L | 306 | #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x80000000L |
296 | #define SSL_OP_ALL 0x000FFFFFL | 307 | #define SSL_OP_ALL 0x000FFFFFL |
@@ -355,9 +366,9 @@ struct ssl_ctx_st | |||
355 | STACK_OF(SSL_CIPHER) *cipher_list_by_id; | 366 | STACK_OF(SSL_CIPHER) *cipher_list_by_id; |
356 | 367 | ||
357 | struct x509_store_st /* X509_STORE */ *cert_store; | 368 | struct x509_store_st /* X509_STORE */ *cert_store; |
358 | struct lhash_st /* LHASH */ *sessions; /* a set of SSL_SESSION's */ | 369 | struct lhash_st /* LHASH */ *sessions; /* a set of SSL_SESSIONs */ |
359 | /* Most session-ids that will be cached, default is | 370 | /* Most session-ids that will be cached, default is |
360 | * SSL_SESSION_CACHE_SIZE_DEFAULT. 0 is unlimited. */ | 371 | * SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited. */ |
361 | unsigned long session_cache_size; | 372 | unsigned long session_cache_size; |
362 | struct ssl_session_st *session_cache_head; | 373 | struct ssl_session_st *session_cache_head; |
363 | struct ssl_session_st *session_cache_tail; | 374 | struct ssl_session_st *session_cache_tail; |
@@ -424,6 +435,9 @@ struct ssl_ctx_st | |||
424 | /**/ unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; | 435 | /**/ unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; |
425 | /**/ int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); | 436 | /**/ int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); |
426 | 437 | ||
438 | int purpose; /* Purpose setting */ | ||
439 | int trust; /* Trust setting */ | ||
440 | |||
427 | /* Default password callback. */ | 441 | /* Default password callback. */ |
428 | /**/ pem_password_cb *default_passwd_callback; | 442 | /**/ pem_password_cb *default_passwd_callback; |
429 | 443 | ||
@@ -433,7 +447,7 @@ struct ssl_ctx_st | |||
433 | /* get client cert callback */ | 447 | /* get client cert callback */ |
434 | /**/ int (*client_cert_cb)(/* SSL *ssl, X509 **x509, EVP_PKEY **pkey */); | 448 | /**/ int (*client_cert_cb)(/* SSL *ssl, X509 **x509, EVP_PKEY **pkey */); |
435 | 449 | ||
436 | /* what we put in client requests */ | 450 | /* what we put in client cert requests */ |
437 | STACK_OF(X509_NAME) *client_CA; | 451 | STACK_OF(X509_NAME) *client_CA; |
438 | 452 | ||
439 | /**/ int quiet_shutdown; | 453 | /**/ int quiet_shutdown; |
@@ -458,6 +472,7 @@ struct ssl_ctx_st | |||
458 | * defined, this will still get called. */ | 472 | * defined, this will still get called. */ |
459 | #define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 | 473 | #define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 |
460 | 474 | ||
475 | struct lhash_st *SSL_CTX_sessions(SSL_CTX *ctx); | ||
461 | #define SSL_CTX_sess_number(ctx) \ | 476 | #define SSL_CTX_sess_number(ctx) \ |
462 | SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) | 477 | SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) |
463 | #define SSL_CTX_sess_connect(ctx) \ | 478 | #define SSL_CTX_sess_connect(ctx) \ |
@@ -564,17 +579,21 @@ struct ssl_st | |||
564 | unsigned char *packet; | 579 | unsigned char *packet; |
565 | unsigned int packet_length; | 580 | unsigned int packet_length; |
566 | 581 | ||
567 | struct ssl2_ctx_st *s2; /* SSLv2 variables */ | 582 | struct ssl2_state_st *s2; /* SSLv2 variables */ |
568 | struct ssl3_ctx_st *s3; /* SSLv3 variables */ | 583 | struct ssl3_state_st *s3; /* SSLv3 variables */ |
569 | 584 | ||
570 | int read_ahead; /* Read as many input bytes as possible */ | 585 | int read_ahead; /* Read as many input bytes as possible |
586 | * (for non-blocking reads) */ | ||
571 | int hit; /* reusing a previous session */ | 587 | int hit; /* reusing a previous session */ |
572 | 588 | ||
589 | int purpose; /* Purpose setting */ | ||
590 | int trust; /* Trust setting */ | ||
591 | |||
573 | /* crypto */ | 592 | /* crypto */ |
574 | STACK_OF(SSL_CIPHER) *cipher_list; | 593 | STACK_OF(SSL_CIPHER) *cipher_list; |
575 | STACK_OF(SSL_CIPHER) *cipher_list_by_id; | 594 | STACK_OF(SSL_CIPHER) *cipher_list_by_id; |
576 | 595 | ||
577 | /* These are the ones being used, the ones is SSL_SESSION are | 596 | /* These are the ones being used, the ones in SSL_SESSION are |
578 | * the ones to be 'copied' into these ones */ | 597 | * the ones to be 'copied' into these ones */ |
579 | 598 | ||
580 | EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ | 599 | EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ |
@@ -634,7 +653,7 @@ struct ssl_st | |||
634 | unsigned long mode; /* API behaviour */ | 653 | unsigned long mode; /* API behaviour */ |
635 | int first_packet; | 654 | int first_packet; |
636 | int client_version; /* what was passed, used for | 655 | int client_version; /* what was passed, used for |
637 | * SSLv3/TLS rolback check */ | 656 | * SSLv3/TLS rollback check */ |
638 | }; | 657 | }; |
639 | 658 | ||
640 | #include <openssl/ssl2.h> | 659 | #include <openssl/ssl2.h> |
@@ -642,7 +661,7 @@ struct ssl_st | |||
642 | #include <openssl/tls1.h> /* This is mostly sslv3 with a few tweaks */ | 661 | #include <openssl/tls1.h> /* This is mostly sslv3 with a few tweaks */ |
643 | #include <openssl/ssl23.h> | 662 | #include <openssl/ssl23.h> |
644 | 663 | ||
645 | /* compatablity */ | 664 | /* compatibility */ |
646 | #define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg)) | 665 | #define SSL_set_app_data(s,arg) (SSL_set_ex_data(s,0,(char *)arg)) |
647 | #define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) | 666 | #define SSL_get_app_data(s) (SSL_get_ex_data(s,0)) |
648 | #define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a)) | 667 | #define SSL_SESSION_set_app_data(s,a) (SSL_SESSION_set_ex_data(s,0,(char *)a)) |
@@ -651,7 +670,7 @@ struct ssl_st | |||
651 | #define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg)) | 670 | #define SSL_CTX_set_app_data(ctx,arg) (SSL_CTX_set_ex_data(ctx,0,(char *)arg)) |
652 | 671 | ||
653 | /* The following are the possible values for ssl->state are are | 672 | /* The following are the possible values for ssl->state are are |
654 | * used to indicate where we are upto in the SSL connection establishment. | 673 | * used to indicate where we are up to in the SSL connection establishment. |
655 | * The macros that follow are about the only things you should need to use | 674 | * The macros that follow are about the only things you should need to use |
656 | * and even then, only when using non-blocking IO. | 675 | * and even then, only when using non-blocking IO. |
657 | * It can also be useful to work out where you were when the connection | 676 | * It can also be useful to work out where you were when the connection |
@@ -693,6 +712,13 @@ struct ssl_st | |||
693 | #define SSL_ST_READ_BODY 0xF1 | 712 | #define SSL_ST_READ_BODY 0xF1 |
694 | #define SSL_ST_READ_DONE 0xF2 | 713 | #define SSL_ST_READ_DONE 0xF2 |
695 | 714 | ||
715 | /* Obtain latest Finished message | ||
716 | * -- that we sent (SSL_get_finished) | ||
717 | * -- that we expected from peer (SSL_get_peer_finished). | ||
718 | * Returns length (0 == no Finished so far), copies up to 'count' bytes. */ | ||
719 | size_t SSL_get_finished(SSL *s, void *buf, size_t count); | ||
720 | size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count); | ||
721 | |||
696 | /* use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options | 722 | /* use either SSL_VERIFY_NONE or SSL_VERIFY_PEER, the last 2 options |
697 | * are 'ored' with SSL_VERIFY_PEER if they are desired */ | 723 | * are 'ored' with SSL_VERIFY_PEER if they are desired */ |
698 | #define SSL_VERIFY_NONE 0x00 | 724 | #define SSL_VERIFY_NONE 0x00 |
@@ -700,9 +726,10 @@ struct ssl_st | |||
700 | #define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 | 726 | #define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02 |
701 | #define SSL_VERIFY_CLIENT_ONCE 0x04 | 727 | #define SSL_VERIFY_CLIENT_ONCE 0x04 |
702 | 728 | ||
729 | #define OpenSSL_add_ssl_algorithms() SSL_library_init() | ||
703 | #define SSLeay_add_ssl_algorithms() SSL_library_init() | 730 | #define SSLeay_add_ssl_algorithms() SSL_library_init() |
704 | 731 | ||
705 | /* this is for backward compatablility */ | 732 | /* this is for backward compatibility */ |
706 | #if 0 /* NEW_SSLEAY */ | 733 | #if 0 /* NEW_SSLEAY */ |
707 | #define SSL_CTX_set_default_verify(a,b,c) SSL_CTX_set_verify(a,b,c) | 734 | #define SSL_CTX_set_default_verify(a,b,c) SSL_CTX_set_verify(a,b,c) |
708 | #define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n) | 735 | #define SSL_set_pref_cipher(c,n) SSL_set_cipher_list(c,n) |
@@ -710,7 +737,7 @@ struct ssl_st | |||
710 | #define SSL_remove_session(a,b) SSL_CTX_remove_session((a),(b)) | 737 | #define SSL_remove_session(a,b) SSL_CTX_remove_session((a),(b)) |
711 | #define SSL_flush_sessions(a,b) SSL_CTX_flush_sessions((a),(b)) | 738 | #define SSL_flush_sessions(a,b) SSL_CTX_flush_sessions((a),(b)) |
712 | #endif | 739 | #endif |
713 | /* More backward compatablity */ | 740 | /* More backward compatibility */ |
714 | #define SSL_get_cipher(s) \ | 741 | #define SSL_get_cipher(s) \ |
715 | SSL_CIPHER_get_name(SSL_get_current_cipher(s)) | 742 | SSL_CIPHER_get_name(SSL_get_current_cipher(s)) |
716 | #define SSL_get_cipher_bits(s,np) \ | 743 | #define SSL_get_cipher_bits(s,np) \ |
@@ -762,11 +789,11 @@ struct ssl_st | |||
762 | #define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED /* fatal */ | 789 | #define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED /* fatal */ |
763 | #define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR /* fatal */ | 790 | #define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR /* fatal */ |
764 | #define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR | 791 | #define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR |
765 | #define SSL_AD_EXPORT_RESTRICION TLS1_AD_EXPORT_RESTRICION/* fatal */ | 792 | #define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION/* fatal */ |
766 | #define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION /* fatal */ | 793 | #define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION /* fatal */ |
767 | #define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY/* fatal */ | 794 | #define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY/* fatal */ |
768 | #define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR /* fatal */ | 795 | #define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR /* fatal */ |
769 | #define SSL_AD_USER_CANCLED TLS1_AD_USER_CANCLED | 796 | #define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED |
770 | #define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION | 797 | #define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION |
771 | 798 | ||
772 | #define SSL_ERROR_NONE 0 | 799 | #define SSL_ERROR_NONE 0 |
@@ -867,7 +894,7 @@ void BIO_ssl_shutdown(BIO *ssl_bio); | |||
867 | 894 | ||
868 | #endif | 895 | #endif |
869 | 896 | ||
870 | int SSL_CTX_set_cipher_list(SSL_CTX *,char *str); | 897 | int SSL_CTX_set_cipher_list(SSL_CTX *,const char *str); |
871 | SSL_CTX *SSL_CTX_new(SSL_METHOD *meth); | 898 | SSL_CTX *SSL_CTX_new(SSL_METHOD *meth); |
872 | void SSL_CTX_free(SSL_CTX *); | 899 | void SSL_CTX_free(SSL_CTX *); |
873 | long SSL_CTX_set_timeout(SSL_CTX *ctx,long t); | 900 | long SSL_CTX_set_timeout(SSL_CTX *ctx,long t); |
@@ -899,7 +926,7 @@ void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio); | |||
899 | BIO * SSL_get_rbio(SSL *s); | 926 | BIO * SSL_get_rbio(SSL *s); |
900 | BIO * SSL_get_wbio(SSL *s); | 927 | BIO * SSL_get_wbio(SSL *s); |
901 | #endif | 928 | #endif |
902 | int SSL_set_cipher_list(SSL *s, char *str); | 929 | int SSL_set_cipher_list(SSL *s, const char *str); |
903 | void SSL_set_read_ahead(SSL *s, int yes); | 930 | void SSL_set_read_ahead(SSL *s, int yes); |
904 | int SSL_get_verify_mode(SSL *s); | 931 | int SSL_get_verify_mode(SSL *s); |
905 | int SSL_get_verify_depth(SSL *s); | 932 | int SSL_get_verify_depth(SSL *s); |
@@ -998,6 +1025,12 @@ int SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx, | |||
998 | SSL * SSL_new(SSL_CTX *ctx); | 1025 | SSL * SSL_new(SSL_CTX *ctx); |
999 | int SSL_set_session_id_context(SSL *ssl,const unsigned char *sid_ctx, | 1026 | int SSL_set_session_id_context(SSL *ssl,const unsigned char *sid_ctx, |
1000 | unsigned int sid_ctx_len); | 1027 | unsigned int sid_ctx_len); |
1028 | |||
1029 | int SSL_CTX_set_purpose(SSL_CTX *s, int purpose); | ||
1030 | int SSL_set_purpose(SSL *s, int purpose); | ||
1031 | int SSL_CTX_set_trust(SSL_CTX *s, int trust); | ||
1032 | int SSL_set_trust(SSL *s, int trust); | ||
1033 | |||
1001 | void SSL_free(SSL *ssl); | 1034 | void SSL_free(SSL *ssl); |
1002 | int SSL_accept(SSL *ssl); | 1035 | int SSL_accept(SSL *ssl); |
1003 | int SSL_connect(SSL *ssl); | 1036 | int SSL_connect(SSL *ssl); |
@@ -1005,10 +1038,12 @@ int SSL_read(SSL *ssl,char *buf,int num); | |||
1005 | int SSL_peek(SSL *ssl,char *buf,int num); | 1038 | int SSL_peek(SSL *ssl,char *buf,int num); |
1006 | int SSL_write(SSL *ssl,const char *buf,int num); | 1039 | int SSL_write(SSL *ssl,const char *buf,int num); |
1007 | long SSL_ctrl(SSL *ssl,int cmd, long larg, char *parg); | 1040 | long SSL_ctrl(SSL *ssl,int cmd, long larg, char *parg); |
1041 | long SSL_callback_ctrl(SSL *, int, void (*)()); | ||
1008 | long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, char *parg); | 1042 | long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, char *parg); |
1043 | long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)()); | ||
1009 | 1044 | ||
1010 | int SSL_get_error(SSL *s,int ret_code); | 1045 | int SSL_get_error(SSL *s,int ret_code); |
1011 | char * SSL_get_version(SSL *s); | 1046 | const char *SSL_get_version(SSL *s); |
1012 | 1047 | ||
1013 | /* This sets the 'default' SSL version that SSL_new() will create */ | 1048 | /* This sets the 'default' SSL version that SSL_new() will create */ |
1014 | int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth); | 1049 | int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth); |
@@ -1074,7 +1109,9 @@ int SSL_version(SSL *ssl); | |||
1074 | int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); | 1109 | int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx); |
1075 | int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, | 1110 | int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, |
1076 | const char *CApath); | 1111 | const char *CApath); |
1112 | #define SSL_get0_session SSL_get_session /* just peek at pointer */ | ||
1077 | SSL_SESSION *SSL_get_session(SSL *ssl); | 1113 | SSL_SESSION *SSL_get_session(SSL *ssl); |
1114 | SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ | ||
1078 | SSL_CTX *SSL_get_SSL_CTX(SSL *ssl); | 1115 | SSL_CTX *SSL_get_SSL_CTX(SSL *ssl); |
1079 | void SSL_set_info_callback(SSL *ssl,void (*cb)()); | 1116 | void SSL_set_info_callback(SSL *ssl,void (*cb)()); |
1080 | void (*SSL_get_info_callback(SSL *ssl))(); | 1117 | void (*SSL_get_info_callback(SSL *ssl))(); |
@@ -1085,18 +1122,18 @@ long SSL_get_verify_result(SSL *ssl); | |||
1085 | 1122 | ||
1086 | int SSL_set_ex_data(SSL *ssl,int idx,void *data); | 1123 | int SSL_set_ex_data(SSL *ssl,int idx,void *data); |
1087 | void *SSL_get_ex_data(SSL *ssl,int idx); | 1124 | void *SSL_get_ex_data(SSL *ssl,int idx); |
1088 | int SSL_get_ex_new_index(long argl, char *argp, int (*new_func)(), | 1125 | int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, |
1089 | int (*dup_func)(), void (*free_func)()); | 1126 | CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); |
1090 | 1127 | ||
1091 | int SSL_SESSION_set_ex_data(SSL_SESSION *ss,int idx,void *data); | 1128 | int SSL_SESSION_set_ex_data(SSL_SESSION *ss,int idx,void *data); |
1092 | void *SSL_SESSION_get_ex_data(SSL_SESSION *ss,int idx); | 1129 | void *SSL_SESSION_get_ex_data(SSL_SESSION *ss,int idx); |
1093 | int SSL_SESSION_get_ex_new_index(long argl, char *argp, int (*new_func)(), | 1130 | int SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, |
1094 | int (*dup_func)(), void (*free_func)()); | 1131 | CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); |
1095 | 1132 | ||
1096 | int SSL_CTX_set_ex_data(SSL_CTX *ssl,int idx,void *data); | 1133 | int SSL_CTX_set_ex_data(SSL_CTX *ssl,int idx,void *data); |
1097 | void *SSL_CTX_get_ex_data(SSL_CTX *ssl,int idx); | 1134 | void *SSL_CTX_get_ex_data(SSL_CTX *ssl,int idx); |
1098 | int SSL_CTX_get_ex_new_index(long argl, char *argp, int (*new_func)(), | 1135 | int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, |
1099 | int (*dup_func)(), void (*free_func)()); | 1136 | CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); |
1100 | 1137 | ||
1101 | int SSL_get_ex_data_X509_STORE_CTX_idx(void ); | 1138 | int SSL_get_ex_data_X509_STORE_CTX_idx(void ); |
1102 | 1139 | ||
@@ -1219,13 +1256,18 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1219 | #define SSL_F_SSL_CERT_INSTANTIATE 214 | 1256 | #define SSL_F_SSL_CERT_INSTANTIATE 214 |
1220 | #define SSL_F_SSL_CERT_NEW 162 | 1257 | #define SSL_F_SSL_CERT_NEW 162 |
1221 | #define SSL_F_SSL_CHECK_PRIVATE_KEY 163 | 1258 | #define SSL_F_SSL_CHECK_PRIVATE_KEY 163 |
1259 | #define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 | ||
1260 | #define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 | ||
1222 | #define SSL_F_SSL_CLEAR 164 | 1261 | #define SSL_F_SSL_CLEAR 164 |
1223 | #define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 | 1262 | #define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 |
1224 | #define SSL_F_SSL_CREATE_CIPHER_LIST 166 | 1263 | #define SSL_F_SSL_CREATE_CIPHER_LIST 166 |
1264 | #define SSL_F_SSL_CTRL 232 | ||
1225 | #define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 | 1265 | #define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 |
1226 | #define SSL_F_SSL_CTX_NEW 169 | 1266 | #define SSL_F_SSL_CTX_NEW 169 |
1267 | #define SSL_F_SSL_CTX_SET_PURPOSE 226 | ||
1227 | #define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 | 1268 | #define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 |
1228 | #define SSL_F_SSL_CTX_SET_SSL_VERSION 170 | 1269 | #define SSL_F_SSL_CTX_SET_SSL_VERSION 170 |
1270 | #define SSL_F_SSL_CTX_SET_TRUST 229 | ||
1229 | #define SSL_F_SSL_CTX_USE_CERTIFICATE 171 | 1271 | #define SSL_F_SSL_CTX_USE_CERTIFICATE 171 |
1230 | #define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 | 1272 | #define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 |
1231 | #define SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE 220 | 1273 | #define SSL_F_SSL_CTX_USE_CERTIFICATE_CHAIN_FILE 220 |
@@ -1253,9 +1295,11 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1253 | #define SSL_F_SSL_SET_CERT 191 | 1295 | #define SSL_F_SSL_SET_CERT 191 |
1254 | #define SSL_F_SSL_SET_FD 192 | 1296 | #define SSL_F_SSL_SET_FD 192 |
1255 | #define SSL_F_SSL_SET_PKEY 193 | 1297 | #define SSL_F_SSL_SET_PKEY 193 |
1298 | #define SSL_F_SSL_SET_PURPOSE 227 | ||
1256 | #define SSL_F_SSL_SET_RFD 194 | 1299 | #define SSL_F_SSL_SET_RFD 194 |
1257 | #define SSL_F_SSL_SET_SESSION 195 | 1300 | #define SSL_F_SSL_SET_SESSION 195 |
1258 | #define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 | 1301 | #define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 |
1302 | #define SSL_F_SSL_SET_TRUST 228 | ||
1259 | #define SSL_F_SSL_SET_WFD 196 | 1303 | #define SSL_F_SSL_SET_WFD 196 |
1260 | #define SSL_F_SSL_SHUTDOWN 224 | 1304 | #define SSL_F_SSL_SHUTDOWN 224 |
1261 | #define SSL_F_SSL_UNDEFINED_FUNCTION 197 | 1305 | #define SSL_F_SSL_UNDEFINED_FUNCTION 197 |
@@ -1282,7 +1326,6 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1282 | #define SSL_R_BAD_AUTHENTICATION_TYPE 102 | 1326 | #define SSL_R_BAD_AUTHENTICATION_TYPE 102 |
1283 | #define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 | 1327 | #define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 |
1284 | #define SSL_R_BAD_CHECKSUM 104 | 1328 | #define SSL_R_BAD_CHECKSUM 104 |
1285 | #define SSL_R_BAD_CLIENT_REQUEST 105 | ||
1286 | #define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 | 1329 | #define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 |
1287 | #define SSL_R_BAD_DECOMPRESSION 107 | 1330 | #define SSL_R_BAD_DECOMPRESSION 107 |
1288 | #define SSL_R_BAD_DH_G_LENGTH 108 | 1331 | #define SSL_R_BAD_DH_G_LENGTH 108 |
@@ -1290,6 +1333,7 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1290 | #define SSL_R_BAD_DH_P_LENGTH 110 | 1333 | #define SSL_R_BAD_DH_P_LENGTH 110 |
1291 | #define SSL_R_BAD_DIGEST_LENGTH 111 | 1334 | #define SSL_R_BAD_DIGEST_LENGTH 111 |
1292 | #define SSL_R_BAD_DSA_SIGNATURE 112 | 1335 | #define SSL_R_BAD_DSA_SIGNATURE 112 |
1336 | #define SSL_R_BAD_HELLO_REQUEST 105 | ||
1293 | #define SSL_R_BAD_LENGTH 271 | 1337 | #define SSL_R_BAD_LENGTH 271 |
1294 | #define SSL_R_BAD_MAC_DECODE 113 | 1338 | #define SSL_R_BAD_MAC_DECODE 113 |
1295 | #define SSL_R_BAD_MESSAGE_TYPE 114 | 1339 | #define SSL_R_BAD_MESSAGE_TYPE 114 |
@@ -1329,6 +1373,7 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1329 | #define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 | 1373 | #define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 |
1330 | #define SSL_R_DIGEST_CHECK_FAILED 149 | 1374 | #define SSL_R_DIGEST_CHECK_FAILED 149 |
1331 | #define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 | 1375 | #define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 |
1376 | #define SSL_R_ERROR_GENERATING_TMP_RSA_KEY 1092 | ||
1332 | #define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 | 1377 | #define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 |
1333 | #define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 | 1378 | #define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 |
1334 | #define SSL_R_EXTRA_DATA_IN_MESSAGE 153 | 1379 | #define SSL_R_EXTRA_DATA_IN_MESSAGE 153 |
@@ -1337,6 +1382,9 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1337 | #define SSL_R_HTTP_REQUEST 156 | 1382 | #define SSL_R_HTTP_REQUEST 156 |
1338 | #define SSL_R_INTERNAL_ERROR 157 | 1383 | #define SSL_R_INTERNAL_ERROR 157 |
1339 | #define SSL_R_INVALID_CHALLENGE_LENGTH 158 | 1384 | #define SSL_R_INVALID_CHALLENGE_LENGTH 158 |
1385 | #define SSL_R_INVALID_COMMAND 280 | ||
1386 | #define SSL_R_INVALID_PURPOSE 278 | ||
1387 | #define SSL_R_INVALID_TRUST 279 | ||
1340 | #define SSL_R_LENGTH_MISMATCH 159 | 1388 | #define SSL_R_LENGTH_MISMATCH 159 |
1341 | #define SSL_R_LENGTH_TOO_SHORT 160 | 1389 | #define SSL_R_LENGTH_TOO_SHORT 160 |
1342 | #define SSL_R_LIBRARY_BUG 274 | 1390 | #define SSL_R_LIBRARY_BUG 274 |
@@ -1429,14 +1477,14 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1429 | #define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 | 1477 | #define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 |
1430 | #define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 | 1478 | #define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 |
1431 | #define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 | 1479 | #define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 |
1432 | #define SSL_R_TLSV1_ALERT_EXPORT_RESTRICION 1060 | 1480 | #define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 |
1433 | #define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 | 1481 | #define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 |
1434 | #define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 | 1482 | #define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 |
1435 | #define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 | 1483 | #define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 |
1436 | #define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 | 1484 | #define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 |
1437 | #define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 | 1485 | #define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 |
1438 | #define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 | 1486 | #define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 |
1439 | #define SSL_R_TLSV1_ALERT_USER_CANCLED 1090 | 1487 | #define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 |
1440 | #define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 | 1488 | #define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 |
1441 | #define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 | 1489 | #define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 |
1442 | #define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 | 1490 | #define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 |
@@ -1464,6 +1512,7 @@ int SSL_COMP_add_compression_method(int id,char *cm); | |||
1464 | #define SSL_R_UNKNOWN_STATE 255 | 1512 | #define SSL_R_UNKNOWN_STATE 255 |
1465 | #define SSL_R_UNSUPPORTED_CIPHER 256 | 1513 | #define SSL_R_UNSUPPORTED_CIPHER 256 |
1466 | #define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 | 1514 | #define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 |
1515 | #define SSL_R_UNSUPPORTED_OPTION 1091 | ||
1467 | #define SSL_R_UNSUPPORTED_PROTOCOL 258 | 1516 | #define SSL_R_UNSUPPORTED_PROTOCOL 258 |
1468 | #define SSL_R_UNSUPPORTED_SSL_VERSION 259 | 1517 | #define SSL_R_UNSUPPORTED_SSL_VERSION 259 |
1469 | #define SSL_R_WRITE_BIO_NOT_SET 260 | 1518 | #define SSL_R_WRITE_BIO_NOT_SET 260 |