diff options
Diffstat (limited to 'src/lib/libssl/ssl.h')
-rw-r--r-- | src/lib/libssl/ssl.h | 442 |
1 files changed, 338 insertions, 104 deletions
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h index 9de9e611ab..833f761690 100644 --- a/src/lib/libssl/ssl.h +++ b/src/lib/libssl/ssl.h | |||
@@ -55,20 +55,130 @@ | |||
55 | * copied and put under another distribution licence | 55 | * copied and put under another distribution licence |
56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
57 | */ | 57 | */ |
58 | /* ==================================================================== | ||
59 | * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. | ||
60 | * | ||
61 | * Redistribution and use in source and binary forms, with or without | ||
62 | * modification, are permitted provided that the following conditions | ||
63 | * are met: | ||
64 | * | ||
65 | * 1. Redistributions of source code must retain the above copyright | ||
66 | * notice, this list of conditions and the following disclaimer. | ||
67 | * | ||
68 | * 2. Redistributions in binary form must reproduce the above copyright | ||
69 | * notice, this list of conditions and the following disclaimer in | ||
70 | * the documentation and/or other materials provided with the | ||
71 | * distribution. | ||
72 | * | ||
73 | * 3. All advertising materials mentioning features or use of this | ||
74 | * software must display the following acknowledgment: | ||
75 | * "This product includes software developed by the OpenSSL Project | ||
76 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
77 | * | ||
78 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
79 | * endorse or promote products derived from this software without | ||
80 | * prior written permission. For written permission, please contact | ||
81 | * openssl-core@openssl.org. | ||
82 | * | ||
83 | * 5. Products derived from this software may not be called "OpenSSL" | ||
84 | * nor may "OpenSSL" appear in their names without prior written | ||
85 | * permission of the OpenSSL Project. | ||
86 | * | ||
87 | * 6. Redistributions of any form whatsoever must retain the following | ||
88 | * acknowledgment: | ||
89 | * "This product includes software developed by the OpenSSL Project | ||
90 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
91 | * | ||
92 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
93 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
94 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
95 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
96 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
97 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
98 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
99 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
100 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
101 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
102 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
103 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
104 | * ==================================================================== | ||
105 | * | ||
106 | * This product includes cryptographic software written by Eric Young | ||
107 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
108 | * Hudson (tjh@cryptsoft.com). | ||
109 | * | ||
110 | */ | ||
111 | /* ==================================================================== | ||
112 | * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. | ||
113 | * | ||
114 | * Redistribution and use in source and binary forms, with or without | ||
115 | * modification, are permitted provided that the following conditions | ||
116 | * are met: | ||
117 | * | ||
118 | * 1. Redistributions of source code must retain the above copyright | ||
119 | * notice, this list of conditions and the following disclaimer. | ||
120 | * | ||
121 | * 2. Redistributions in binary form must reproduce the above copyright | ||
122 | * notice, this list of conditions and the following disclaimer in | ||
123 | * the documentation and/or other materials provided with the | ||
124 | * distribution. | ||
125 | * | ||
126 | * 3. All advertising materials mentioning features or use of this | ||
127 | * software must display the following acknowledgment: | ||
128 | * "This product includes software developed by the OpenSSL Project | ||
129 | * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" | ||
130 | * | ||
131 | * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to | ||
132 | * endorse or promote products derived from this software without | ||
133 | * prior written permission. For written permission, please contact | ||
134 | * openssl-core@openssl.org. | ||
135 | * | ||
136 | * 5. Products derived from this software may not be called "OpenSSL" | ||
137 | * nor may "OpenSSL" appear in their names without prior written | ||
138 | * permission of the OpenSSL Project. | ||
139 | * | ||
140 | * 6. Redistributions of any form whatsoever must retain the following | ||
141 | * acknowledgment: | ||
142 | * "This product includes software developed by the OpenSSL Project | ||
143 | * for use in the OpenSSL Toolkit (http://www.openssl.org/)" | ||
144 | * | ||
145 | * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY | ||
146 | * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||
147 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||
148 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR | ||
149 | * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
150 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
151 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
152 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||
153 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, | ||
154 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | ||
155 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED | ||
156 | * OF THE POSSIBILITY OF SUCH DAMAGE. | ||
157 | * ==================================================================== | ||
158 | * | ||
159 | * This product includes cryptographic software written by Eric Young | ||
160 | * (eay@cryptsoft.com). This product includes software written by Tim | ||
161 | * Hudson (tjh@cryptsoft.com). | ||
162 | * | ||
163 | */ | ||
58 | 164 | ||
59 | #ifndef HEADER_SSL_H | 165 | #ifndef HEADER_SSL_H |
60 | #define HEADER_SSL_H | 166 | #define HEADER_SSL_H |
61 | 167 | ||
62 | #ifndef NO_COMP | 168 | #include <openssl/e_os2.h> |
169 | |||
170 | #ifndef OPENSSL_NO_COMP | ||
63 | #include <openssl/comp.h> | 171 | #include <openssl/comp.h> |
64 | #endif | 172 | #endif |
65 | #ifndef NO_BIO | 173 | #ifndef OPENSSL_NO_BIO |
66 | #include <openssl/bio.h> | 174 | #include <openssl/bio.h> |
67 | #endif | 175 | #endif |
68 | #ifndef NO_X509 | 176 | #ifndef OPENSSL_NO_X509 |
69 | #include <openssl/x509.h> | 177 | #include <openssl/x509.h> |
70 | #endif | 178 | #endif |
179 | #include <openssl/kssl.h> | ||
71 | #include <openssl/safestack.h> | 180 | #include <openssl/safestack.h> |
181 | #include <openssl/symhacks.h> | ||
72 | 182 | ||
73 | #ifdef __cplusplus | 183 | #ifdef __cplusplus |
74 | extern "C" { | 184 | extern "C" { |
@@ -92,6 +202,16 @@ extern "C" { | |||
92 | #define SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 | 202 | #define SSL_TXT_DES_192_EDE3_CBC_WITH_MD5 SSL2_TXT_DES_192_EDE3_CBC_WITH_MD5 |
93 | #define SSL_TXT_DES_192_EDE3_CBC_WITH_SHA SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA | 203 | #define SSL_TXT_DES_192_EDE3_CBC_WITH_SHA SSL2_TXT_DES_192_EDE3_CBC_WITH_SHA |
94 | 204 | ||
205 | /* VRS Additional Kerberos5 entries | ||
206 | */ | ||
207 | #define SSL_TXT_KRB5_DES_40_CBC_SHA SSL3_TXT_KRB5_DES_40_CBC_SHA | ||
208 | #define SSL_TXT_KRB5_DES_40_CBC_MD5 SSL3_TXT_KRB5_DES_40_CBC_MD5 | ||
209 | #define SSL_TXT_KRB5_DES_64_CBC_SHA SSL3_TXT_KRB5_DES_64_CBC_SHA | ||
210 | #define SSL_TXT_KRB5_DES_64_CBC_MD5 SSL3_TXT_KRB5_DES_64_CBC_MD5 | ||
211 | #define SSL_TXT_KRB5_DES_192_CBC3_SHA SSL3_TXT_KRB5_DES_192_CBC3_SHA | ||
212 | #define SSL_TXT_KRB5_DES_192_CBC3_MD5 SSL3_TXT_KRB5_DES_192_CBC3_MD5 | ||
213 | #define SSL_MAX_KRB5_PRINCIPAL_LENGTH 256 | ||
214 | |||
95 | #define SSL_MAX_SSL_SESSION_ID_LENGTH 32 | 215 | #define SSL_MAX_SSL_SESSION_ID_LENGTH 32 |
96 | #define SSL_MAX_SID_CTX_LENGTH 32 | 216 | #define SSL_MAX_SID_CTX_LENGTH 32 |
97 | 217 | ||
@@ -112,6 +232,10 @@ extern "C" { | |||
112 | #define SSL_TXT_eNULL "eNULL" | 232 | #define SSL_TXT_eNULL "eNULL" |
113 | #define SSL_TXT_NULL "NULL" | 233 | #define SSL_TXT_NULL "NULL" |
114 | 234 | ||
235 | #define SSL_TXT_kKRB5 "kKRB5" | ||
236 | #define SSL_TXT_aKRB5 "aKRB5" | ||
237 | #define SSL_TXT_KRB5 "KRB5" | ||
238 | |||
115 | #define SSL_TXT_kRSA "kRSA" | 239 | #define SSL_TXT_kRSA "kRSA" |
116 | #define SSL_TXT_kDHr "kDHr" | 240 | #define SSL_TXT_kDHr "kDHr" |
117 | #define SSL_TXT_kDHd "kDHd" | 241 | #define SSL_TXT_kDHd "kDHd" |
@@ -129,6 +253,7 @@ extern "C" { | |||
129 | #define SSL_TXT_RC4 "RC4" | 253 | #define SSL_TXT_RC4 "RC4" |
130 | #define SSL_TXT_RC2 "RC2" | 254 | #define SSL_TXT_RC2 "RC2" |
131 | #define SSL_TXT_IDEA "IDEA" | 255 | #define SSL_TXT_IDEA "IDEA" |
256 | #define SSL_TXT_AES "AESdraft" /* AES ciphersuites are not yet official (thus excluded from 'ALL') */ | ||
132 | #define SSL_TXT_MD5 "MD5" | 257 | #define SSL_TXT_MD5 "MD5" |
133 | #define SSL_TXT_SHA1 "SHA1" | 258 | #define SSL_TXT_SHA1 "SHA1" |
134 | #define SSL_TXT_SHA "SHA" | 259 | #define SSL_TXT_SHA "SHA" |
@@ -141,9 +266,10 @@ extern "C" { | |||
141 | #define SSL_TXT_TLSV1 "TLSv1" | 266 | #define SSL_TXT_TLSV1 "TLSv1" |
142 | #define SSL_TXT_ALL "ALL" | 267 | #define SSL_TXT_ALL "ALL" |
143 | 268 | ||
144 | /* 'DEFAULT' at the start of the cipher list insert the following string | 269 | /* The following cipher list is used by default. |
145 | * in addition to this being the default cipher string */ | 270 | * It also is substituted when an application-defined cipher list string |
146 | #define SSL_DEFAULT_CIPHER_LIST "ALL:!ADH:RC4+RSA:+SSLv2:@STRENGTH" | 271 | * starts with 'DEFAULT'. */ |
272 | #define SSL_DEFAULT_CIPHER_LIST "ALL:!ADH:+RC4:@STRENGTH" /* low priority for RC4 */ | ||
147 | 273 | ||
148 | /* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ | 274 | /* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ |
149 | #define SSL_SENT_SHUTDOWN 1 | 275 | #define SSL_SENT_SHUTDOWN 1 |
@@ -164,8 +290,8 @@ extern "C" { | |||
164 | extern "C" { | 290 | extern "C" { |
165 | #endif | 291 | #endif |
166 | 292 | ||
167 | #if (defined(NO_RSA) || defined(NO_MD5)) && !defined(NO_SSL2) | 293 | #if (defined(OPENSSL_NO_RSA) || defined(OPENSSL_NO_MD5)) && !defined(OPENSSL_NO_SSL2) |
168 | #define NO_SSL2 | 294 | #define OPENSSL_NO_SSL2 |
169 | #endif | 295 | #endif |
170 | 296 | ||
171 | #define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 | 297 | #define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 |
@@ -211,8 +337,8 @@ typedef struct ssl_method_st | |||
211 | int (*ssl_shutdown)(SSL *s); | 337 | int (*ssl_shutdown)(SSL *s); |
212 | int (*ssl_renegotiate)(SSL *s); | 338 | int (*ssl_renegotiate)(SSL *s); |
213 | int (*ssl_renegotiate_check)(SSL *s); | 339 | int (*ssl_renegotiate_check)(SSL *s); |
214 | long (*ssl_ctrl)(SSL *s,int cmd,long larg,char *parg); | 340 | long (*ssl_ctrl)(SSL *s,int cmd,long larg,void *parg); |
215 | long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,char *parg); | 341 | long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,void *parg); |
216 | SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr); | 342 | SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr); |
217 | int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr); | 343 | int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr); |
218 | int (*ssl_pending)(SSL *s); | 344 | int (*ssl_pending)(SSL *s); |
@@ -233,6 +359,7 @@ typedef struct ssl_method_st | |||
233 | * Cipher OCTET_STRING, -- the 3 byte cipher ID | 359 | * Cipher OCTET_STRING, -- the 3 byte cipher ID |
234 | * Session_ID OCTET_STRING, -- the Session ID | 360 | * Session_ID OCTET_STRING, -- the Session ID |
235 | * Master_key OCTET_STRING, -- the master key | 361 | * Master_key OCTET_STRING, -- the master key |
362 | * KRB5_principal OCTET_STRING -- optional Kerberos principal | ||
236 | * Key_Arg [ 0 ] IMPLICIT OCTET_STRING, -- the optional Key argument | 363 | * Key_Arg [ 0 ] IMPLICIT OCTET_STRING, -- the optional Key argument |
237 | * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time | 364 | * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time |
238 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds | 365 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds |
@@ -263,6 +390,11 @@ typedef struct ssl_session_st | |||
263 | unsigned int sid_ctx_length; | 390 | unsigned int sid_ctx_length; |
264 | unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; | 391 | unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; |
265 | 392 | ||
393 | #ifndef OPENSSL_NO_KRB5 | ||
394 | unsigned int krb5_client_princ_len; | ||
395 | unsigned char krb5_client_princ[SSL_MAX_KRB5_PRINCIPAL_LENGTH]; | ||
396 | #endif /* OPENSSL_NO_KRB5 */ | ||
397 | |||
266 | int not_resumable; | 398 | int not_resumable; |
267 | 399 | ||
268 | /* The cert is the certificate used to establish this connection */ | 400 | /* The cert is the certificate used to establish this connection */ |
@@ -306,21 +438,29 @@ typedef struct ssl_session_st | |||
306 | #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L | 438 | #define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x00000080L |
307 | #define SSL_OP_TLS_D5_BUG 0x00000100L | 439 | #define SSL_OP_TLS_D5_BUG 0x00000100L |
308 | #define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L | 440 | #define SSL_OP_TLS_BLOCK_PADDING_BUG 0x00000200L |
309 | #define SSL_OP_TLS_ROLLBACK_BUG 0x00000400L | ||
310 | 441 | ||
311 | /* If set, always create a new key when using tmp_dh parameters */ | 442 | /* If set, always create a new key when using tmp_dh parameters */ |
312 | #define SSL_OP_SINGLE_DH_USE 0x00100000L | 443 | #define SSL_OP_SINGLE_DH_USE 0x00100000L |
313 | /* Set to also use the tmp_rsa key when doing RSA operations. */ | 444 | /* Set to always use the tmp_rsa key when doing RSA operations, |
445 | * even when this violates protocol specs */ | ||
314 | #define SSL_OP_EPHEMERAL_RSA 0x00200000L | 446 | #define SSL_OP_EPHEMERAL_RSA 0x00200000L |
447 | /* Set on servers to choose the cipher according to the server's | ||
448 | * preferences */ | ||
449 | #define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000L | ||
450 | /* If set, a server will allow a client to issue a SSLv3.0 version number | ||
451 | * as latest version supported in the premaster secret, even when TLSv1.0 | ||
452 | * (version 3.1) was announced in the client hello. Normally this is | ||
453 | * forbidden to prevent version rollback attacks. */ | ||
454 | #define SSL_OP_TLS_ROLLBACK_BUG 0x00800000L | ||
455 | /* As server, disallow session resumption on renegotiation */ | ||
456 | #define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x01000000L | ||
315 | 457 | ||
316 | /* The next flag deliberately changes the ciphertest, this is a check | 458 | /* The next flag deliberately changes the ciphertest, this is a check |
317 | * for the PKCS#1 attack */ | 459 | * for the PKCS#1 attack */ |
318 | #define SSL_OP_PKCS1_CHECK_1 0x08000000L | 460 | #define SSL_OP_PKCS1_CHECK_1 0x08000000L |
319 | #define SSL_OP_PKCS1_CHECK_2 0x10000000L | 461 | #define SSL_OP_PKCS1_CHECK_2 0x10000000L |
320 | #define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L | 462 | #define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L |
321 | /* SSL_OP_NON_EXPORT_FIRST looks utterly broken .. */ | 463 | #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L |
322 | #define SSL_OP_NON_EXPORT_FIRST 0x40000000L | ||
323 | #define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x80000000L | ||
324 | #define SSL_OP_ALL 0x000FFFFFL | 464 | #define SSL_OP_ALL 0x000FFFFFL |
325 | 465 | ||
326 | #define SSL_OP_NO_SSLv2 0x01000000L | 466 | #define SSL_OP_NO_SSLv2 0x01000000L |
@@ -343,30 +483,60 @@ typedef struct ssl_session_st | |||
343 | * they cannot be used to clear bits. */ | 483 | * they cannot be used to clear bits. */ |
344 | 484 | ||
345 | #define SSL_CTX_set_options(ctx,op) \ | 485 | #define SSL_CTX_set_options(ctx,op) \ |
346 | SSL_CTX_ctrl(ctx,SSL_CTRL_OPTIONS,op,NULL) | 486 | SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) |
347 | #define SSL_CTX_get_options(ctx) \ | 487 | #define SSL_CTX_get_options(ctx) \ |
348 | SSL_CTX_ctrl(ctx,SSL_CTRL_OPTIONS,0,NULL) | 488 | SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL) |
349 | #define SSL_set_options(ssl,op) \ | 489 | #define SSL_set_options(ssl,op) \ |
350 | SSL_ctrl(ssl,SSL_CTRL_OPTIONS,op,NULL) | 490 | SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL) |
351 | #define SSL_get_options(ssl) \ | 491 | #define SSL_get_options(ssl) \ |
352 | SSL_ctrl(ssl,SSL_CTRL_OPTIONS,0,NULL) | 492 | SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL) |
353 | 493 | ||
354 | #define SSL_CTX_set_mode(ctx,op) \ | 494 | #define SSL_CTX_set_mode(ctx,op) \ |
355 | SSL_CTX_ctrl(ctx,SSL_CTRL_MODE,op,NULL) | 495 | SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) |
356 | #define SSL_CTX_get_mode(ctx) \ | 496 | #define SSL_CTX_get_mode(ctx) \ |
357 | SSL_CTX_ctrl(ctx,SSL_CTRL_MODE,0,NULL) | 497 | SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) |
358 | #define SSL_set_mode(ssl,op) \ | 498 | #define SSL_set_mode(ssl,op) \ |
359 | SSL_ctrl(ssl,SSL_CTRL_MODE,op,NULL) | 499 | SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) |
360 | #define SSL_get_mode(ssl) \ | 500 | #define SSL_get_mode(ssl) \ |
361 | SSL_ctrl(ssl,SSL_CTRL_MODE,0,NULL) | 501 | SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) |
502 | |||
503 | |||
504 | 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)); | ||
505 | 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)); | ||
506 | #define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) | ||
507 | #define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) | ||
508 | |||
509 | |||
510 | |||
511 | #if defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_WIN32) | ||
512 | #define SSL_MAX_CERT_LIST_DEFAULT 1024*30 /* 30k max cert list :-) */ | ||
513 | #else | ||
514 | #define SSL_MAX_CERT_LIST_DEFAULT 1024*100 /* 100k max cert list :-) */ | ||
515 | #endif | ||
362 | 516 | ||
363 | #define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) | 517 | #define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) |
364 | 518 | ||
519 | /* This callback type is used inside SSL_CTX, SSL, and in the functions that set | ||
520 | * them. It is used to override the generation of SSL/TLS session IDs in a | ||
521 | * server. Return value should be zero on an error, non-zero to proceed. Also, | ||
522 | * callbacks should themselves check if the id they generate is unique otherwise | ||
523 | * the SSL handshake will fail with an error - callbacks can do this using the | ||
524 | * 'ssl' value they're passed by; | ||
525 | * SSL_has_matching_session_id(ssl, id, *id_len) | ||
526 | * The length value passed in is set at the maximum size the session ID can be. | ||
527 | * In SSLv2 this is 16 bytes, whereas SSLv3/TLSv1 it is 32 bytes. The callback | ||
528 | * can alter this length to be less if desired, but under SSLv2 session IDs are | ||
529 | * supposed to be fixed at 16 bytes so the id will be padded after the callback | ||
530 | * returns in this case. It is also an error for the callback to set the size to | ||
531 | * zero. */ | ||
532 | typedef int (*GEN_SESSION_CB)(const SSL *ssl, unsigned char *id, | ||
533 | unsigned int *id_len); | ||
534 | |||
365 | typedef struct ssl_comp_st | 535 | typedef struct ssl_comp_st |
366 | { | 536 | { |
367 | int id; | 537 | int id; |
368 | char *name; | 538 | char *name; |
369 | #ifndef NO_COMP | 539 | #ifndef OPENSSL_NO_COMP |
370 | COMP_METHOD *method; | 540 | COMP_METHOD *method; |
371 | #else | 541 | #else |
372 | char *method; | 542 | char *method; |
@@ -378,8 +548,6 @@ DECLARE_STACK_OF(SSL_COMP) | |||
378 | struct ssl_ctx_st | 548 | struct ssl_ctx_st |
379 | { | 549 | { |
380 | SSL_METHOD *method; | 550 | SSL_METHOD *method; |
381 | unsigned long options; | ||
382 | unsigned long mode; | ||
383 | 551 | ||
384 | STACK_OF(SSL_CIPHER) *cipher_list; | 552 | STACK_OF(SSL_CIPHER) *cipher_list; |
385 | /* same as above but sorted for lookup */ | 553 | /* same as above but sorted for lookup */ |
@@ -417,6 +585,7 @@ struct ssl_ctx_st | |||
417 | void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess); | 585 | void (*remove_session_cb)(struct ssl_ctx_st *ctx,SSL_SESSION *sess); |
418 | SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, | 586 | SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, |
419 | unsigned char *data,int len,int *copy); | 587 | unsigned char *data,int len,int *copy); |
588 | |||
420 | struct | 589 | struct |
421 | { | 590 | { |
422 | int sess_connect; /* SSL new conn - started */ | 591 | int sess_connect; /* SSL new conn - started */ |
@@ -439,37 +608,20 @@ struct ssl_ctx_st | |||
439 | 608 | ||
440 | int references; | 609 | int references; |
441 | 610 | ||
442 | /**/ void (*info_callback)(); | ||
443 | |||
444 | /* if defined, these override the X509_verify_cert() calls */ | 611 | /* if defined, these override the X509_verify_cert() calls */ |
445 | /**/ int (*app_verify_callback)(); | 612 | int (*app_verify_callback)(X509_STORE_CTX *, void *); |
446 | /**/ char *app_verify_arg; /* never used; should be void * */ | 613 | void *app_verify_arg; |
447 | 614 | /* before OpenSSL 0.9.7, 'app_verify_arg' was ignored | |
448 | /* default values to use in SSL structures */ | 615 | * ('app_verify_callback' was called with just one argument) */ |
449 | /**/ struct cert_st /* CERT */ *cert; | ||
450 | /**/ int read_ahead; | ||
451 | /**/ int verify_mode; | ||
452 | /**/ int verify_depth; | ||
453 | /**/ unsigned int sid_ctx_length; | ||
454 | /**/ unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; | ||
455 | /**/ int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); | ||
456 | |||
457 | int purpose; /* Purpose setting */ | ||
458 | int trust; /* Trust setting */ | ||
459 | 616 | ||
460 | /* Default password callback. */ | 617 | /* Default password callback. */ |
461 | /**/ pem_password_cb *default_passwd_callback; | 618 | pem_password_cb *default_passwd_callback; |
462 | 619 | ||
463 | /* Default password callback user data. */ | 620 | /* Default password callback user data. */ |
464 | /**/ void *default_passwd_callback_userdata; | 621 | void *default_passwd_callback_userdata; |
465 | 622 | ||
466 | /* get client cert callback */ | 623 | /* get client cert callback */ |
467 | /**/ int (*client_cert_cb)(/* SSL *ssl, X509 **x509, EVP_PKEY **pkey */); | 624 | int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey); |
468 | |||
469 | /* what we put in client cert requests */ | ||
470 | STACK_OF(X509_NAME) *client_CA; | ||
471 | |||
472 | /**/ int quiet_shutdown; | ||
473 | 625 | ||
474 | CRYPTO_EX_DATA ex_data; | 626 | CRYPTO_EX_DATA ex_data; |
475 | 627 | ||
@@ -478,7 +630,43 @@ struct ssl_ctx_st | |||
478 | const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ | 630 | const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ |
479 | 631 | ||
480 | STACK_OF(X509) *extra_certs; | 632 | STACK_OF(X509) *extra_certs; |
481 | STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ | 633 | STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ |
634 | |||
635 | |||
636 | /* Default values used when no per-SSL value is defined follow */ | ||
637 | |||
638 | void (*info_callback)(const SSL *ssl,int type,int val); /* used if SSL's info_callback is NULL */ | ||
639 | |||
640 | /* what we put in client cert requests */ | ||
641 | STACK_OF(X509_NAME) *client_CA; | ||
642 | |||
643 | |||
644 | /* Default values to use in SSL structures follow (these are copied by SSL_new) */ | ||
645 | |||
646 | unsigned long options; | ||
647 | unsigned long mode; | ||
648 | long max_cert_list; | ||
649 | |||
650 | struct cert_st /* CERT */ *cert; | ||
651 | int read_ahead; | ||
652 | |||
653 | /* callback that allows applications to peek at protocol messages */ | ||
654 | void (*msg_callback)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg); | ||
655 | void *msg_callback_arg; | ||
656 | |||
657 | int verify_mode; | ||
658 | int verify_depth; | ||
659 | unsigned int sid_ctx_length; | ||
660 | unsigned char sid_ctx[SSL_MAX_SID_CTX_LENGTH]; | ||
661 | int (*default_verify_callback)(int ok,X509_STORE_CTX *ctx); /* called 'verify_callback' in the SSL */ | ||
662 | |||
663 | /* Default generate session ID callback. */ | ||
664 | GEN_SESSION_CB generate_session_id; | ||
665 | |||
666 | int purpose; /* Purpose setting */ | ||
667 | int trust; /* Trust setting */ | ||
668 | |||
669 | int quiet_shutdown; | ||
482 | }; | 670 | }; |
483 | 671 | ||
484 | #define SSL_SESS_CACHE_OFF 0x0000 | 672 | #define SSL_SESS_CACHE_OFF 0x0000 |
@@ -553,7 +741,7 @@ struct ssl_st | |||
553 | * same. This is so data can be read and written to different | 741 | * same. This is so data can be read and written to different |
554 | * handlers */ | 742 | * handlers */ |
555 | 743 | ||
556 | #ifndef NO_BIO | 744 | #ifndef OPENSSL_NO_BIO |
557 | BIO *rbio; /* used by SSL_read */ | 745 | BIO *rbio; /* used by SSL_read */ |
558 | BIO *wbio; /* used by SSL_write */ | 746 | BIO *wbio; /* used by SSL_write */ |
559 | BIO *bbio; /* used during session-id reuse to concatenate | 747 | BIO *bbio; /* used during session-id reuse to concatenate |
@@ -583,7 +771,12 @@ struct ssl_st | |||
583 | 771 | ||
584 | int server; /* are we the server side? - mostly used by SSL_clear*/ | 772 | int server; /* are we the server side? - mostly used by SSL_clear*/ |
585 | 773 | ||
586 | int new_session;/* 1 if we are to use a new session */ | 774 | int new_session;/* 1 if we are to use a new session. |
775 | * 2 if we are a server and are inside a handshake | ||
776 | * (i.e. not just sending a HelloRequest) | ||
777 | * NB: For servers, the 'new' session may actually be a previously | ||
778 | * cached session or even the previous session unless | ||
779 | * SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION is set */ | ||
587 | int quiet_shutdown;/* don't send shutdown packets */ | 780 | int quiet_shutdown;/* don't send shutdown packets */ |
588 | int shutdown; /* we have shut things down, 0x01 sent, 0x02 | 781 | int shutdown; /* we have shut things down, 0x01 sent, 0x02 |
589 | * for received */ | 782 | * for received */ |
@@ -591,6 +784,7 @@ struct ssl_st | |||
591 | int rstate; /* where we are when reading */ | 784 | int rstate; /* where we are when reading */ |
592 | 785 | ||
593 | BUF_MEM *init_buf; /* buffer used during init */ | 786 | BUF_MEM *init_buf; /* buffer used during init */ |
787 | void *init_msg; /* pointer to handshake message body, set by ssl3_get_message() */ | ||
594 | int init_num; /* amount read/written */ | 788 | int init_num; /* amount read/written */ |
595 | int init_off; /* amount read/written */ | 789 | int init_off; /* amount read/written */ |
596 | 790 | ||
@@ -603,6 +797,11 @@ struct ssl_st | |||
603 | 797 | ||
604 | int read_ahead; /* Read as many input bytes as possible | 798 | int read_ahead; /* Read as many input bytes as possible |
605 | * (for non-blocking reads) */ | 799 | * (for non-blocking reads) */ |
800 | |||
801 | /* callback that allows applications to peek at protocol messages */ | ||
802 | void (*msg_callback)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg); | ||
803 | void *msg_callback_arg; | ||
804 | |||
606 | int hit; /* reusing a previous session */ | 805 | int hit; /* reusing a previous session */ |
607 | 806 | ||
608 | int purpose; /* Purpose setting */ | 807 | int purpose; /* Purpose setting */ |
@@ -617,7 +816,7 @@ struct ssl_st | |||
617 | 816 | ||
618 | EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ | 817 | EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ |
619 | const EVP_MD *read_hash; /* used for mac generation */ | 818 | const EVP_MD *read_hash; /* used for mac generation */ |
620 | #ifndef NO_COMP | 819 | #ifndef OPENSSL_NO_COMP |
621 | COMP_CTX *expand; /* uncompress */ | 820 | COMP_CTX *expand; /* uncompress */ |
622 | #else | 821 | #else |
623 | char *expand; | 822 | char *expand; |
@@ -625,7 +824,7 @@ struct ssl_st | |||
625 | 824 | ||
626 | EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ | 825 | EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ |
627 | const EVP_MD *write_hash; /* used for mac generation */ | 826 | const EVP_MD *write_hash; /* used for mac generation */ |
628 | #ifndef NO_COMP | 827 | #ifndef OPENSSL_NO_COMP |
629 | COMP_CTX *compress; /* compression */ | 828 | COMP_CTX *compress; /* compression */ |
630 | #else | 829 | #else |
631 | char *compress; | 830 | char *compress; |
@@ -645,16 +844,24 @@ struct ssl_st | |||
645 | /* This can also be in the session once a session is established */ | 844 | /* This can also be in the session once a session is established */ |
646 | SSL_SESSION *session; | 845 | SSL_SESSION *session; |
647 | 846 | ||
847 | /* Default generate session ID callback. */ | ||
848 | GEN_SESSION_CB generate_session_id; | ||
849 | |||
648 | /* Used in SSL2 and SSL3 */ | 850 | /* Used in SSL2 and SSL3 */ |
649 | int verify_mode; /* 0 don't care about verify failure. | 851 | int verify_mode; /* 0 don't care about verify failure. |
650 | * 1 fail if verify fails */ | 852 | * 1 fail if verify fails */ |
651 | int verify_depth; | 853 | int verify_depth; |
652 | int (*verify_callback)(int ok,X509_STORE_CTX *ctx); /* fail if callback returns 0 */ | 854 | int (*verify_callback)(int ok,X509_STORE_CTX *ctx); /* fail if callback returns 0 */ |
653 | void (*info_callback)(); /* optional informational callback */ | 855 | |
856 | void (*info_callback)(const SSL *ssl,int type,int val); /* optional informational callback */ | ||
654 | 857 | ||
655 | int error; /* error bytes to be written */ | 858 | int error; /* error bytes to be written */ |
656 | int error_code; /* actual code */ | 859 | int error_code; /* actual code */ |
657 | 860 | ||
861 | #ifndef OPENSSL_NO_KRB5 | ||
862 | KSSL_CTX *kssl_ctx; /* Kerberos 5 context */ | ||
863 | #endif /* OPENSSL_NO_KRB5 */ | ||
864 | |||
658 | SSL_CTX *ctx; | 865 | SSL_CTX *ctx; |
659 | /* set this flag to 1 and a sleep(1) is put into all SSL_read() | 866 | /* set this flag to 1 and a sleep(1) is put into all SSL_read() |
660 | * and SSL_write() calls, good for nbio debuging :-) */ | 867 | * and SSL_write() calls, good for nbio debuging :-) */ |
@@ -670,6 +877,7 @@ struct ssl_st | |||
670 | int references; | 877 | int references; |
671 | unsigned long options; /* protocol behaviour */ | 878 | unsigned long options; /* protocol behaviour */ |
672 | unsigned long mode; /* API behaviour */ | 879 | unsigned long mode; /* API behaviour */ |
880 | long max_cert_list; | ||
673 | int first_packet; | 881 | int first_packet; |
674 | int client_version; /* what was passed, used for | 882 | int client_version; /* what was passed, used for |
675 | * SSLv3/TLS rollback check */ | 883 | * SSLv3/TLS rollback check */ |
@@ -831,13 +1039,14 @@ size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count); | |||
831 | #define SSL_ERROR_SYSCALL 5 /* look at error stack/return value/errno */ | 1039 | #define SSL_ERROR_SYSCALL 5 /* look at error stack/return value/errno */ |
832 | #define SSL_ERROR_ZERO_RETURN 6 | 1040 | #define SSL_ERROR_ZERO_RETURN 6 |
833 | #define SSL_ERROR_WANT_CONNECT 7 | 1041 | #define SSL_ERROR_WANT_CONNECT 7 |
1042 | #define SSL_ERROR_WANT_ACCEPT 8 | ||
834 | 1043 | ||
835 | #define SSL_CTRL_NEED_TMP_RSA 1 | 1044 | #define SSL_CTRL_NEED_TMP_RSA 1 |
836 | #define SSL_CTRL_SET_TMP_RSA 2 | 1045 | #define SSL_CTRL_SET_TMP_RSA 2 |
837 | #define SSL_CTRL_SET_TMP_DH 3 | 1046 | #define SSL_CTRL_SET_TMP_DH 3 |
838 | #define SSL_CTRL_SET_TMP_RSA_CB 4 | 1047 | #define SSL_CTRL_SET_TMP_RSA_CB 4 |
839 | #define SSL_CTRL_SET_TMP_DH_CB 5 | 1048 | #define SSL_CTRL_SET_TMP_DH_CB 5 |
840 | /* Add these ones */ | 1049 | |
841 | #define SSL_CTRL_GET_SESSION_REUSED 6 | 1050 | #define SSL_CTRL_GET_SESSION_REUSED 6 |
842 | #define SSL_CTRL_GET_CLIENT_CERT_REQUEST 7 | 1051 | #define SSL_CTRL_GET_CLIENT_CERT_REQUEST 7 |
843 | #define SSL_CTRL_GET_NUM_RENEGOTIATIONS 8 | 1052 | #define SSL_CTRL_GET_NUM_RENEGOTIATIONS 8 |
@@ -846,6 +1055,9 @@ size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count); | |||
846 | #define SSL_CTRL_GET_FLAGS 11 | 1055 | #define SSL_CTRL_GET_FLAGS 11 |
847 | #define SSL_CTRL_EXTRA_CHAIN_CERT 12 | 1056 | #define SSL_CTRL_EXTRA_CHAIN_CERT 12 |
848 | 1057 | ||
1058 | #define SSL_CTRL_SET_MSG_CALLBACK 13 | ||
1059 | #define SSL_CTRL_SET_MSG_CALLBACK_ARG 14 | ||
1060 | |||
849 | /* Stats */ | 1061 | /* Stats */ |
850 | #define SSL_CTRL_SESS_NUMBER 20 | 1062 | #define SSL_CTRL_SESS_NUMBER 20 |
851 | #define SSL_CTRL_SESS_CONNECT 21 | 1063 | #define SSL_CTRL_SESS_CONNECT 21 |
@@ -860,7 +1072,7 @@ size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count); | |||
860 | #define SSL_CTRL_SESS_TIMEOUTS 30 | 1072 | #define SSL_CTRL_SESS_TIMEOUTS 30 |
861 | #define SSL_CTRL_SESS_CACHE_FULL 31 | 1073 | #define SSL_CTRL_SESS_CACHE_FULL 31 |
862 | #define SSL_CTRL_OPTIONS 32 | 1074 | #define SSL_CTRL_OPTIONS 32 |
863 | #define SSL_CTRL_MODE 33 | 1075 | #define SSL_CTRL_MODE 33 |
864 | 1076 | ||
865 | #define SSL_CTRL_GET_READ_AHEAD 40 | 1077 | #define SSL_CTRL_GET_READ_AHEAD 40 |
866 | #define SSL_CTRL_SET_READ_AHEAD 41 | 1078 | #define SSL_CTRL_SET_READ_AHEAD 41 |
@@ -869,6 +1081,9 @@ size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count); | |||
869 | #define SSL_CTRL_SET_SESS_CACHE_MODE 44 | 1081 | #define SSL_CTRL_SET_SESS_CACHE_MODE 44 |
870 | #define SSL_CTRL_GET_SESS_CACHE_MODE 45 | 1082 | #define SSL_CTRL_GET_SESS_CACHE_MODE 45 |
871 | 1083 | ||
1084 | #define SSL_CTRL_GET_MAX_CERT_LIST 50 | ||
1085 | #define SSL_CTRL_SET_MAX_CERT_LIST 51 | ||
1086 | |||
872 | #define SSL_session_reused(ssl) \ | 1087 | #define SSL_session_reused(ssl) \ |
873 | SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL) | 1088 | SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL) |
874 | #define SSL_num_renegotiations(ssl) \ | 1089 | #define SSL_num_renegotiations(ssl) \ |
@@ -895,23 +1110,7 @@ size_t SSL_get_peer_finished(SSL *s, void *buf, size_t count); | |||
895 | #define SSL_CTX_add_extra_chain_cert(ctx,x509) \ | 1110 | #define SSL_CTX_add_extra_chain_cert(ctx,x509) \ |
896 | SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) | 1111 | SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509) |
897 | 1112 | ||
898 | /* VMS uses only 31 characters for symbols. */ | 1113 | #ifndef OPENSSL_NO_BIO |
899 | #ifdef VMS | ||
900 | #undef SSL_CTX_set_cert_verify_callback | ||
901 | #define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb | ||
902 | #undef SSL_CTX_use_certificate_chain_file | ||
903 | #define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file | ||
904 | #undef SSL_CTX_set_default_verify_paths | ||
905 | #define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths | ||
906 | #undef SSL_get_ex_data_X509_STORE_CTX_idx | ||
907 | #define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_data_X509_STOR_CTX_i | ||
908 | #undef SSL_add_file_cert_subjects_to_stack | ||
909 | #define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_sub_to_stack | ||
910 | #undef SSL_add_dir_cert_subjects_to_stack | ||
911 | #define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_sub_to_stack | ||
912 | #endif | ||
913 | |||
914 | #ifndef NO_BIO | ||
915 | BIO_METHOD *BIO_f_ssl(void); | 1114 | BIO_METHOD *BIO_f_ssl(void); |
916 | BIO *BIO_new_ssl(SSL_CTX *ctx,int client); | 1115 | BIO *BIO_new_ssl(SSL_CTX *ctx,int client); |
917 | BIO *BIO_new_ssl_connect(SSL_CTX *ctx); | 1116 | BIO *BIO_new_ssl_connect(SSL_CTX *ctx); |
@@ -939,16 +1138,18 @@ char * SSL_CIPHER_get_version(SSL_CIPHER *c); | |||
939 | const char * SSL_CIPHER_get_name(SSL_CIPHER *c); | 1138 | const char * SSL_CIPHER_get_name(SSL_CIPHER *c); |
940 | 1139 | ||
941 | int SSL_get_fd(SSL *s); | 1140 | int SSL_get_fd(SSL *s); |
1141 | int SSL_get_rfd(SSL *s); | ||
1142 | int SSL_get_wfd(SSL *s); | ||
942 | const char * SSL_get_cipher_list(SSL *s,int n); | 1143 | const char * SSL_get_cipher_list(SSL *s,int n); |
943 | char * SSL_get_shared_ciphers(SSL *s, char *buf, int len); | 1144 | char * SSL_get_shared_ciphers(SSL *s, char *buf, int len); |
944 | int SSL_get_read_ahead(SSL * s); | 1145 | int SSL_get_read_ahead(SSL * s); |
945 | int SSL_pending(SSL *s); | 1146 | int SSL_pending(SSL *s); |
946 | #ifndef NO_SOCK | 1147 | #ifndef OPENSSL_NO_SOCK |
947 | int SSL_set_fd(SSL *s, int fd); | 1148 | int SSL_set_fd(SSL *s, int fd); |
948 | int SSL_set_rfd(SSL *s, int fd); | 1149 | int SSL_set_rfd(SSL *s, int fd); |
949 | int SSL_set_wfd(SSL *s, int fd); | 1150 | int SSL_set_wfd(SSL *s, int fd); |
950 | #endif | 1151 | #endif |
951 | #ifndef NO_BIO | 1152 | #ifndef OPENSSL_NO_BIO |
952 | void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio); | 1153 | void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio); |
953 | BIO * SSL_get_rbio(SSL *s); | 1154 | BIO * SSL_get_rbio(SSL *s); |
954 | BIO * SSL_get_wbio(SSL *s); | 1155 | BIO * SSL_get_wbio(SSL *s); |
@@ -961,7 +1162,7 @@ int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *); | |||
961 | void SSL_set_verify(SSL *s, int mode, | 1162 | void SSL_set_verify(SSL *s, int mode, |
962 | int (*callback)(int ok,X509_STORE_CTX *ctx)); | 1163 | int (*callback)(int ok,X509_STORE_CTX *ctx)); |
963 | void SSL_set_verify_depth(SSL *s, int depth); | 1164 | void SSL_set_verify_depth(SSL *s, int depth); |
964 | #ifndef NO_RSA | 1165 | #ifndef OPENSSL_NO_RSA |
965 | int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); | 1166 | int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); |
966 | #endif | 1167 | #endif |
967 | int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); | 1168 | int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); |
@@ -970,7 +1171,7 @@ int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, unsigned char *d, long len); | |||
970 | int SSL_use_certificate(SSL *ssl, X509 *x); | 1171 | int SSL_use_certificate(SSL *ssl, X509 *x); |
971 | int SSL_use_certificate_ASN1(SSL *ssl, unsigned char *d, int len); | 1172 | int SSL_use_certificate_ASN1(SSL *ssl, unsigned char *d, int len); |
972 | 1173 | ||
973 | #ifndef NO_STDIO | 1174 | #ifndef OPENSSL_NO_STDIO |
974 | int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); | 1175 | int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); |
975 | int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); | 1176 | int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); |
976 | int SSL_use_certificate_file(SSL *ssl, const char *file, int type); | 1177 | int SSL_use_certificate_file(SSL *ssl, const char *file, int type); |
@@ -981,16 +1182,22 @@ int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); /* PEM t | |||
981 | STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); | 1182 | STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); |
982 | int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, | 1183 | int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, |
983 | const char *file); | 1184 | const char *file); |
1185 | #ifndef OPENSSL_SYS_WIN32 | ||
1186 | #ifndef OPENSSL_SYS_VMS | ||
1187 | #ifndef OPENSSL_SYS_MACINTOSH_CLASSIC /* XXXXX: Better scheme needed! [was: #ifndef MAC_OS_pre_X] */ | ||
984 | int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, | 1188 | int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, |
985 | const char *dir); | 1189 | const char *dir); |
986 | #endif | 1190 | #endif |
1191 | #endif | ||
1192 | #endif | ||
1193 | |||
1194 | #endif | ||
987 | 1195 | ||
988 | void ERR_load_SSL_strings(void ); | ||
989 | void SSL_load_error_strings(void ); | 1196 | void SSL_load_error_strings(void ); |
990 | char * SSL_state_string(SSL *s); | 1197 | const char *SSL_state_string(const SSL *s); |
991 | char * SSL_rstate_string(SSL *s); | 1198 | const char *SSL_rstate_string(const SSL *s); |
992 | char * SSL_state_string_long(SSL *s); | 1199 | const char *SSL_state_string_long(const SSL *s); |
993 | char * SSL_rstate_string_long(SSL *s); | 1200 | const char *SSL_rstate_string_long(const SSL *s); |
994 | long SSL_SESSION_get_time(SSL_SESSION *s); | 1201 | long SSL_SESSION_get_time(SSL_SESSION *s); |
995 | long SSL_SESSION_set_time(SSL_SESSION *s, long t); | 1202 | long SSL_SESSION_set_time(SSL_SESSION *s, long t); |
996 | long SSL_SESSION_get_timeout(SSL_SESSION *s); | 1203 | long SSL_SESSION_get_timeout(SSL_SESSION *s); |
@@ -1000,10 +1207,10 @@ void SSL_copy_session_id(SSL *to,SSL *from); | |||
1000 | SSL_SESSION *SSL_SESSION_new(void); | 1207 | SSL_SESSION *SSL_SESSION_new(void); |
1001 | unsigned long SSL_SESSION_hash(SSL_SESSION *a); | 1208 | unsigned long SSL_SESSION_hash(SSL_SESSION *a); |
1002 | int SSL_SESSION_cmp(SSL_SESSION *a,SSL_SESSION *b); | 1209 | int SSL_SESSION_cmp(SSL_SESSION *a,SSL_SESSION *b); |
1003 | #ifndef NO_FP_API | 1210 | #ifndef OPENSSL_NO_FP_API |
1004 | int SSL_SESSION_print_fp(FILE *fp,SSL_SESSION *ses); | 1211 | int SSL_SESSION_print_fp(FILE *fp,SSL_SESSION *ses); |
1005 | #endif | 1212 | #endif |
1006 | #ifndef NO_BIO | 1213 | #ifndef OPENSSL_NO_BIO |
1007 | int SSL_SESSION_print(BIO *fp,SSL_SESSION *ses); | 1214 | int SSL_SESSION_print(BIO *fp,SSL_SESSION *ses); |
1008 | #endif | 1215 | #endif |
1009 | void SSL_SESSION_free(SSL_SESSION *ses); | 1216 | void SSL_SESSION_free(SSL_SESSION *ses); |
@@ -1011,6 +1218,10 @@ int i2d_SSL_SESSION(SSL_SESSION *in,unsigned char **pp); | |||
1011 | int SSL_set_session(SSL *to, SSL_SESSION *session); | 1218 | int SSL_set_session(SSL *to, SSL_SESSION *session); |
1012 | int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); | 1219 | int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); |
1013 | int SSL_CTX_remove_session(SSL_CTX *,SSL_SESSION *c); | 1220 | int SSL_CTX_remove_session(SSL_CTX *,SSL_SESSION *c); |
1221 | int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); | ||
1222 | int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); | ||
1223 | int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, | ||
1224 | unsigned int id_len); | ||
1014 | SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a,unsigned char **pp,long length); | 1225 | SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a,unsigned char **pp,long length); |
1015 | 1226 | ||
1016 | #ifdef HEADER_X509_H | 1227 | #ifdef HEADER_X509_H |
@@ -1019,18 +1230,14 @@ X509 * SSL_get_peer_certificate(SSL *s); | |||
1019 | 1230 | ||
1020 | STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s); | 1231 | STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s); |
1021 | 1232 | ||
1022 | #ifdef VMS | ||
1023 | #define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud | ||
1024 | #endif | ||
1025 | |||
1026 | int SSL_CTX_get_verify_mode(SSL_CTX *ctx); | 1233 | int SSL_CTX_get_verify_mode(SSL_CTX *ctx); |
1027 | int SSL_CTX_get_verify_depth(SSL_CTX *ctx); | 1234 | int SSL_CTX_get_verify_depth(SSL_CTX *ctx); |
1028 | int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *); | 1235 | int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *); |
1029 | void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, | 1236 | void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, |
1030 | int (*callback)(int, X509_STORE_CTX *)); | 1237 | int (*callback)(int, X509_STORE_CTX *)); |
1031 | void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth); | 1238 | void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth); |
1032 | void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(),char *arg); | 1239 | void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(X509_STORE_CTX *,void *), void *arg); |
1033 | #ifndef NO_RSA | 1240 | #ifndef OPENSSL_NO_RSA |
1034 | int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); | 1241 | int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); |
1035 | #endif | 1242 | #endif |
1036 | int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len); | 1243 | int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len); |
@@ -1064,9 +1271,9 @@ int SSL_connect(SSL *ssl); | |||
1064 | int SSL_read(SSL *ssl,void *buf,int num); | 1271 | int SSL_read(SSL *ssl,void *buf,int num); |
1065 | int SSL_peek(SSL *ssl,void *buf,int num); | 1272 | int SSL_peek(SSL *ssl,void *buf,int num); |
1066 | int SSL_write(SSL *ssl,const void *buf,int num); | 1273 | int SSL_write(SSL *ssl,const void *buf,int num); |
1067 | long SSL_ctrl(SSL *ssl,int cmd, long larg, char *parg); | 1274 | long SSL_ctrl(SSL *ssl,int cmd, long larg, void *parg); |
1068 | long SSL_callback_ctrl(SSL *, int, void (*)()); | 1275 | long SSL_callback_ctrl(SSL *, int, void (*)()); |
1069 | long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, char *parg); | 1276 | long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, void *parg); |
1070 | long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)()); | 1277 | long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)()); |
1071 | 1278 | ||
1072 | int SSL_get_error(SSL *s,int ret_code); | 1279 | int SSL_get_error(SSL *s,int ret_code); |
@@ -1095,14 +1302,15 @@ STACK_OF(SSL_CIPHER) *SSL_get_ciphers(SSL *s); | |||
1095 | 1302 | ||
1096 | int SSL_do_handshake(SSL *s); | 1303 | int SSL_do_handshake(SSL *s); |
1097 | int SSL_renegotiate(SSL *s); | 1304 | int SSL_renegotiate(SSL *s); |
1305 | int SSL_renegotiate_pending(SSL *s); | ||
1098 | int SSL_shutdown(SSL *s); | 1306 | int SSL_shutdown(SSL *s); |
1099 | 1307 | ||
1100 | SSL_METHOD *SSL_get_ssl_method(SSL *s); | 1308 | SSL_METHOD *SSL_get_ssl_method(SSL *s); |
1101 | int SSL_set_ssl_method(SSL *s,SSL_METHOD *method); | 1309 | int SSL_set_ssl_method(SSL *s,SSL_METHOD *method); |
1102 | char *SSL_alert_type_string_long(int value); | 1310 | const char *SSL_alert_type_string_long(int value); |
1103 | char *SSL_alert_type_string(int value); | 1311 | const char *SSL_alert_type_string(int value); |
1104 | char *SSL_alert_desc_string_long(int value); | 1312 | const char *SSL_alert_desc_string_long(int value); |
1105 | char *SSL_alert_desc_string(int value); | 1313 | const char *SSL_alert_desc_string(int value); |
1106 | 1314 | ||
1107 | void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *list); | 1315 | void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *list); |
1108 | void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *list); | 1316 | void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *list); |
@@ -1140,8 +1348,9 @@ int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, | |||
1140 | SSL_SESSION *SSL_get_session(SSL *ssl); | 1348 | SSL_SESSION *SSL_get_session(SSL *ssl); |
1141 | SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ | 1349 | SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */ |
1142 | SSL_CTX *SSL_get_SSL_CTX(SSL *ssl); | 1350 | SSL_CTX *SSL_get_SSL_CTX(SSL *ssl); |
1143 | void SSL_set_info_callback(SSL *ssl,void (*cb)()); | 1351 | void SSL_set_info_callback(SSL *ssl, |
1144 | void (*SSL_get_info_callback(SSL *ssl))(); | 1352 | void (*cb)(const SSL *ssl,int type,int val)); |
1353 | void (*SSL_get_info_callback(SSL *ssl))(const SSL *ssl,int type,int val); | ||
1145 | int SSL_state(SSL *ssl); | 1354 | int SSL_state(SSL *ssl); |
1146 | 1355 | ||
1147 | void SSL_set_verify_result(SSL *ssl,long v); | 1356 | void SSL_set_verify_result(SSL *ssl,long v); |
@@ -1179,9 +1388,17 @@ int SSL_get_ex_data_X509_STORE_CTX_idx(void ); | |||
1179 | SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) | 1388 | SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) |
1180 | #define SSL_CTX_set_read_ahead(ctx,m) \ | 1389 | #define SSL_CTX_set_read_ahead(ctx,m) \ |
1181 | SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) | 1390 | SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) |
1391 | #define SSL_CTX_get_max_cert_list(ctx) \ | ||
1392 | SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) | ||
1393 | #define SSL_CTX_set_max_cert_list(ctx,m) \ | ||
1394 | SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) | ||
1395 | #define SSL_get_max_cert_list(ssl) \ | ||
1396 | SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) | ||
1397 | #define SSL_set_max_cert_list(ssl,m) \ | ||
1398 | SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) | ||
1182 | 1399 | ||
1183 | /* NB: the keylength is only applicable when is_export is true */ | 1400 | /* NB: the keylength is only applicable when is_export is true */ |
1184 | #ifndef NO_RSA | 1401 | #ifndef OPENSSL_NO_RSA |
1185 | void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, | 1402 | void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, |
1186 | RSA *(*cb)(SSL *ssl,int is_export, | 1403 | RSA *(*cb)(SSL *ssl,int is_export, |
1187 | int keylength)); | 1404 | int keylength)); |
@@ -1190,7 +1407,7 @@ void SSL_set_tmp_rsa_callback(SSL *ssl, | |||
1190 | RSA *(*cb)(SSL *ssl,int is_export, | 1407 | RSA *(*cb)(SSL *ssl,int is_export, |
1191 | int keylength)); | 1408 | int keylength)); |
1192 | #endif | 1409 | #endif |
1193 | #ifndef NO_DH | 1410 | #ifndef OPENSSL_NO_DH |
1194 | void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, | 1411 | void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, |
1195 | DH *(*dh)(SSL *ssl,int is_export, | 1412 | DH *(*dh)(SSL *ssl,int is_export, |
1196 | int keylength)); | 1413 | int keylength)); |
@@ -1199,7 +1416,7 @@ void SSL_set_tmp_dh_callback(SSL *ssl, | |||
1199 | int keylength)); | 1416 | int keylength)); |
1200 | #endif | 1417 | #endif |
1201 | 1418 | ||
1202 | #ifndef NO_COMP | 1419 | #ifndef OPENSSL_NO_COMP |
1203 | int SSL_COMP_add_compression_method(int id,COMP_METHOD *cm); | 1420 | int SSL_COMP_add_compression_method(int id,COMP_METHOD *cm); |
1204 | #else | 1421 | #else |
1205 | int SSL_COMP_add_compression_method(int id,char *cm); | 1422 | int SSL_COMP_add_compression_method(int id,char *cm); |
@@ -1254,6 +1471,7 @@ void ERR_load_SSL_strings(void); | |||
1254 | #define SSL_F_SSL3_CTRL 213 | 1471 | #define SSL_F_SSL3_CTRL 213 |
1255 | #define SSL_F_SSL3_CTX_CTRL 133 | 1472 | #define SSL_F_SSL3_CTX_CTRL 133 |
1256 | #define SSL_F_SSL3_ENC 134 | 1473 | #define SSL_F_SSL3_ENC 134 |
1474 | #define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 | ||
1257 | #define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 | 1475 | #define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 |
1258 | #define SSL_F_SSL3_GET_CERT_VERIFY 136 | 1476 | #define SSL_F_SSL3_GET_CERT_VERIFY 136 |
1259 | #define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137 | 1477 | #define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137 |
@@ -1403,6 +1621,7 @@ void ERR_load_SSL_strings(void); | |||
1403 | #define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 | 1621 | #define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 |
1404 | #define SSL_R_DATA_LENGTH_TOO_LONG 146 | 1622 | #define SSL_R_DATA_LENGTH_TOO_LONG 146 |
1405 | #define SSL_R_DECRYPTION_FAILED 147 | 1623 | #define SSL_R_DECRYPTION_FAILED 147 |
1624 | #define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 1109 | ||
1406 | #define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 | 1625 | #define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 |
1407 | #define SSL_R_DIGEST_CHECK_FAILED 149 | 1626 | #define SSL_R_DIGEST_CHECK_FAILED 149 |
1408 | #define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 | 1627 | #define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 |
@@ -1413,15 +1632,27 @@ void ERR_load_SSL_strings(void); | |||
1413 | #define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 | 1632 | #define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 |
1414 | #define SSL_R_HTTPS_PROXY_REQUEST 155 | 1633 | #define SSL_R_HTTPS_PROXY_REQUEST 155 |
1415 | #define SSL_R_HTTP_REQUEST 156 | 1634 | #define SSL_R_HTTP_REQUEST 156 |
1416 | #define SSL_R_INTERNAL_ERROR 157 | 1635 | #define SSL_R_ILLEGAL_PADDING 1110 |
1417 | #define SSL_R_INVALID_CHALLENGE_LENGTH 158 | 1636 | #define SSL_R_INVALID_CHALLENGE_LENGTH 158 |
1418 | #define SSL_R_INVALID_COMMAND 280 | 1637 | #define SSL_R_INVALID_COMMAND 280 |
1419 | #define SSL_R_INVALID_PURPOSE 278 | 1638 | #define SSL_R_INVALID_PURPOSE 278 |
1420 | #define SSL_R_INVALID_TRUST 279 | 1639 | #define SSL_R_INVALID_TRUST 279 |
1640 | #define SSL_R_KRB5 1104 | ||
1641 | #define SSL_R_KRB5_C_CC_PRINC 1094 | ||
1642 | #define SSL_R_KRB5_C_GET_CRED 1095 | ||
1643 | #define SSL_R_KRB5_C_INIT 1096 | ||
1644 | #define SSL_R_KRB5_C_MK_REQ 1097 | ||
1645 | #define SSL_R_KRB5_S_BAD_TICKET 1098 | ||
1646 | #define SSL_R_KRB5_S_INIT 1099 | ||
1647 | #define SSL_R_KRB5_S_RD_REQ 1108 | ||
1648 | #define SSL_R_KRB5_S_TKT_EXPIRED 1105 | ||
1649 | #define SSL_R_KRB5_S_TKT_NYV 1106 | ||
1650 | #define SSL_R_KRB5_S_TKT_SKEW 1107 | ||
1421 | #define SSL_R_LENGTH_MISMATCH 159 | 1651 | #define SSL_R_LENGTH_MISMATCH 159 |
1422 | #define SSL_R_LENGTH_TOO_SHORT 160 | 1652 | #define SSL_R_LENGTH_TOO_SHORT 160 |
1423 | #define SSL_R_LIBRARY_BUG 274 | 1653 | #define SSL_R_LIBRARY_BUG 274 |
1424 | #define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 | 1654 | #define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 |
1655 | #define SSL_R_MESSAGE_TOO_LONG 1111 | ||
1425 | #define SSL_R_MISSING_DH_DSA_CERT 162 | 1656 | #define SSL_R_MISSING_DH_DSA_CERT 162 |
1426 | #define SSL_R_MISSING_DH_KEY 163 | 1657 | #define SSL_R_MISSING_DH_KEY 163 |
1427 | #define SSL_R_MISSING_DH_RSA_CERT 164 | 1658 | #define SSL_R_MISSING_DH_RSA_CERT 164 |
@@ -1505,7 +1736,10 @@ void ERR_load_SSL_strings(void); | |||
1505 | #define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 | 1736 | #define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 |
1506 | #define SSL_R_SSL_HANDSHAKE_FAILURE 229 | 1737 | #define SSL_R_SSL_HANDSHAKE_FAILURE 229 |
1507 | #define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 | 1738 | #define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 |
1739 | #define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 1102 | ||
1740 | #define SSL_R_SSL_SESSION_ID_CONFLICT 1103 | ||
1508 | #define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 | 1741 | #define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 |
1742 | #define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 1101 | ||
1509 | #define SSL_R_SSL_SESSION_ID_IS_DIFFERENT 231 | 1743 | #define SSL_R_SSL_SESSION_ID_IS_DIFFERENT 231 |
1510 | #define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 | 1744 | #define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 |
1511 | #define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 | 1745 | #define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 |