Index: openssl/ssl/ssl.h |
=================================================================== |
--- openssl/ssl/ssl.h (revision 105093) |
+++ openssl/ssl/ssl.h (working copy) |
@@ -56,7 +56,7 @@ |
* [including the GNU Public Licence.] |
*/ |
/* ==================================================================== |
- * Copyright (c) 1998-2001 The OpenSSL Project. All rights reserved. |
+ * Copyright (c) 1998-2007 The OpenSSL Project. All rights reserved. |
* |
* Redistribution and use in source and binary forms, with or without |
* modification, are permitted provided that the following conditions |
@@ -109,63 +109,36 @@ |
* |
*/ |
/* ==================================================================== |
- * Copyright (c) 1998-2006 The OpenSSL Project. All rights reserved. |
+ * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
+ * ECC cipher suite support in OpenSSL originally developed by |
+ * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. |
+ */ |
+/* ==================================================================== |
+ * Copyright 2005 Nokia. All rights reserved. |
* |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
+ * The portions of the attached software ("Contribution") is developed by |
+ * Nokia Corporation and is licensed pursuant to the OpenSSL open source |
+ * license. |
* |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
+ * The Contribution, originally written by Mika Kousa and Pasi Eronen of |
+ * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites |
+ * support (see RFC 4279) to OpenSSL. |
* |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in |
- * the documentation and/or other materials provided with the |
- * distribution. |
+ * No patent licenses or other rights except those expressly stated in |
+ * the OpenSSL open source license shall be deemed granted or received |
+ * expressly, by implication, estoppel, or otherwise. |
* |
- * 3. All advertising materials mentioning features or use of this |
- * software must display the following acknowledgment: |
- * "This product includes software developed by the OpenSSL Project |
- * for use in the OpenSSL Toolkit. (http://www.openssl.org/)" |
+ * No assurances are provided by Nokia that the Contribution does not |
+ * infringe the patent or other intellectual property rights of any third |
+ * party or that the license provides you with all the necessary rights |
+ * to make use of the Contribution. |
* |
- * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to |
- * endorse or promote products derived from this software without |
- * prior written permission. For written permission, please contact |
- * openssl-core@openssl.org. |
- * |
- * 5. Products derived from this software may not be called "OpenSSL" |
- * nor may "OpenSSL" appear in their names without prior written |
- * permission of the OpenSSL Project. |
- * |
- * 6. Redistributions of any form whatsoever must retain the following |
- * acknowledgment: |
- * "This product includes software developed by the OpenSSL Project |
- * for use in the OpenSSL Toolkit (http://www.openssl.org/)" |
- * |
- * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY |
- * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR |
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
- * OF THE POSSIBILITY OF SUCH DAMAGE. |
- * ==================================================================== |
- * |
- * This product includes cryptographic software written by Eric Young |
- * (eay@cryptsoft.com). This product includes software written by Tim |
- * Hudson (tjh@cryptsoft.com). |
- * |
+ * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN |
+ * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA |
+ * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY |
+ * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR |
+ * OTHERWISE. |
*/ |
-/* ==================================================================== |
- * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. |
- * ECC cipher suite support in OpenSSL originally developed by |
- * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. |
- */ |
#ifndef HEADER_SSL_H |
#define HEADER_SSL_H |
@@ -248,56 +221,88 @@ |
#define SSL_MAX_KEY_ARG_LENGTH 8 |
#define SSL_MAX_MASTER_KEY_LENGTH 48 |
+ |
/* These are used to specify which ciphers to use and not to use */ |
+ |
+#define SSL_TXT_EXP40 "EXPORT40" |
+#define SSL_TXT_EXP56 "EXPORT56" |
#define SSL_TXT_LOW "LOW" |
#define SSL_TXT_MEDIUM "MEDIUM" |
#define SSL_TXT_HIGH "HIGH" |
#define SSL_TXT_FIPS "FIPS" |
-#define SSL_TXT_kFZA "kFZA" |
-#define SSL_TXT_aFZA "aFZA" |
-#define SSL_TXT_eFZA "eFZA" |
-#define SSL_TXT_FZA "FZA" |
+#define SSL_TXT_kFZA "kFZA" /* unused! */ |
+#define SSL_TXT_aFZA "aFZA" /* unused! */ |
+#define SSL_TXT_eFZA "eFZA" /* unused! */ |
+#define SSL_TXT_FZA "FZA" /* unused! */ |
+ |
#define SSL_TXT_aNULL "aNULL" |
#define SSL_TXT_eNULL "eNULL" |
#define SSL_TXT_NULL "NULL" |
+#define SSL_TXT_kRSA "kRSA" |
+#define SSL_TXT_kDHr "kDHr" /* no such ciphersuites supported! */ |
+#define SSL_TXT_kDHd "kDHd" /* no such ciphersuites supported! */ |
+#define SSL_TXT_kDH "kDH" /* no such ciphersuites supported! */ |
+#define SSL_TXT_kEDH "kEDH" |
#define SSL_TXT_kKRB5 "kKRB5" |
-#define SSL_TXT_aKRB5 "aKRB5" |
-#define SSL_TXT_KRB5 "KRB5" |
+#define SSL_TXT_kECDHr "kECDHr" |
+#define SSL_TXT_kECDHe "kECDHe" |
+#define SSL_TXT_kECDH "kECDH" |
+#define SSL_TXT_kEECDH "kEECDH" |
+#define SSL_TXT_kPSK "kPSK" |
+#define SSL_TXT_kGOST "kGOST" |
-#define SSL_TXT_kRSA "kRSA" |
-#define SSL_TXT_kDHr "kDHr" |
-#define SSL_TXT_kDHd "kDHd" |
-#define SSL_TXT_kEDH "kEDH" |
#define SSL_TXT_aRSA "aRSA" |
#define SSL_TXT_aDSS "aDSS" |
-#define SSL_TXT_aDH "aDH" |
+#define SSL_TXT_aDH "aDH" /* no such ciphersuites supported! */ |
+#define SSL_TXT_aECDH "aECDH" |
+#define SSL_TXT_aKRB5 "aKRB5" |
+#define SSL_TXT_aECDSA "aECDSA" |
+#define SSL_TXT_aPSK "aPSK" |
+#define SSL_TXT_aGOST94 "aGOST94" |
+#define SSL_TXT_aGOST01 "aGOST01" |
+#define SSL_TXT_aGOST "aGOST" |
+ |
#define SSL_TXT_DSS "DSS" |
#define SSL_TXT_DH "DH" |
-#define SSL_TXT_EDH "EDH" |
+#define SSL_TXT_EDH "EDH" /* same as "kEDH:-ADH" */ |
#define SSL_TXT_ADH "ADH" |
#define SSL_TXT_RSA "RSA" |
+#define SSL_TXT_ECDH "ECDH" |
+#define SSL_TXT_EECDH "EECDH" /* same as "kEECDH:-AECDH" */ |
+#define SSL_TXT_AECDH "AECDH" |
+#define SSL_TXT_ECDSA "ECDSA" |
+#define SSL_TXT_KRB5 "KRB5" |
+#define SSL_TXT_PSK "PSK" |
+ |
#define SSL_TXT_DES "DES" |
#define SSL_TXT_3DES "3DES" |
#define SSL_TXT_RC4 "RC4" |
#define SSL_TXT_RC2 "RC2" |
#define SSL_TXT_IDEA "IDEA" |
#define SSL_TXT_SEED "SEED" |
+#define SSL_TXT_AES128 "AES128" |
+#define SSL_TXT_AES256 "AES256" |
#define SSL_TXT_AES "AES" |
+#define SSL_TXT_CAMELLIA128 "CAMELLIA128" |
+#define SSL_TXT_CAMELLIA256 "CAMELLIA256" |
#define SSL_TXT_CAMELLIA "CAMELLIA" |
+ |
#define SSL_TXT_MD5 "MD5" |
#define SSL_TXT_SHA1 "SHA1" |
-#define SSL_TXT_SHA "SHA" |
-#define SSL_TXT_EXP "EXP" |
-#define SSL_TXT_EXPORT "EXPORT" |
-#define SSL_TXT_EXP40 "EXPORT40" |
-#define SSL_TXT_EXP56 "EXPORT56" |
+#define SSL_TXT_SHA "SHA" /* same as "SHA1" */ |
+#define SSL_TXT_GOST94 "GOST94" |
+#define SSL_TXT_GOST89MAC "GOST89MAC" |
+ |
#define SSL_TXT_SSLV2 "SSLv2" |
#define SSL_TXT_SSLV3 "SSLv3" |
#define SSL_TXT_TLSV1 "TLSv1" |
+ |
+#define SSL_TXT_EXP "EXP" |
+#define SSL_TXT_EXPORT "EXPORT" |
+ |
#define SSL_TXT_ALL "ALL" |
-#define SSL_TXT_ECC "ECCdraft" /* ECC ciphersuites are not yet official */ |
/* |
* COMPLEMENTOF* definitions. These identifiers are used to (de-select) |
@@ -319,7 +324,13 @@ |
/* The following cipher list is used by default. |
* It also is substituted when an application-defined cipher list string |
* starts with 'DEFAULT'. */ |
-#define SSL_DEFAULT_CIPHER_LIST "AES:ALL:!aNULL:!eNULL:+RC4:@STRENGTH" /* low priority for RC4 */ |
+#define SSL_DEFAULT_CIPHER_LIST "ALL:!aNULL:!eNULL:!SSLv2" |
+/* As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always |
+ * starts with a reasonable order, and all we have to do for DEFAULT is |
+ * throwing out anonymous and unencrypted ciphersuites! |
+ * (The latter are not actually enabled by ALL, but "ALL:RSA" would enable |
+ * some of them.) |
+ */ |
/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ |
#define SSL_SENT_SHUTDOWN 1 |
@@ -344,6 +355,7 @@ |
* 'struct ssl_st *' function parameters used to prototype callbacks |
* in SSL_CTX. */ |
typedef struct ssl_st *ssl_crock_st; |
+typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; |
/* used to hold info on the particular ciphers used */ |
typedef struct ssl_cipher_st |
@@ -351,17 +363,25 @@ |
int valid; |
const char *name; /* text name */ |
unsigned long id; /* id, 4 bytes, first is version */ |
- unsigned long algorithms; /* what ciphers are used */ |
+ |
+ /* changed in 0.9.9: these four used to be portions of a single value 'algorithms' */ |
+ unsigned long algorithm_mkey; /* key exchange algorithm */ |
+ unsigned long algorithm_auth; /* server authentication */ |
+ unsigned long algorithm_enc; /* symmetric encryption */ |
+ unsigned long algorithm_mac; /* symmetric authentication */ |
+ unsigned long algorithm_ssl; /* (major) protocol version */ |
+ |
unsigned long algo_strength; /* strength and export flags */ |
unsigned long algorithm2; /* Extra flags */ |
int strength_bits; /* Number of bits really used */ |
int alg_bits; /* Number of bits for algorithm */ |
- unsigned long mask; /* used for matching */ |
- unsigned long mask_strength; /* also used for matching */ |
} SSL_CIPHER; |
DECLARE_STACK_OF(SSL_CIPHER) |
+typedef int (*tls_session_ticket_ext_cb_fn)(SSL *s, const unsigned char *data, int len, void *arg); |
+typedef int (*tls_session_secret_cb_fn)(SSL *s, void *secret, int *secret_len, STACK_OF(SSL_CIPHER) *peer_ciphers, SSL_CIPHER **cipher, void *arg); |
+ |
/* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */ |
typedef struct ssl_method_st |
{ |
@@ -385,12 +405,12 @@ |
int (*ssl_dispatch_alert)(SSL *s); |
long (*ssl_ctrl)(SSL *s,int cmd,long larg,void *parg); |
long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,void *parg); |
- SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr); |
+ const SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr); |
int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr); |
int (*ssl_pending)(const SSL *s); |
int (*num_ciphers)(void); |
- SSL_CIPHER *(*get_cipher)(unsigned ncipher); |
- struct ssl_method_st *(*get_ssl_method)(int version); |
+ const SSL_CIPHER *(*get_cipher)(unsigned ncipher); |
+ const struct ssl_method_st *(*get_ssl_method)(int version); |
long (*get_timeout)(void); |
struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ |
int (*ssl_version)(void); |
@@ -402,17 +422,20 @@ |
* SSL_SESSION_ID ::= SEQUENCE { |
* version INTEGER, -- structure version number |
* SSLversion INTEGER, -- SSL version number |
- * Cipher OCTET_STRING, -- the 3 byte cipher ID |
- * Session_ID OCTET_STRING, -- the Session ID |
- * Master_key OCTET_STRING, -- the master key |
- * KRB5_principal OCTET_STRING -- optional Kerberos principal |
- * Key_Arg [ 0 ] IMPLICIT OCTET_STRING, -- the optional Key argument |
+ * Cipher OCTET STRING, -- the 3 byte cipher ID |
+ * Session_ID OCTET STRING, -- the Session ID |
+ * Master_key OCTET STRING, -- the master key |
+ * KRB5_principal OCTET STRING -- optional Kerberos principal |
+ * Key_Arg [ 0 ] IMPLICIT OCTET STRING, -- the optional Key argument |
* Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time |
* Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds |
* Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate |
- * Session_ID_context [ 4 ] EXPLICIT OCTET_STRING, -- the Session ID context |
- * Verify_result [ 5 ] EXPLICIT INTEGER -- X509_V_... code for `Peer' |
- * Compression [6] IMPLICIT ASN1_OBJECT -- compression OID XXXXX |
+ * Session_ID_context [ 4 ] EXPLICIT OCTET STRING, -- the Session ID context |
+ * Verify_result [ 5 ] EXPLICIT INTEGER, -- X509_V_... code for `Peer' |
+ * HostName [ 6 ] EXPLICIT OCTET STRING, -- optional HostName from servername TLS extension |
+ * ECPointFormatList [ 7 ] OCTET STRING, -- optional EC point format list from TLS extension |
+ * PSK_identity_hint [ 8 ] EXPLICIT OCTET STRING, -- optional PSK identity hint |
+ * PSK_identity [ 9 ] EXPLICIT OCTET STRING -- optional PSK identity |
* } |
* Look in ssl/ssl_asn1.c for more details |
* I'm using EXPLICIT tags so I can read the damn things using asn1parse :-). |
@@ -440,7 +463,10 @@ |
unsigned int krb5_client_princ_len; |
unsigned char krb5_client_princ[SSL_MAX_KRB5_PRINCIPAL_LENGTH]; |
#endif /* OPENSSL_NO_KRB5 */ |
- |
+#ifndef OPENSSL_NO_PSK |
+ char *psk_identity_hint; |
+ char *psk_identity; |
+#endif |
int not_resumable; |
/* The cert is the certificate used to establish this connection */ |
@@ -459,9 +485,9 @@ |
long timeout; |
long time; |
- int compress_meth; /* Need to lookup the method */ |
+ unsigned int compress_meth; /* Need to lookup the method */ |
- SSL_CIPHER *cipher; |
+ const SSL_CIPHER *cipher; |
unsigned long cipher_id; /* when ASN.1 loaded, this |
* needs to be used to load |
* the 'cipher' structure */ |
@@ -475,6 +501,12 @@ |
struct ssl_session_st *prev,*next; |
#ifndef OPENSSL_NO_TLSEXT |
char *tlsext_hostname; |
+#ifndef OPENSSL_NO_EC |
+ size_t tlsext_ecpointformatlist_length; |
+ unsigned char *tlsext_ecpointformatlist; /* peer's list */ |
+ size_t tlsext_ellipticcurvelist_length; |
+ unsigned char *tlsext_ellipticcurvelist; /* peer's list */ |
+#endif /* OPENSSL_NO_EC */ |
/* RFC4507 info */ |
unsigned char *tlsext_tick; /* Session ticket */ |
size_t tlsext_ticklen; /* Session ticket length */ |
@@ -504,7 +536,7 @@ |
/* SSL_OP_ALL: various bug workarounds that should be rather harmless. |
* This used to be 0x000FFFFFL before 0.9.7. */ |
-#define SSL_OP_ALL 0x00000FFFL |
+#define SSL_OP_ALL 0x80000FFFL |
/* DTLS options */ |
#define SSL_OP_NO_QUERY_MTU 0x00001000L |
@@ -517,6 +549,8 @@ |
/* As server, disallow session resumption on renegotiation */ |
#define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000L |
+/* Don't use compression even if supported */ |
+#define SSL_OP_NO_COMPRESSION 0x00020000L |
/* Permit unsafe legacy renegotiation */ |
#define SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0x00040000L |
/* If set, always create a new key when using tmp_ecdh parameters */ |
@@ -545,8 +579,12 @@ |
#define SSL_OP_PKCS1_CHECK_2 0x10000000L |
#define SSL_OP_NETSCAPE_CA_DN_BUG 0x20000000L |
#define SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 0x40000000L |
+/* Make server add server-hello extension from early version of |
+ * cryptopro draft, when GOST ciphersuite is negotiated. |
+ * Required for interoperability with CryptoPro CSP 3.x |
+ */ |
+#define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000L |
- |
/* Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success |
* when just a single record has been written): */ |
#define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001L |
@@ -560,10 +598,17 @@ |
#define SSL_MODE_AUTO_RETRY 0x00000004L |
/* Don't attempt to automatically build certificate chain */ |
#define SSL_MODE_NO_AUTO_CHAIN 0x00000008L |
+/* Save RAM by releasing read and write buffers when they're empty. (SSL3 and |
+ * TLS only.) "Released" buffers are put onto a free-list in the context |
+ * or just freed (depending on the context's setting for freelist_max_len). */ |
+#define SSL_MODE_RELEASE_BUFFERS 0x00000010L |
+/* Use small read and write buffers: (a) lazy allocate read buffers for |
+ * large incoming records, and (b) limit the size of outgoing records. */ |
+#define SSL_MODE_SMALL_BUFFERS 0x00000020L |
/* When set, clients may send application data before receipt of CCS |
* and Finished. This mode enables full-handshakes to 'complete' in |
* one RTT. */ |
-#define SSL_MODE_HANDSHAKE_CUTTHROUGH 0x00000020L |
+#define SSL_MODE_HANDSHAKE_CUTTHROUGH 0x00000040L |
/* Note: SSL[_CTX]_set_{options,mode} use |= op on the previous value, |
* they cannot be used to clear bits. */ |
@@ -642,17 +687,18 @@ |
} SSL_COMP; |
DECLARE_STACK_OF(SSL_COMP) |
+DECLARE_LHASH_OF(SSL_SESSION); |
struct ssl_ctx_st |
{ |
- SSL_METHOD *method; |
+ const SSL_METHOD *method; |
STACK_OF(SSL_CIPHER) *cipher_list; |
/* same as above but sorted for lookup */ |
STACK_OF(SSL_CIPHER) *cipher_list_by_id; |
struct x509_store_st /* X509_STORE */ *cert_store; |
- struct lhash_st /* LHASH */ *sessions; /* a set of SSL_SESSIONs */ |
+ LHASH_OF(SSL_SESSION) *sessions; |
/* Most session-ids that will be cached, default is |
* SSL_SESSION_CACHE_MAX_SIZE_DEFAULT. 0 is unlimited. */ |
unsigned long session_cache_size; |
@@ -770,11 +816,6 @@ |
X509_VERIFY_PARAM *param; |
- /* The configured Snap Start orbit value, if set. */ |
- char snap_start_orbit_valid; |
- unsigned char snap_start_orbit[8]; |
- |
- |
#if 0 |
int purpose; /* Purpose setting */ |
int trust; /* Trust setting */ |
@@ -782,6 +823,12 @@ |
int quiet_shutdown; |
+ /* Maximum amount of data to send in one fragment. |
+ * actual record size can be more than this due to |
+ * padding and MAC overheads. |
+ */ |
+ unsigned int max_send_fragment; |
+ |
#ifndef OPENSSL_ENGINE |
/* Engine to pass requests for client certs to |
*/ |
@@ -800,13 +847,18 @@ |
int (*tlsext_ticket_key_cb)(SSL *ssl, |
unsigned char *name, unsigned char *iv, |
EVP_CIPHER_CTX *ectx, |
- HMAC_CTX *hctx, int enc); |
+ HMAC_CTX *hctx, int enc); |
/* certificate status request info */ |
/* Callback for status request */ |
int (*tlsext_status_cb)(SSL *ssl, void *arg); |
void *tlsext_status_arg; |
+ /* draft-rescorla-tls-opaque-prf-input-00.txt information */ |
+ int (*tlsext_opaque_prf_input_callback)(SSL *, void *peerinput, size_t len, void *arg); |
+ void *tlsext_opaque_prf_input_callback_arg; |
+ |
+# ifndef OPENSSL_NO_NEXTPROTONEG |
/* Next protocol negotiation information */ |
/* (for experimental NPN extension). */ |
@@ -823,8 +875,24 @@ |
unsigned int inlen, |
void *arg); |
void *next_proto_select_cb_arg; |
+# endif |
#endif |
+#ifndef OPENSSL_NO_PSK |
+ char *psk_identity_hint; |
+ unsigned int (*psk_client_callback)(SSL *ssl, const char *hint, char *identity, |
+ unsigned int max_identity_len, unsigned char *psk, |
+ unsigned int max_psk_len); |
+ unsigned int (*psk_server_callback)(SSL *ssl, const char *identity, |
+ unsigned char *psk, unsigned int max_psk_len); |
+#endif |
+ |
+#ifndef OPENSSL_NO_BUF_FREELISTS |
+#define SSL_MAX_BUF_FREELIST_LEN_DEFAULT 32 |
+ unsigned int freelist_max_len; |
+ struct ssl3_buf_freelist_st *wbuf_freelist; |
+ struct ssl3_buf_freelist_st *rbuf_freelist; |
+#endif |
}; |
#define SSL_SESS_CACHE_OFF 0x0000 |
@@ -838,7 +906,7 @@ |
#define SSL_SESS_CACHE_NO_INTERNAL \ |
(SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) |
- struct lhash_st *SSL_CTX_sessions(SSL_CTX *ctx); |
+LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); |
#define SSL_CTX_sess_number(ctx) \ |
SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) |
#define SSL_CTX_sess_connect(ctx) \ |
@@ -879,33 +947,70 @@ |
#endif |
void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, int (*app_gen_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int *cookie_len)); |
void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, int (*app_verify_cookie_cb)(SSL *ssl, unsigned char *cookie, unsigned int cookie_len)); |
-void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, int (*cb) (SSL *ssl, const unsigned char **out, unsigned int *outlen, void *arg), void *arg); |
-void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, int (*cb) (SSL *ssl, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg), void *arg); |
-void SSL_CTX_set_snap_start_orbit(SSL_CTX *s, const unsigned char orbit[8]); |
+#ifndef OPENSSL_NO_NEXTPROTONEG |
+void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, |
+ int (*cb) (SSL *ssl, |
+ const unsigned char **out, |
+ unsigned int *outlen, |
+ void *arg), void *arg); |
+void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, |
+ int (*cb) (SSL *ssl, unsigned char **out, |
+ unsigned char *outlen, |
+ const unsigned char *in, |
+ unsigned int inlen, void *arg), |
+ void *arg); |
-int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, const unsigned char *client, unsigned int client_len); |
-void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, unsigned *len); |
+int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, |
+ const unsigned char *in, unsigned int inlen, |
+ const unsigned char *client, unsigned int client_len); |
+void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, |
+ unsigned *len); |
-void SSL_get0_suggested_server_random(const SSL *s, const unsigned char **data, unsigned *len); |
-void SSL_set_suggested_server_random_validity(SSL *s, char is_valid); |
- |
#define OPENSSL_NPN_UNSUPPORTED 0 |
#define OPENSSL_NPN_NEGOTIATED 1 |
#define OPENSSL_NPN_NO_OVERLAP 2 |
+#endif |
+ |
+#ifndef OPENSSL_NO_PSK |
+/* the maximum length of the buffer given to callbacks containing the |
+ * resulting identity/psk */ |
+#define PSK_MAX_IDENTITY_LEN 128 |
+#define PSK_MAX_PSK_LEN 256 |
+void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, |
+ unsigned int (*psk_client_callback)(SSL *ssl, const char *hint, |
+ char *identity, unsigned int max_identity_len, unsigned char *psk, |
+ unsigned int max_psk_len)); |
+void SSL_set_psk_client_callback(SSL *ssl, |
+ unsigned int (*psk_client_callback)(SSL *ssl, const char *hint, |
+ char *identity, unsigned int max_identity_len, unsigned char *psk, |
+ unsigned int max_psk_len)); |
+void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, |
+ unsigned int (*psk_server_callback)(SSL *ssl, const char *identity, |
+ unsigned char *psk, unsigned int max_psk_len)); |
+void SSL_set_psk_server_callback(SSL *ssl, |
+ unsigned int (*psk_server_callback)(SSL *ssl, const char *identity, |
+ unsigned char *psk, unsigned int max_psk_len)); |
+int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *identity_hint); |
+int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint); |
+const char *SSL_get_psk_identity_hint(const SSL *s); |
+const char *SSL_get_psk_identity(const SSL *s); |
+#endif |
+ |
#define SSL_NOTHING 1 |
#define SSL_WRITING 2 |
#define SSL_READING 3 |
#define SSL_X509_LOOKUP 4 |
-#define SSL_SERVER_RANDOM_VALIDATE 6 |
/* These will only be used when doing non-blocking IO */ |
#define SSL_want_nothing(s) (SSL_want(s) == SSL_NOTHING) |
#define SSL_want_read(s) (SSL_want(s) == SSL_READING) |
#define SSL_want_write(s) (SSL_want(s) == SSL_WRITING) |
#define SSL_want_x509_lookup(s) (SSL_want(s) == SSL_X509_LOOKUP) |
-#define SSL_want_server_random_validation(s) (SSL_want(s) == SSL_SERVER_RANDOM_VALIDATE) |
+#define SSL_MAC_FLAG_READ_MAC_STREAM 1 |
+#define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 |
+ |
struct ssl_st |
{ |
/* protocol version |
@@ -914,7 +1019,7 @@ |
int version; |
int type; /* SSL_ST_CONNECT or SSL_ST_ACCEPT */ |
- SSL_METHOD *method; /* SSLv3 */ |
+ const SSL_METHOD *method; /* SSLv3 */ |
/* There are 2 BIO's even though they are normally both the |
* same. This is so data can be read and written to different |
@@ -997,9 +1102,9 @@ |
/* These are the ones being used, the ones in SSL_SESSION are |
* the ones to be 'copied' into these ones */ |
- |
+ int mac_flags; |
EVP_CIPHER_CTX *enc_read_ctx; /* cryptographic state */ |
- const EVP_MD *read_hash; /* used for mac generation */ |
+ EVP_MD_CTX *read_hash; /* used for mac generation */ |
#ifndef OPENSSL_NO_COMP |
COMP_CTX *expand; /* uncompress */ |
#else |
@@ -1007,7 +1112,7 @@ |
#endif |
EVP_CIPHER_CTX *enc_write_ctx; /* cryptographic state */ |
- const EVP_MD *write_hash; /* used for mac generation */ |
+ EVP_MD_CTX *write_hash; /* used for mac generation */ |
#ifndef OPENSSL_NO_COMP |
COMP_CTX *compress; /* compression */ |
#else |
@@ -1028,6 +1133,9 @@ |
/* This can also be in the session once a session is established */ |
SSL_SESSION *session; |
+ /* This can be disabled to prevent the use of uncached sessions */ |
+ int session_creation_enabled; |
+ |
/* Default generate session ID callback. */ |
GEN_SESSION_CB generate_session_id; |
@@ -1045,6 +1153,14 @@ |
KSSL_CTX *kssl_ctx; /* Kerberos 5 context */ |
#endif /* OPENSSL_NO_KRB5 */ |
+#ifndef OPENSSL_NO_PSK |
+ unsigned int (*psk_client_callback)(SSL *ssl, const char *hint, char *identity, |
+ unsigned int max_identity_len, unsigned char *psk, |
+ unsigned int max_psk_len); |
+ unsigned int (*psk_server_callback)(SSL *ssl, const char *identity, |
+ unsigned char *psk, unsigned int max_psk_len); |
+#endif |
+ |
SSL_CTX *ctx; |
/* set this flag to 1 and a sleep(1) is put into all SSL_read() |
* and SSL_write() calls, good for nbio debuging :-) */ |
@@ -1064,6 +1180,7 @@ |
int first_packet; |
int client_version; /* what was passed, used for |
* SSLv3/TLS rollback check */ |
+ unsigned int max_send_fragment; |
#ifndef OPENSSL_NO_TLSEXT |
/* TLS extension debug callback */ |
void (*tlsext_debug_cb)(SSL *s, int client_server, int type, |
@@ -1090,8 +1207,31 @@ |
/* RFC4507 session ticket expected to be received or sent */ |
int tlsext_ticket_expected; |
+#ifndef OPENSSL_NO_EC |
+ size_t tlsext_ecpointformatlist_length; |
+ unsigned char *tlsext_ecpointformatlist; /* our list */ |
+ size_t tlsext_ellipticcurvelist_length; |
+ unsigned char *tlsext_ellipticcurvelist; /* our list */ |
+#endif /* OPENSSL_NO_EC */ |
+ |
+ /* draft-rescorla-tls-opaque-prf-input-00.txt information to be used for handshakes */ |
+ void *tlsext_opaque_prf_input; |
+ size_t tlsext_opaque_prf_input_len; |
+ |
+ /* TLS Session Ticket extension override */ |
+ TLS_SESSION_TICKET_EXT *tlsext_session_ticket; |
+ |
+ /* TLS Session Ticket extension callback */ |
+ tls_session_ticket_ext_cb_fn tls_session_ticket_ext_cb; |
+ void *tls_session_ticket_ext_cb_arg; |
+ |
+ /* TLS pre-shared secret session resumption */ |
+ tls_session_secret_cb_fn tls_session_secret_cb; |
+ void *tls_session_secret_cb_arg; |
+ |
SSL_CTX * initial_ctx; /* initial ctx, used to store sessions */ |
+#ifndef OPENSSL_NO_NEXTPROTONEG |
/* Next protocol negotiation. For the client, this is the protocol that |
* we sent in NextProtocol and is set when handling ServerHello |
* extensions. |
@@ -1101,10 +1241,12 @@ |
* before the Finished message. */ |
unsigned char *next_proto_negotiated; |
unsigned char next_proto_negotiated_len; |
+#endif |
+ |
#define session_ctx initial_ctx |
#else |
#define session_ctx ctx |
-#endif |
+#endif /* OPENSSL_NO_TLSEXT */ |
}; |
#ifdef __cplusplus |
@@ -1213,20 +1355,13 @@ |
#define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) |
#define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) |
-#if 1 /*SSLEAY_MACROS*/ |
#define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) |
#define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) |
-#define PEM_read_SSL_SESSION(fp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read( \ |
- (char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,fp,(char **)x,cb,u) |
-#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) |
-#define PEM_write_SSL_SESSION(fp,x) \ |
- PEM_ASN1_write((int (*)())i2d_SSL_SESSION, \ |
- PEM_STRING_SSL_SESSION,fp, (char *)x, NULL,NULL,0,NULL,NULL) |
-#define PEM_write_bio_SSL_SESSION(bp,x) \ |
- PEM_ASN1_write_bio_of(SSL_SESSION,i2d_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,x,NULL,NULL,0,NULL,NULL) |
-#endif |
-#define SSL_AD_REASON_OFFSET 1000 |
+DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) |
+ |
+#define SSL_AD_REASON_OFFSET 1000 /* offset to get SSL_R_... value from SSL_AD_... */ |
+ |
/* These alert types are for SSLv3 and TLSv1 */ |
#define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY |
#define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE /* fatal */ |
@@ -1256,6 +1391,8 @@ |
#define SSL_AD_CERTIFICATE_UNOBTAINABLE TLS1_AD_CERTIFICATE_UNOBTAINABLE |
#define SSL_AD_UNRECOGNIZED_NAME TLS1_AD_UNRECOGNIZED_NAME |
#define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE |
+#define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE |
+#define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY /* fatal */ |
#define SSL_ERROR_NONE 0 |
#define SSL_ERROR_SSL 1 |
@@ -1266,7 +1403,6 @@ |
#define SSL_ERROR_ZERO_RETURN 6 |
#define SSL_ERROR_WANT_CONNECT 7 |
#define SSL_ERROR_WANT_ACCEPT 8 |
-#define SSL_ERROR_SERVER_RANDOM_VALIDATION_PENDING 10 |
#define SSL_CTRL_NEED_TMP_RSA 1 |
#define SSL_CTRL_SET_TMP_RSA 2 |
@@ -1315,6 +1451,8 @@ |
#define SSL_CTRL_GET_MAX_CERT_LIST 50 |
#define SSL_CTRL_SET_MAX_CERT_LIST 51 |
+#define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 |
+ |
/* see tls1.h for macros based on these */ |
#ifndef OPENSSL_NO_TLSEXT |
#define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 |
@@ -1324,7 +1462,9 @@ |
#define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 |
#define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 |
#define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 |
- |
+#define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 |
+#define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 |
+#define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 |
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 |
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 |
#define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 |
@@ -1394,7 +1534,7 @@ |
#endif |
int SSL_CTX_set_cipher_list(SSL_CTX *,const char *str); |
-SSL_CTX *SSL_CTX_new(SSL_METHOD *meth); |
+SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); |
void SSL_CTX_free(SSL_CTX *); |
long SSL_CTX_set_timeout(SSL_CTX *ctx,long t); |
long SSL_CTX_get_timeout(const SSL_CTX *ctx); |
@@ -1405,10 +1545,11 @@ |
void SSL_CTX_flush_sessions(SSL_CTX *ctx,long tm); |
-SSL_CIPHER *SSL_get_current_cipher(const SSL *s); |
+const SSL_CIPHER *SSL_get_current_cipher(const SSL *s); |
int SSL_CIPHER_get_bits(const SSL_CIPHER *c,int *alg_bits); |
char * SSL_CIPHER_get_version(const SSL_CIPHER *c); |
const char * SSL_CIPHER_get_name(const SSL_CIPHER *c); |
+const char * SSL_CIPHER_authentication_method(const SSL_CIPHER *c); |
int SSL_get_fd(const SSL *s); |
int SSL_get_rfd(const SSL *s); |
@@ -1417,6 +1558,7 @@ |
char * SSL_get_shared_ciphers(const SSL *s, char *buf, int len); |
int SSL_get_read_ahead(const SSL * s); |
int SSL_pending(const SSL *s); |
+const char * SSL_authentication_method(const SSL *c); |
#ifndef OPENSSL_NO_SOCK |
int SSL_set_fd(SSL *s, int fd); |
int SSL_set_rfd(SSL *s, int fd); |
@@ -1428,6 +1570,7 @@ |
BIO * SSL_get_wbio(const SSL *s); |
#endif |
int SSL_set_cipher_list(SSL *s, const char *str); |
+int SSL_set_cipher_lists(SSL *s, STACK_OF(SSL_CIPHER) *sk); |
void SSL_set_read_ahead(SSL *s, int yes); |
int SSL_get_verify_mode(const SSL *s); |
int SSL_get_verify_depth(const SSL *s); |
@@ -1443,6 +1586,8 @@ |
int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, const unsigned char *d, long len); |
int SSL_use_certificate(SSL *ssl, X509 *x); |
int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); |
+int SSL_use_certificate_chain(SSL *ssl, STACK_OF(X509) *cert_chain); |
+STACK_OF(X509) * SSL_get_certificate_chain(SSL *ssl, X509 *x); |
#ifndef OPENSSL_NO_STDIO |
int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); |
@@ -1476,9 +1621,9 @@ |
void SSL_copy_session_id(SSL *to,const SSL *from); |
SSL_SESSION *SSL_SESSION_new(void); |
-unsigned long SSL_SESSION_hash(const SSL_SESSION *a); |
-int SSL_SESSION_cmp(const SSL_SESSION *a,const SSL_SESSION *b); |
-const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, unsigned int *len); |
+const unsigned char *SSL_SESSION_get_id(const SSL_SESSION *s, |
+ unsigned int *len); |
+const char * SSL_SESSION_get_version(const SSL_SESSION *s); |
#ifndef OPENSSL_NO_FP_API |
int SSL_SESSION_print_fp(FILE *fp,const SSL_SESSION *ses); |
#endif |
@@ -1488,6 +1633,7 @@ |
void SSL_SESSION_free(SSL_SESSION *ses); |
int i2d_SSL_SESSION(SSL_SESSION *in,unsigned char **pp); |
int SSL_set_session(SSL *to, SSL_SESSION *session); |
+void SSL_set_session_creation_enabled(SSL *, int); |
int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c); |
int SSL_CTX_remove_session(SSL_CTX *,SSL_SESSION *c); |
int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); |
@@ -1538,6 +1684,9 @@ |
int SSL_CTX_set_trust(SSL_CTX *s, int trust); |
int SSL_set_trust(SSL *s, int trust); |
+int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); |
+int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); |
+ |
void SSL_free(SSL *ssl); |
int SSL_accept(SSL *ssl); |
int SSL_connect(SSL *ssl); |
@@ -1553,27 +1702,29 @@ |
const char *SSL_get_version(const SSL *s); |
/* This sets the 'default' SSL version that SSL_new() will create */ |
-int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth); |
+int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth); |
-SSL_METHOD *SSLv2_method(void); /* SSLv2 */ |
-SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ |
-SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ |
+#ifndef OPENSSL_NO_SSL2 |
+const SSL_METHOD *SSLv2_method(void); /* SSLv2 */ |
+const SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */ |
+const SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */ |
+#endif |
-SSL_METHOD *SSLv3_method(void); /* SSLv3 */ |
-SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ |
-SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ |
+const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ |
+const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ |
+const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ |
-SSL_METHOD *SSLv23_method(void); /* SSLv3 but can rollback to v2 */ |
-SSL_METHOD *SSLv23_server_method(void); /* SSLv3 but can rollback to v2 */ |
-SSL_METHOD *SSLv23_client_method(void); /* SSLv3 but can rollback to v2 */ |
+const SSL_METHOD *SSLv23_method(void); /* SSLv3 but can rollback to v2 */ |
+const SSL_METHOD *SSLv23_server_method(void); /* SSLv3 but can rollback to v2 */ |
+const SSL_METHOD *SSLv23_client_method(void); /* SSLv3 but can rollback to v2 */ |
-SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ |
-SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ |
-SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */ |
+const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ |
+const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ |
+const SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */ |
-SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ |
-SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ |
-SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ |
+const SSL_METHOD *DTLSv1_method(void); /* DTLSv1.0 */ |
+const SSL_METHOD *DTLSv1_server_method(void); /* DTLSv1.0 */ |
+const SSL_METHOD *DTLSv1_client_method(void); /* DTLSv1.0 */ |
STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s); |
@@ -1582,8 +1733,8 @@ |
int SSL_renegotiate_pending(SSL *s); |
int SSL_shutdown(SSL *s); |
-SSL_METHOD *SSL_get_ssl_method(SSL *s); |
-int SSL_set_ssl_method(SSL *s,SSL_METHOD *method); |
+const SSL_METHOD *SSL_get_ssl_method(SSL *s); |
+int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); |
const char *SSL_alert_type_string_long(int value); |
const char *SSL_alert_type_string(int value); |
const char *SSL_alert_desc_string_long(int value); |
@@ -1675,6 +1826,11 @@ |
#define SSL_set_max_cert_list(ssl,m) \ |
SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) |
+#define SSL_CTX_set_max_send_fragment(ctx,m) \ |
+ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) |
+#define SSL_set_max_send_fragment(ssl,m) \ |
+ SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) |
+ |
/* NB: the keylength is only applicable when is_export is true */ |
#ifndef OPENSSL_NO_RSA |
void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, |
@@ -1716,6 +1872,15 @@ |
int SSL_COMP_add_compression_method(int id,void *cm); |
#endif |
+/* TLS extensions functions */ |
+int SSL_set_session_ticket_ext(SSL *s, void *ext_data, int ext_len); |
+ |
+int SSL_set_session_ticket_ext_cb(SSL *s, tls_session_ticket_ext_cb_fn cb, |
+ void *arg); |
+ |
+/* Pre-shared secret session resumption functions */ |
+int SSL_set_session_secret_cb(SSL *s, tls_session_secret_cb_fn tls_session_secret_cb, void *arg); |
+ |
/* BEGIN ERROR CODES */ |
/* The following lines are auto generated by the script mkerr.pl. Any changes |
* made after this point may be overwritten when the script is next run. |
@@ -1733,7 +1898,7 @@ |
#define SSL_F_DO_DTLS1_WRITE 245 |
#define SSL_F_DO_SSL3_WRITE 104 |
#define SSL_F_DTLS1_ACCEPT 246 |
-#define SSL_F_DTLS1_ADD_CERT_TO_BUF 280 |
+#define SSL_F_DTLS1_ADD_CERT_TO_BUF 295 |
#define SSL_F_DTLS1_BUFFER_RECORD 247 |
#define SSL_F_DTLS1_CLIENT_HELLO 248 |
#define SSL_F_DTLS1_CONNECT 249 |
@@ -1742,9 +1907,9 @@ |
#define SSL_F_DTLS1_GET_MESSAGE 252 |
#define SSL_F_DTLS1_GET_MESSAGE_FRAGMENT 253 |
#define SSL_F_DTLS1_GET_RECORD 254 |
-#define SSL_F_DTLS1_HANDLE_TIMEOUT 282 |
+#define SSL_F_DTLS1_HANDLE_TIMEOUT 297 |
#define SSL_F_DTLS1_OUTPUT_CERT_CHAIN 255 |
-#define SSL_F_DTLS1_PREPROCESS_FRAGMENT 277 |
+#define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 |
#define SSL_F_DTLS1_PROCESS_OUT_OF_SEQ_MESSAGE 256 |
#define SSL_F_DTLS1_PROCESS_RECORD 257 |
#define SSL_F_DTLS1_READ_BYTES 258 |
@@ -1766,7 +1931,6 @@ |
#define SSL_F_GET_SERVER_VERIFY 110 |
#define SSL_F_I2D_SSL_SESSION 111 |
#define SSL_F_READ_N 112 |
-#define SSL_F_SSL3_READ_SNAP_START_N 300 |
#define SSL_F_REQUEST_CERTIFICATE 113 |
#define SSL_F_SERVER_FINISH 239 |
#define SSL_F_SERVER_HELLO 114 |
@@ -1789,19 +1953,21 @@ |
#define SSL_F_SSL2_SET_CERTIFICATE 126 |
#define SSL_F_SSL2_WRITE 127 |
#define SSL_F_SSL3_ACCEPT 128 |
-#define SSL_F_SSL3_ADD_CERT_TO_BUF 281 |
+#define SSL_F_SSL3_ADD_CERT_TO_BUF 296 |
#define SSL_F_SSL3_CALLBACK_CTRL 233 |
#define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 |
#define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 |
+#define SSL_F_SSL3_CHECK_CLIENT_HELLO 304 |
#define SSL_F_SSL3_CLIENT_HELLO 131 |
#define SSL_F_SSL3_CONNECT 132 |
#define SSL_F_SSL3_CTRL 213 |
#define SSL_F_SSL3_CTX_CTRL 133 |
-#define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 279 |
+#define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 |
+#define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 |
#define SSL_F_SSL3_ENC 134 |
#define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 |
#define SSL_F_SSL3_GET_CERTIFICATE_REQUEST 135 |
-#define SSL_F_SSL3_GET_CERT_STATUS 288 |
+#define SSL_F_SSL3_GET_CERT_STATUS 289 |
#define SSL_F_SSL3_GET_CERT_VERIFY 136 |
#define SSL_F_SSL3_GET_CLIENT_CERTIFICATE 137 |
#define SSL_F_SSL3_GET_CLIENT_HELLO 138 |
@@ -1810,12 +1976,13 @@ |
#define SSL_F_SSL3_GET_KEY_EXCHANGE 141 |
#define SSL_F_SSL3_GET_MESSAGE 142 |
#define SSL_F_SSL3_GET_NEW_SESSION_TICKET 283 |
-#define SSL_F_SSL3_GET_NEXT_PROTO 297 |
+#define SSL_F_SSL3_GET_NEXT_PROTO 304 |
#define SSL_F_SSL3_GET_RECORD 143 |
#define SSL_F_SSL3_GET_SERVER_CERTIFICATE 144 |
#define SSL_F_SSL3_GET_SERVER_DONE 145 |
#define SSL_F_SSL3_GET_SERVER_HELLO 146 |
-#define SSL_F_SSL3_NEW_SESSION_TICKET 284 |
+#define SSL_F_SSL3_HANDSHAKE_MAC 285 |
+#define SSL_F_SSL3_NEW_SESSION_TICKET 287 |
#define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 |
#define SSL_F_SSL3_PEEK 235 |
#define SSL_F_SSL3_READ_BYTES 148 |
@@ -1827,16 +1994,17 @@ |
#define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154 |
#define SSL_F_SSL3_SEND_SERVER_HELLO 242 |
#define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155 |
-#define SSL_F_SSL3_SETUP_BUFFERS 156 |
#define SSL_F_SSL3_SETUP_KEY_BLOCK 157 |
+#define SSL_F_SSL3_SETUP_READ_BUFFER 156 |
+#define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 |
#define SSL_F_SSL3_WRITE_BYTES 158 |
#define SSL_F_SSL3_WRITE_PENDING 159 |
-#define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 285 |
-#define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 272 |
+#define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 |
+#define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 |
#define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 |
#define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 |
-#define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 286 |
-#define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 273 |
+#define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 |
+#define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 |
#define SSL_F_SSL_BAD_METHOD 160 |
#define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 |
#define SSL_F_SSL_CERT_DUP 221 |
@@ -1844,7 +2012,8 @@ |
#define SSL_F_SSL_CERT_INSTANTIATE 214 |
#define SSL_F_SSL_CERT_NEW 162 |
#define SSL_F_SSL_CHECK_PRIVATE_KEY 163 |
-#define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 274 |
+#define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 |
+#define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 |
#define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 |
#define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 |
#define SSL_F_SSL_CLEAR 164 |
@@ -1854,7 +2023,7 @@ |
#define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 |
#define SSL_F_SSL_CTX_NEW 169 |
#define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 |
-#define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 278 |
+#define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 |
#define SSL_F_SSL_CTX_SET_PURPOSE 226 |
#define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 |
#define SSL_F_SSL_CTX_SET_SSL_VERSION 170 |
@@ -1866,6 +2035,7 @@ |
#define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 |
#define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 |
#define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 |
+#define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 |
#define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 |
#define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 |
#define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 |
@@ -1877,14 +2047,13 @@ |
#define SSL_F_SSL_INIT_WBIO_BUFFER 184 |
#define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 |
#define SSL_F_SSL_NEW 186 |
-#define SSL_F_SSL_NEXT_PROTOS_PARSE 298 |
-#define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 287 |
-#define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 290 |
-#define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 289 |
-#define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 291 |
+#define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 |
+#define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 |
+#define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 |
+#define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 |
#define SSL_F_SSL_PEEK 270 |
-#define SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT 275 |
-#define SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT 276 |
+#define SSL_F_SSL_PREPARE_CLIENTHELLO_TLSEXT 281 |
+#define SSL_F_SSL_PREPARE_SERVERHELLO_TLSEXT 282 |
#define SSL_F_SSL_READ 223 |
#define SSL_F_SSL_RSA_PRIVATE_DECRYPT 187 |
#define SSL_F_SSL_RSA_PUBLIC_ENCRYPT 188 |
@@ -1899,6 +2068,7 @@ |
#define SSL_F_SSL_SET_RFD 194 |
#define SSL_F_SSL_SET_SESSION 195 |
#define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 |
+#define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 |
#define SSL_F_SSL_SET_TRUST 228 |
#define SSL_F_SSL_SET_WFD 196 |
#define SSL_F_SSL_SHUTDOWN 224 |
@@ -1907,20 +2077,26 @@ |
#define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 |
#define SSL_F_SSL_USE_CERTIFICATE 198 |
#define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 |
+#define SSL_F_SSL_USE_CERTIFICATE_CHAIN 2000 |
#define SSL_F_SSL_USE_CERTIFICATE_FILE 200 |
#define SSL_F_SSL_USE_PRIVATEKEY 201 |
#define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 |
#define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 |
+#define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 |
#define SSL_F_SSL_USE_RSAPRIVATEKEY 204 |
#define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 |
#define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 |
#define SSL_F_SSL_VERIFY_CERT_CHAIN 207 |
#define SSL_F_SSL_WRITE 208 |
+#define SSL_F_TLS1_CERT_VERIFY_MAC 286 |
#define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 |
+#define SSL_F_TLS1_CHECK_SERVERHELLO_TLSEXT 274 |
#define SSL_F_TLS1_ENC 210 |
+#define SSL_F_TLS1_PREPARE_CLIENTHELLO_TLSEXT 275 |
+#define SSL_F_TLS1_PREPARE_SERVERHELLO_TLSEXT 276 |
+#define SSL_F_TLS1_PRF 284 |
#define SSL_F_TLS1_SETUP_KEY_BLOCK 211 |
#define SSL_F_WRITE_PENDING 212 |
-/* Next entry: 300 */ |
/* Reason codes. */ |
#define SSL_R_APP_DATA_IN_HANDSHAKE 100 |
@@ -1939,12 +2115,15 @@ |
#define SSL_R_BAD_ECC_CERT 304 |
#define SSL_R_BAD_ECDSA_SIGNATURE 305 |
#define SSL_R_BAD_ECPOINT 306 |
+#define SSL_R_BAD_HANDSHAKE_LENGTH 332 |
#define SSL_R_BAD_HELLO_REQUEST 105 |
#define SSL_R_BAD_LENGTH 271 |
#define SSL_R_BAD_MAC_DECODE 113 |
+#define SSL_R_BAD_MAC_LENGTH 333 |
#define SSL_R_BAD_MESSAGE_TYPE 114 |
#define SSL_R_BAD_PACKET_LENGTH 115 |
#define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 |
+#define SSL_R_BAD_PSK_IDENTITY_HINT_LENGTH 316 |
#define SSL_R_BAD_RESPONSE_ARGUMENT 117 |
#define SSL_R_BAD_RSA_DECRYPT 118 |
#define SSL_R_BAD_RSA_ENCRYPT 119 |
@@ -1968,8 +2147,9 @@ |
#define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 |
#define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 |
#define SSL_R_CIPHER_TABLE_SRC_ERROR 139 |
-#define SSL_R_CLIENTHELLO_TLSEXT 157 |
+#define SSL_R_CLIENTHELLO_TLSEXT 226 |
#define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 |
+#define SSL_R_COMPRESSION_DISABLED 343 |
#define SSL_R_COMPRESSION_FAILURE 141 |
#define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 |
#define SSL_R_COMPRESSION_LIBRARY_ERROR 142 |
@@ -1982,8 +2162,12 @@ |
#define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 |
#define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 |
#define SSL_R_DIGEST_CHECK_FAILED 149 |
-#define SSL_R_DTLS_MESSAGE_TOO_BIG 318 |
+#define SSL_R_DTLS_MESSAGE_TOO_BIG 334 |
#define SSL_R_DUPLICATE_COMPRESSION_ID 309 |
+#define SSL_R_ECC_CERT_NOT_FOR_KEY_AGREEMENT 317 |
+#define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 |
+#define SSL_R_ECC_CERT_SHOULD_HAVE_RSA_SIGNATURE 322 |
+#define SSL_R_ECC_CERT_SHOULD_HAVE_SHA1_SIGNATURE 323 |
#define SSL_R_ECGROUP_TOO_LARGE_FOR_CIPHER 310 |
#define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 |
#define SSL_R_ERROR_GENERATING_TMP_RSA_KEY 282 |
@@ -1991,16 +2175,18 @@ |
#define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 |
#define SSL_R_EXTRA_DATA_IN_MESSAGE 153 |
#define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 |
-#define SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS 334 |
-#define SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION 335 |
+#define SSL_R_GOT_NEXT_PROTO_BEFORE_A_CCS 346 |
+#define SSL_R_GOT_NEXT_PROTO_WITHOUT_EXTENSION 347 |
#define SSL_R_HTTPS_PROXY_REQUEST 155 |
#define SSL_R_HTTP_REQUEST 156 |
#define SSL_R_ILLEGAL_PADDING 283 |
+#define SSL_R_INCONSISTENT_COMPRESSION 340 |
#define SSL_R_INVALID_CHALLENGE_LENGTH 158 |
#define SSL_R_INVALID_COMMAND 280 |
+#define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 |
#define SSL_R_INVALID_PURPOSE 278 |
-#define SSL_R_INVALID_STATUS_RESPONSE 316 |
-#define SSL_R_INVALID_TICKET_KEYS_LENGTH 275 |
+#define SSL_R_INVALID_STATUS_RESPONSE 328 |
+#define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 |
#define SSL_R_INVALID_TRUST 279 |
#define SSL_R_KEY_ARG_TOO_LONG 284 |
#define SSL_R_KRB5 285 |
@@ -2033,6 +2219,7 @@ |
#define SSL_R_MISSING_TMP_RSA_KEY 172 |
#define SSL_R_MISSING_TMP_RSA_PKEY 173 |
#define SSL_R_MISSING_VERIFY_MESSAGE 174 |
+#define SSL_R_MULTIPLE_SGC_RESTARTS 346 |
#define SSL_R_NON_SSLV2_INITIAL_PACKET 175 |
#define SSL_R_NO_CERTIFICATES_RETURNED 176 |
#define SSL_R_NO_CERTIFICATE_ASSIGNED 177 |
@@ -2044,23 +2231,27 @@ |
#define SSL_R_NO_CIPHERS_SPECIFIED 183 |
#define SSL_R_NO_CIPHER_LIST 184 |
#define SSL_R_NO_CIPHER_MATCH 185 |
-#define SSL_R_NO_CLIENT_CERT_METHOD 317 |
+#define SSL_R_NO_CLIENT_CERT_METHOD 331 |
#define SSL_R_NO_CLIENT_CERT_RECEIVED 186 |
#define SSL_R_NO_COMPRESSION_SPECIFIED 187 |
+#define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 |
#define SSL_R_NO_METHOD_SPECIFIED 188 |
#define SSL_R_NO_PRIVATEKEY 189 |
#define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 |
#define SSL_R_NO_PROTOCOLS_AVAILABLE 191 |
#define SSL_R_NO_PUBLICKEY 192 |
-#define SSL_R_NO_RENEGOTIATION 319 |
+#define SSL_R_NO_RENEGOTIATION 339 |
+#define SSL_R_NO_REQUIRED_DIGEST 324 |
#define SSL_R_NO_SHARED_CIPHER 193 |
#define SSL_R_NO_VERIFY_CALLBACK 194 |
#define SSL_R_NULL_SSL_CTX 195 |
#define SSL_R_NULL_SSL_METHOD_PASSED 196 |
#define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 |
+#define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 |
#define SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE 297 |
+#define SSL_R_OPAQUE_PRF_INPUT_TOO_LONG 327 |
#define SSL_R_PACKET_LENGTH_TOO_LONG 198 |
-#define SSL_R_PARSE_TLSEXT 223 |
+#define SSL_R_PARSE_TLSEXT 227 |
#define SSL_R_PATH_TOO_LONG 270 |
#define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 |
#define SSL_R_PEER_ERROR 200 |
@@ -2071,6 +2262,9 @@ |
#define SSL_R_PRE_MAC_LENGTH_TOO_LONG 205 |
#define SSL_R_PROBLEMS_MAPPING_CIPHER_FUNCTIONS 206 |
#define SSL_R_PROTOCOL_IS_SHUTDOWN 207 |
+#define SSL_R_PSK_IDENTITY_NOT_FOUND 223 |
+#define SSL_R_PSK_NO_CLIENT_CB 224 |
+#define SSL_R_PSK_NO_SERVER_CB 225 |
#define SSL_R_PUBLIC_KEY_ENCRYPT_ERROR 208 |
#define SSL_R_PUBLIC_KEY_IS_NOT_RSA 209 |
#define SSL_R_PUBLIC_KEY_NOT_RSA 210 |
@@ -2080,22 +2274,25 @@ |
#define SSL_R_RECORD_LENGTH_MISMATCH 213 |
#define SSL_R_RECORD_TOO_LARGE 214 |
#define SSL_R_RECORD_TOO_SMALL 298 |
-#define SSL_R_RENEGOTIATE_EXT_TOO_LONG 320 |
-#define SSL_R_RENEGOTIATION_ENCODING_ERR 321 |
-#define SSL_R_RENEGOTIATION_MISMATCH 322 |
+#define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 |
+#define SSL_R_RENEGOTIATION_ENCODING_ERR 336 |
+#define SSL_R_RENEGOTIATION_MISMATCH 337 |
#define SSL_R_REQUIRED_CIPHER_MISSING 215 |
+#define SSL_R_REQUIRED_COMPRESSSION_ALGORITHM_MISSING 342 |
#define SSL_R_REUSE_CERT_LENGTH_NOT_ZERO 216 |
#define SSL_R_REUSE_CERT_TYPE_NOT_ZERO 217 |
#define SSL_R_REUSE_CIPHER_LIST_NOT_ZERO 218 |
-#define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 324 |
-#define SSL_R_SERVERHELLO_TLSEXT 224 |
+#define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 |
+#define SSL_R_SERVERHELLO_TLSEXT 275 |
#define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 |
+#define SSL_R_SESSION_MAY_NOT_BE_CREATED 2000 |
#define SSL_R_SHORT_READ 219 |
#define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 |
#define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221 |
#define SSL_R_SSL2_CONNECTION_ID_TOO_LONG 299 |
-#define SSL_R_SSL3_EXT_INVALID_SERVERNAME 225 |
-#define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 226 |
+#define SSL_R_SSL3_EXT_INVALID_ECPOINTFORMAT 321 |
+#define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 |
+#define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 |
#define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 |
#define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222 |
#define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 |
@@ -2129,8 +2326,13 @@ |
#define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 |
#define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 |
#define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 |
+#define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 |
+#define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 |
+#define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 |
+#define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 |
+#define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 |
#define SSL_R_TLS_CLIENT_CERT_REQ_WITH_ANON_CIPHER 232 |
-#define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 227 |
+#define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 |
#define SSL_R_TLS_PEER_DID_NOT_RESPOND_WITH_CERTIFICATE_LIST 233 |
#define SSL_R_TLS_RSA_ENCRYPTED_VALUE_LENGTH_IS_WRONG 234 |
#define SSL_R_TRIED_TO_USE_UNSUPPORTED_CIPHER 235 |
@@ -2157,9 +2359,10 @@ |
#define SSL_R_UNKNOWN_REMOTE_ERROR_TYPE 253 |
#define SSL_R_UNKNOWN_SSL_VERSION 254 |
#define SSL_R_UNKNOWN_STATE 255 |
-#define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 323 |
+#define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 |
#define SSL_R_UNSUPPORTED_CIPHER 256 |
#define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 |
+#define SSL_R_UNSUPPORTED_DIGEST_TYPE 326 |
#define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 |
#define SSL_R_UNSUPPORTED_PROTOCOL 258 |
#define SSL_R_UNSUPPORTED_SSL_VERSION 259 |
@@ -2174,7 +2377,6 @@ |
#define SSL_R_WRONG_VERSION_NUMBER 267 |
#define SSL_R_X509_LIB 268 |
#define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 |
-/* Next entry: 335 or 1115 */ |
#ifdef __cplusplus |
} |