diff options
| -rw-r--r-- | src/lib/libcrypto/crypto/shlib_version | 2 | ||||
| -rw-r--r-- | src/lib/libcrypto/shlib_version | 2 | ||||
| -rw-r--r-- | src/lib/libssl/shlib_version | 2 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/s3_enc.c | 2 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl.h | 20 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl_asn1.c | 24 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl_lib.c | 7 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl_sess.c | 10 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/ssl_txt.c | 14 | ||||
| -rw-r--r-- | src/lib/libssl/src/ssl/t1_enc.c | 1 | ||||
| -rw-r--r-- | src/lib/libssl/ssl.h | 20 | ||||
| -rw-r--r-- | src/lib/libssl/ssl/shlib_version | 2 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_asn1.c | 24 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 7 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_sess.c | 10 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_txt.c | 14 | ||||
| -rw-r--r-- | src/lib/libssl/t1_enc.c | 1 |
17 files changed, 44 insertions, 118 deletions
diff --git a/src/lib/libcrypto/crypto/shlib_version b/src/lib/libcrypto/crypto/shlib_version index 361604a5eb..c622cb8cdf 100644 --- a/src/lib/libcrypto/crypto/shlib_version +++ b/src/lib/libcrypto/crypto/shlib_version | |||
| @@ -1,2 +1,2 @@ | |||
| 1 | major=25 | 1 | major=26 |
| 2 | minor=0 | 2 | minor=0 |
diff --git a/src/lib/libcrypto/shlib_version b/src/lib/libcrypto/shlib_version index 361604a5eb..c622cb8cdf 100644 --- a/src/lib/libcrypto/shlib_version +++ b/src/lib/libcrypto/shlib_version | |||
| @@ -1,2 +1,2 @@ | |||
| 1 | major=25 | 1 | major=26 |
| 2 | minor=0 | 2 | minor=0 |
diff --git a/src/lib/libssl/shlib_version b/src/lib/libssl/shlib_version index df4de0fc4d..906022aa66 100644 --- a/src/lib/libssl/shlib_version +++ b/src/lib/libssl/shlib_version | |||
| @@ -1,2 +1,2 @@ | |||
| 1 | major=23 | 1 | major=24 |
| 2 | minor=0 | 2 | minor=0 |
diff --git a/src/lib/libssl/src/ssl/s3_enc.c b/src/lib/libssl/src/ssl/s3_enc.c index 4d12631694..2b02c5ba06 100644 --- a/src/lib/libssl/src/ssl/s3_enc.c +++ b/src/lib/libssl/src/ssl/s3_enc.c | |||
| @@ -361,8 +361,6 @@ ssl3_change_cipher_state(SSL *s, int which) | |||
| 361 | } | 361 | } |
| 362 | } | 362 | } |
| 363 | 363 | ||
| 364 | s->session->key_arg_length = 0; | ||
| 365 | |||
| 366 | EVP_CipherInit_ex(dd, c, NULL, key, iv,(which & SSL3_CC_WRITE)); | 364 | EVP_CipherInit_ex(dd, c, NULL, key, iv,(which & SSL3_CC_WRITE)); |
| 367 | 365 | ||
| 368 | OPENSSL_cleanse(&(exp_key[0]), sizeof(exp_key)); | 366 | OPENSSL_cleanse(&(exp_key[0]), sizeof(exp_key)); |
diff --git a/src/lib/libssl/src/ssl/ssl.h b/src/lib/libssl/src/ssl/ssl.h index f3ca8c5c4e..3624bdcccd 100644 --- a/src/lib/libssl/src/ssl/ssl.h +++ b/src/lib/libssl/src/ssl/ssl.h | |||
| @@ -399,7 +399,7 @@ struct ssl_cipher_st { | |||
| 399 | }; | 399 | }; |
| 400 | 400 | ||
| 401 | 401 | ||
| 402 | /* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */ | 402 | /* Used to hold functions for SSLv3/TLSv1 functions */ |
| 403 | struct ssl_method_st { | 403 | struct ssl_method_st { |
| 404 | int version; | 404 | int version; |
| 405 | int (*ssl_new)(SSL *s); | 405 | int (*ssl_new)(SSL *s); |
| @@ -442,7 +442,6 @@ struct ssl_method_st { | |||
| 442 | * Session_ID OCTET STRING, -- the Session ID | 442 | * Session_ID OCTET STRING, -- the Session ID |
| 443 | * Master_key OCTET STRING, -- the master key | 443 | * Master_key OCTET STRING, -- the master key |
| 444 | * KRB5_principal OCTET STRING -- optional Kerberos principal | 444 | * KRB5_principal OCTET STRING -- optional Kerberos principal |
| 445 | * Key_Arg [ 0 ] IMPLICIT OCTET STRING, -- the optional Key argument | ||
| 446 | * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time | 445 | * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time |
| 447 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds | 446 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds |
| 448 | * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate | 447 | * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate |
| @@ -463,9 +462,6 @@ struct ssl_session_st { | |||
| 463 | int ssl_version; /* what ssl version session info is | 462 | int ssl_version; /* what ssl version session info is |
| 464 | * being kept in here? */ | 463 | * being kept in here? */ |
| 465 | 464 | ||
| 466 | /* only really used in SSLv2 */ | ||
| 467 | unsigned int key_arg_length; | ||
| 468 | unsigned char key_arg[SSL_MAX_KEY_ARG_LENGTH]; | ||
| 469 | int master_key_length; | 465 | int master_key_length; |
| 470 | unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; | 466 | unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; |
| 471 | /* session_id - valid? */ | 467 | /* session_id - valid? */ |
| @@ -502,9 +498,9 @@ struct ssl_session_st { | |||
| 502 | * is not ok, we must remember the error for session reuse: */ | 498 | * is not ok, we must remember the error for session reuse: */ |
| 503 | long verify_result; /* only for servers */ | 499 | long verify_result; /* only for servers */ |
| 504 | 500 | ||
| 505 | int references; | ||
| 506 | long timeout; | 501 | long timeout; |
| 507 | long time; | 502 | time_t time; |
| 503 | int references; | ||
| 508 | 504 | ||
| 509 | unsigned int compress_meth; /* Need to lookup the method */ | 505 | unsigned int compress_meth; /* Need to lookup the method */ |
| 510 | 506 | ||
| @@ -845,9 +841,8 @@ struct ssl_ctx_st { | |||
| 845 | 841 | ||
| 846 | CRYPTO_EX_DATA ex_data; | 842 | CRYPTO_EX_DATA ex_data; |
| 847 | 843 | ||
| 848 | const EVP_MD *rsa_md5; /* For SSLv2 - name is 'ssl2-md5' */ | ||
| 849 | const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ | 844 | const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ |
| 850 | const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ | 845 | const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3-sha1' */ |
| 851 | 846 | ||
| 852 | STACK_OF(X509) *extra_certs; | 847 | STACK_OF(X509) *extra_certs; |
| 853 | STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ | 848 | STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ |
| @@ -1155,7 +1150,6 @@ struct ssl_st { | |||
| 1155 | unsigned char *packet; | 1150 | unsigned char *packet; |
| 1156 | unsigned int packet_length; | 1151 | unsigned int packet_length; |
| 1157 | 1152 | ||
| 1158 | struct ssl2_state_st *s2; /* SSLv2 variables */ | ||
| 1159 | struct ssl3_state_st *s3; /* SSLv3 variables */ | 1153 | struct ssl3_state_st *s3; /* SSLv3 variables */ |
| 1160 | struct dtls1_state_st *d1; /* DTLSv1 variables */ | 1154 | struct dtls1_state_st *d1; /* DTLSv1 variables */ |
| 1161 | 1155 | ||
| @@ -1828,9 +1822,9 @@ const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ | |||
| 1828 | const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ | 1822 | const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ |
| 1829 | const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ | 1823 | const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ |
| 1830 | 1824 | ||
| 1831 | const SSL_METHOD *SSLv23_method(void); /* SSLv3 but can rollback to v2 */ | 1825 | const SSL_METHOD *SSLv23_method(void); /* SSLv3 or TLSv1.* */ |
| 1832 | const SSL_METHOD *SSLv23_server_method(void); /* SSLv3 but can rollback to v2 */ | 1826 | const SSL_METHOD *SSLv23_server_method(void); /* SSLv3 or TLSv1.* */ |
| 1833 | const SSL_METHOD *SSLv23_client_method(void); /* SSLv3 but can rollback to v2 */ | 1827 | const SSL_METHOD *SSLv23_client_method(void); /* SSLv3 or TLSv1.* */ |
| 1834 | 1828 | ||
| 1835 | const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ | 1829 | const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ |
| 1836 | const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ | 1830 | const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ |
diff --git a/src/lib/libssl/src/ssl/ssl_asn1.c b/src/lib/libssl/src/ssl/ssl_asn1.c index c551ec4877..1d2590268c 100644 --- a/src/lib/libssl/src/ssl/ssl_asn1.c +++ b/src/lib/libssl/src/ssl/ssl_asn1.c | |||
| @@ -97,7 +97,6 @@ typedef struct ssl_session_asn1_st { | |||
| 97 | ASN1_OCTET_STRING master_key; | 97 | ASN1_OCTET_STRING master_key; |
| 98 | ASN1_OCTET_STRING session_id; | 98 | ASN1_OCTET_STRING session_id; |
| 99 | ASN1_OCTET_STRING session_id_context; | 99 | ASN1_OCTET_STRING session_id_context; |
| 100 | ASN1_OCTET_STRING key_arg; | ||
| 101 | #ifndef OPENSSL_NO_KRB5 | 100 | #ifndef OPENSSL_NO_KRB5 |
| 102 | ASN1_OCTET_STRING krb5_princ; | 101 | ASN1_OCTET_STRING krb5_princ; |
| 103 | #endif /* OPENSSL_NO_KRB5 */ | 102 | #endif /* OPENSSL_NO_KRB5 */ |
| @@ -190,10 +189,6 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 190 | a.session_id_context.type = V_ASN1_OCTET_STRING; | 189 | a.session_id_context.type = V_ASN1_OCTET_STRING; |
| 191 | a.session_id_context.data = in->sid_ctx; | 190 | a.session_id_context.data = in->sid_ctx; |
| 192 | 191 | ||
| 193 | a.key_arg.length = in->key_arg_length; | ||
| 194 | a.key_arg.type = V_ASN1_OCTET_STRING; | ||
| 195 | a.key_arg.data = in->key_arg; | ||
| 196 | |||
| 197 | #ifndef OPENSSL_NO_KRB5 | 192 | #ifndef OPENSSL_NO_KRB5 |
| 198 | if (in->krb5_client_princ_len) { | 193 | if (in->krb5_client_princ_len) { |
| 199 | a.krb5_princ.length = in->krb5_client_princ_len; | 194 | a.krb5_princ.length = in->krb5_client_princ_len; |
| @@ -206,7 +201,7 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 206 | a.time.length = LSIZE2; | 201 | a.time.length = LSIZE2; |
| 207 | a.time.type = V_ASN1_INTEGER; | 202 | a.time.type = V_ASN1_INTEGER; |
| 208 | a.time.data = ibuf3; | 203 | a.time.data = ibuf3; |
| 209 | ASN1_INTEGER_set(&(a.time), in->time); | 204 | ASN1_INTEGER_set(&(a.time), in->time); /* XXX 2038 */ |
| 210 | } | 205 | } |
| 211 | 206 | ||
| 212 | if (in->timeout != 0L) { | 207 | if (in->timeout != 0L) { |
| @@ -270,8 +265,6 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 270 | if (in->krb5_client_princ_len) | 265 | if (in->krb5_client_princ_len) |
| 271 | M_ASN1_I2D_len(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); | 266 | M_ASN1_I2D_len(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); |
| 272 | #endif /* OPENSSL_NO_KRB5 */ | 267 | #endif /* OPENSSL_NO_KRB5 */ |
| 273 | if (in->key_arg_length > 0) | ||
| 274 | M_ASN1_I2D_len_IMP_opt(&(a.key_arg), i2d_ASN1_OCTET_STRING); | ||
| 275 | if (in->time != 0L) | 268 | if (in->time != 0L) |
| 276 | M_ASN1_I2D_len_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); | 269 | M_ASN1_I2D_len_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); |
| 277 | if (in->timeout != 0L) | 270 | if (in->timeout != 0L) |
| @@ -316,8 +309,6 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 316 | if (in->krb5_client_princ_len) | 309 | if (in->krb5_client_princ_len) |
| 317 | M_ASN1_I2D_put(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); | 310 | M_ASN1_I2D_put(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); |
| 318 | #endif /* OPENSSL_NO_KRB5 */ | 311 | #endif /* OPENSSL_NO_KRB5 */ |
| 319 | if (in->key_arg_length > 0) | ||
| 320 | M_ASN1_I2D_put_IMP_opt(&(a.key_arg), i2d_ASN1_OCTET_STRING, 0); | ||
| 321 | if (in->time != 0L) | 312 | if (in->time != 0L) |
| 322 | M_ASN1_I2D_put_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); | 313 | M_ASN1_I2D_put_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); |
| 323 | if (in->timeout != 0L) | 314 | if (in->timeout != 0L) |
| @@ -445,24 +436,15 @@ d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length) | |||
| 445 | ret->krb5_client_princ_len = 0; | 436 | ret->krb5_client_princ_len = 0; |
| 446 | #endif /* OPENSSL_NO_KRB5 */ | 437 | #endif /* OPENSSL_NO_KRB5 */ |
| 447 | 438 | ||
| 448 | M_ASN1_D2I_get_IMP_opt(osp, d2i_ASN1_OCTET_STRING, 0, V_ASN1_OCTET_STRING); | ||
| 449 | if (os.length > SSL_MAX_KEY_ARG_LENGTH) | ||
| 450 | ret->key_arg_length = SSL_MAX_KEY_ARG_LENGTH; | ||
| 451 | else | ||
| 452 | ret->key_arg_length = os.length; | ||
| 453 | memcpy(ret->key_arg, os.data, ret->key_arg_length); | ||
| 454 | if (os.data != NULL) | ||
| 455 | free(os.data); | ||
| 456 | |||
| 457 | ai.length = 0; | 439 | ai.length = 0; |
| 458 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 1); | 440 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 1); /* XXX 2038 */ |
| 459 | if (ai.data != NULL) { | 441 | if (ai.data != NULL) { |
| 460 | ret->time = ASN1_INTEGER_get(aip); | 442 | ret->time = ASN1_INTEGER_get(aip); |
| 461 | free(ai.data); | 443 | free(ai.data); |
| 462 | ai.data = NULL; | 444 | ai.data = NULL; |
| 463 | ai.length = 0; | 445 | ai.length = 0; |
| 464 | } else | 446 | } else |
| 465 | ret->time = (unsigned long)time(NULL); | 447 | ret->time = time(NULL); |
| 466 | 448 | ||
| 467 | ai.length = 0; | 449 | ai.length = 0; |
| 468 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 2); | 450 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 2); |
diff --git a/src/lib/libssl/src/ssl/ssl_lib.c b/src/lib/libssl/src/ssl/ssl_lib.c index 3ab353b8eb..21d6835b98 100644 --- a/src/lib/libssl/src/ssl/ssl_lib.c +++ b/src/lib/libssl/src/ssl/ssl_lib.c | |||
| @@ -1712,11 +1712,8 @@ SSL_CTX_new(const SSL_METHOD *meth) | |||
| 1712 | ret->references = 1; | 1712 | ret->references = 1; |
| 1713 | ret->quiet_shutdown = 0; | 1713 | ret->quiet_shutdown = 0; |
| 1714 | 1714 | ||
| 1715 | /* ret->cipher=NULL;*/ | 1715 | /* ret->cipher=NULL; |
| 1716 | /* ret->s2->challenge=NULL; | ||
| 1717 | ret->master_key=NULL; | 1716 | ret->master_key=NULL; |
| 1718 | ret->key_arg=NULL; | ||
| 1719 | ret->s2->conn_id=NULL; | ||
| 1720 | */ | 1717 | */ |
| 1721 | 1718 | ||
| 1722 | ret->info_callback = NULL; | 1719 | ret->info_callback = NULL; |
| @@ -2340,7 +2337,7 @@ ssl_update_cache(SSL *s, int mode) | |||
| 2340 | if ((((mode & SSL_SESS_CACHE_CLIENT) | 2337 | if ((((mode & SSL_SESS_CACHE_CLIENT) |
| 2341 | ?s->session_ctx->stats.sess_connect_good | 2338 | ?s->session_ctx->stats.sess_connect_good |
| 2342 | :s->session_ctx->stats.sess_accept_good) & 0xff) == 0xff) { | 2339 | :s->session_ctx->stats.sess_accept_good) & 0xff) == 0xff) { |
| 2343 | SSL_CTX_flush_sessions(s->session_ctx,(unsigned long)time(NULL)); | 2340 | SSL_CTX_flush_sessions(s->session_ctx, time(NULL)); |
| 2344 | } | 2341 | } |
| 2345 | } | 2342 | } |
| 2346 | } | 2343 | } |
diff --git a/src/lib/libssl/src/ssl/ssl_sess.c b/src/lib/libssl/src/ssl/ssl_sess.c index c67ae1c22f..c032154d48 100644 --- a/src/lib/libssl/src/ssl/ssl_sess.c +++ b/src/lib/libssl/src/ssl/ssl_sess.c | |||
| @@ -205,7 +205,7 @@ SSL_SESSION_new(void) | |||
| 205 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ | 205 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ |
| 206 | ss->references = 1; | 206 | ss->references = 1; |
| 207 | ss->timeout=60*5+4; /* 5 minute timeout by default */ | 207 | ss->timeout=60*5+4; /* 5 minute timeout by default */ |
| 208 | ss->time = (unsigned long)time(NULL); | 208 | ss->time = time(NULL); |
| 209 | ss->prev = NULL; | 209 | ss->prev = NULL; |
| 210 | ss->next = NULL; | 210 | ss->next = NULL; |
| 211 | ss->compress_meth = 0; | 211 | ss->compress_meth = 0; |
| @@ -555,7 +555,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
| 555 | goto err; | 555 | goto err; |
| 556 | } | 556 | } |
| 557 | 557 | ||
| 558 | if (ret->timeout < (long)(time(NULL) - ret->time)) /* timeout */ | 558 | if (ret->timeout < (time(NULL) - ret->time)) /* timeout */ |
| 559 | { | 559 | { |
| 560 | s->session_ctx->stats.sess_timeout++; | 560 | s->session_ctx->stats.sess_timeout++; |
| 561 | if (try_session_cache) { | 561 | if (try_session_cache) { |
| @@ -699,7 +699,6 @@ SSL_SESSION_free(SSL_SESSION *ss) | |||
| 699 | 699 | ||
| 700 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); | 700 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); |
| 701 | 701 | ||
| 702 | OPENSSL_cleanse(ss->key_arg, sizeof ss->key_arg); | ||
| 703 | OPENSSL_cleanse(ss->master_key, sizeof ss->master_key); | 702 | OPENSSL_cleanse(ss->master_key, sizeof ss->master_key); |
| 704 | OPENSSL_cleanse(ss->session_id, sizeof ss->session_id); | 703 | OPENSSL_cleanse(ss->session_id, sizeof ss->session_id); |
| 705 | if (ss->sess_cert != NULL) | 704 | if (ss->sess_cert != NULL) |
| @@ -807,6 +806,7 @@ SSL_SESSION_get_timeout(const SSL_SESSION *s) | |||
| 807 | return (s->timeout); | 806 | return (s->timeout); |
| 808 | } | 807 | } |
| 809 | 808 | ||
| 809 | /* XXX 2038 */ | ||
| 810 | long | 810 | long |
| 811 | SSL_SESSION_get_time(const SSL_SESSION *s) | 811 | SSL_SESSION_get_time(const SSL_SESSION *s) |
| 812 | { | 812 | { |
| @@ -815,6 +815,7 @@ SSL_SESSION_get_time(const SSL_SESSION *s) | |||
| 815 | return (s->time); | 815 | return (s->time); |
| 816 | } | 816 | } |
| 817 | 817 | ||
| 818 | /* XXX 2038 */ | ||
| 818 | long | 819 | long |
| 819 | SSL_SESSION_set_time(SSL_SESSION *s, long t) | 820 | SSL_SESSION_set_time(SSL_SESSION *s, long t) |
| 820 | { | 821 | { |
| @@ -926,7 +927,7 @@ typedef struct timeout_param_st { | |||
| 926 | static void | 927 | static void |
| 927 | timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) | 928 | timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) |
| 928 | { | 929 | { |
| 929 | if ((p->time == 0) || (p->time > (s->time+s->timeout))) /* timeout */ | 930 | if ((p->time == 0) || (p->time > (s->time + s->timeout))) /* timeout */ |
| 930 | { | 931 | { |
| 931 | /* The reason we don't call SSL_CTX_remove_session() is to | 932 | /* The reason we don't call SSL_CTX_remove_session() is to |
| 932 | * save on locking overhead */ | 933 | * save on locking overhead */ |
| @@ -942,6 +943,7 @@ timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) | |||
| 942 | static | 943 | static |
| 943 | IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM) | 944 | IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM) |
| 944 | 945 | ||
| 946 | /* XXX 2038 */ | ||
| 945 | void | 947 | void |
| 946 | SSL_CTX_flush_sessions(SSL_CTX *s, long t) | 948 | SSL_CTX_flush_sessions(SSL_CTX *s, long t) |
| 947 | { | 949 | { |
diff --git a/src/lib/libssl/src/ssl/ssl_txt.c b/src/lib/libssl/src/ssl/ssl_txt.c index 91664ffe43..5538c57562 100644 --- a/src/lib/libssl/src/ssl/ssl_txt.c +++ b/src/lib/libssl/src/ssl/ssl_txt.c | |||
| @@ -161,16 +161,6 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) | |||
| 161 | if (BIO_printf(bp, "%02X", x->master_key[i]) | 161 | if (BIO_printf(bp, "%02X", x->master_key[i]) |
| 162 | <= 0) goto err; | 162 | <= 0) goto err; |
| 163 | } | 163 | } |
| 164 | if (BIO_puts(bp, "\n Key-Arg : ") | ||
| 165 | <= 0) goto err; | ||
| 166 | if (x->key_arg_length == 0) { | ||
| 167 | if (BIO_puts(bp, "None") | ||
| 168 | <= 0) goto err; | ||
| 169 | } else | ||
| 170 | for (i = 0; i < x->key_arg_length; i++) { | ||
| 171 | if (BIO_printf(bp, "%02X", x->key_arg[i]) | ||
| 172 | <= 0) goto err; | ||
| 173 | } | ||
| 174 | #ifndef OPENSSL_NO_KRB5 | 164 | #ifndef OPENSSL_NO_KRB5 |
| 175 | if (BIO_puts(bp, "\n Krb5 Principal: ") | 165 | if (BIO_puts(bp, "\n Krb5 Principal: ") |
| 176 | <= 0) goto err; | 166 | <= 0) goto err; |
| @@ -227,8 +217,8 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) | |||
| 227 | } | 217 | } |
| 228 | } | 218 | } |
| 229 | #endif | 219 | #endif |
| 230 | if (x->time != 0L) { | 220 | if (x->time != 0) { |
| 231 | if (BIO_printf(bp, "\n Start Time: %ld", x->time) | 221 | if (BIO_printf(bp, "\n Start Time: %lld", (long long)x->time) |
| 232 | <= 0) goto err; | 222 | <= 0) goto err; |
| 233 | } | 223 | } |
| 234 | if (x->timeout != 0L) { | 224 | if (x->timeout != 0L) { |
diff --git a/src/lib/libssl/src/ssl/t1_enc.c b/src/lib/libssl/src/ssl/t1_enc.c index 579eaa6ce4..3f5df9ad7a 100644 --- a/src/lib/libssl/src/ssl/t1_enc.c +++ b/src/lib/libssl/src/ssl/t1_enc.c | |||
| @@ -519,7 +519,6 @@ tls1_change_cipher_state(SSL *s, int which) | |||
| 519 | } | 519 | } |
| 520 | } | 520 | } |
| 521 | 521 | ||
| 522 | s->session->key_arg_length = 0; | ||
| 523 | #ifdef KSSL_DEBUG | 522 | #ifdef KSSL_DEBUG |
| 524 | { | 523 | { |
| 525 | int i; | 524 | int i; |
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h index f3ca8c5c4e..3624bdcccd 100644 --- a/src/lib/libssl/ssl.h +++ b/src/lib/libssl/ssl.h | |||
| @@ -399,7 +399,7 @@ struct ssl_cipher_st { | |||
| 399 | }; | 399 | }; |
| 400 | 400 | ||
| 401 | 401 | ||
| 402 | /* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */ | 402 | /* Used to hold functions for SSLv3/TLSv1 functions */ |
| 403 | struct ssl_method_st { | 403 | struct ssl_method_st { |
| 404 | int version; | 404 | int version; |
| 405 | int (*ssl_new)(SSL *s); | 405 | int (*ssl_new)(SSL *s); |
| @@ -442,7 +442,6 @@ struct ssl_method_st { | |||
| 442 | * Session_ID OCTET STRING, -- the Session ID | 442 | * Session_ID OCTET STRING, -- the Session ID |
| 443 | * Master_key OCTET STRING, -- the master key | 443 | * Master_key OCTET STRING, -- the master key |
| 444 | * KRB5_principal OCTET STRING -- optional Kerberos principal | 444 | * KRB5_principal OCTET STRING -- optional Kerberos principal |
| 445 | * Key_Arg [ 0 ] IMPLICIT OCTET STRING, -- the optional Key argument | ||
| 446 | * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time | 445 | * Time [ 1 ] EXPLICIT INTEGER, -- optional Start Time |
| 447 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds | 446 | * Timeout [ 2 ] EXPLICIT INTEGER, -- optional Timeout ins seconds |
| 448 | * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate | 447 | * Peer [ 3 ] EXPLICIT X509, -- optional Peer Certificate |
| @@ -463,9 +462,6 @@ struct ssl_session_st { | |||
| 463 | int ssl_version; /* what ssl version session info is | 462 | int ssl_version; /* what ssl version session info is |
| 464 | * being kept in here? */ | 463 | * being kept in here? */ |
| 465 | 464 | ||
| 466 | /* only really used in SSLv2 */ | ||
| 467 | unsigned int key_arg_length; | ||
| 468 | unsigned char key_arg[SSL_MAX_KEY_ARG_LENGTH]; | ||
| 469 | int master_key_length; | 465 | int master_key_length; |
| 470 | unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; | 466 | unsigned char master_key[SSL_MAX_MASTER_KEY_LENGTH]; |
| 471 | /* session_id - valid? */ | 467 | /* session_id - valid? */ |
| @@ -502,9 +498,9 @@ struct ssl_session_st { | |||
| 502 | * is not ok, we must remember the error for session reuse: */ | 498 | * is not ok, we must remember the error for session reuse: */ |
| 503 | long verify_result; /* only for servers */ | 499 | long verify_result; /* only for servers */ |
| 504 | 500 | ||
| 505 | int references; | ||
| 506 | long timeout; | 501 | long timeout; |
| 507 | long time; | 502 | time_t time; |
| 503 | int references; | ||
| 508 | 504 | ||
| 509 | unsigned int compress_meth; /* Need to lookup the method */ | 505 | unsigned int compress_meth; /* Need to lookup the method */ |
| 510 | 506 | ||
| @@ -845,9 +841,8 @@ struct ssl_ctx_st { | |||
| 845 | 841 | ||
| 846 | CRYPTO_EX_DATA ex_data; | 842 | CRYPTO_EX_DATA ex_data; |
| 847 | 843 | ||
| 848 | const EVP_MD *rsa_md5; /* For SSLv2 - name is 'ssl2-md5' */ | ||
| 849 | const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ | 844 | const EVP_MD *md5; /* For SSLv3/TLSv1 'ssl3-md5' */ |
| 850 | const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3->sha1' */ | 845 | const EVP_MD *sha1; /* For SSLv3/TLSv1 'ssl3-sha1' */ |
| 851 | 846 | ||
| 852 | STACK_OF(X509) *extra_certs; | 847 | STACK_OF(X509) *extra_certs; |
| 853 | STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ | 848 | STACK_OF(SSL_COMP) *comp_methods; /* stack of SSL_COMP, SSLv3/TLSv1 */ |
| @@ -1155,7 +1150,6 @@ struct ssl_st { | |||
| 1155 | unsigned char *packet; | 1150 | unsigned char *packet; |
| 1156 | unsigned int packet_length; | 1151 | unsigned int packet_length; |
| 1157 | 1152 | ||
| 1158 | struct ssl2_state_st *s2; /* SSLv2 variables */ | ||
| 1159 | struct ssl3_state_st *s3; /* SSLv3 variables */ | 1153 | struct ssl3_state_st *s3; /* SSLv3 variables */ |
| 1160 | struct dtls1_state_st *d1; /* DTLSv1 variables */ | 1154 | struct dtls1_state_st *d1; /* DTLSv1 variables */ |
| 1161 | 1155 | ||
| @@ -1828,9 +1822,9 @@ const SSL_METHOD *SSLv3_method(void); /* SSLv3 */ | |||
| 1828 | const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ | 1822 | const SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */ |
| 1829 | const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ | 1823 | const SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */ |
| 1830 | 1824 | ||
| 1831 | const SSL_METHOD *SSLv23_method(void); /* SSLv3 but can rollback to v2 */ | 1825 | const SSL_METHOD *SSLv23_method(void); /* SSLv3 or TLSv1.* */ |
| 1832 | const SSL_METHOD *SSLv23_server_method(void); /* SSLv3 but can rollback to v2 */ | 1826 | const SSL_METHOD *SSLv23_server_method(void); /* SSLv3 or TLSv1.* */ |
| 1833 | const SSL_METHOD *SSLv23_client_method(void); /* SSLv3 but can rollback to v2 */ | 1827 | const SSL_METHOD *SSLv23_client_method(void); /* SSLv3 or TLSv1.* */ |
| 1834 | 1828 | ||
| 1835 | const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ | 1829 | const SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */ |
| 1836 | const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ | 1830 | const SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */ |
diff --git a/src/lib/libssl/ssl/shlib_version b/src/lib/libssl/ssl/shlib_version index df4de0fc4d..906022aa66 100644 --- a/src/lib/libssl/ssl/shlib_version +++ b/src/lib/libssl/ssl/shlib_version | |||
| @@ -1,2 +1,2 @@ | |||
| 1 | major=23 | 1 | major=24 |
| 2 | minor=0 | 2 | minor=0 |
diff --git a/src/lib/libssl/ssl_asn1.c b/src/lib/libssl/ssl_asn1.c index c551ec4877..1d2590268c 100644 --- a/src/lib/libssl/ssl_asn1.c +++ b/src/lib/libssl/ssl_asn1.c | |||
| @@ -97,7 +97,6 @@ typedef struct ssl_session_asn1_st { | |||
| 97 | ASN1_OCTET_STRING master_key; | 97 | ASN1_OCTET_STRING master_key; |
| 98 | ASN1_OCTET_STRING session_id; | 98 | ASN1_OCTET_STRING session_id; |
| 99 | ASN1_OCTET_STRING session_id_context; | 99 | ASN1_OCTET_STRING session_id_context; |
| 100 | ASN1_OCTET_STRING key_arg; | ||
| 101 | #ifndef OPENSSL_NO_KRB5 | 100 | #ifndef OPENSSL_NO_KRB5 |
| 102 | ASN1_OCTET_STRING krb5_princ; | 101 | ASN1_OCTET_STRING krb5_princ; |
| 103 | #endif /* OPENSSL_NO_KRB5 */ | 102 | #endif /* OPENSSL_NO_KRB5 */ |
| @@ -190,10 +189,6 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 190 | a.session_id_context.type = V_ASN1_OCTET_STRING; | 189 | a.session_id_context.type = V_ASN1_OCTET_STRING; |
| 191 | a.session_id_context.data = in->sid_ctx; | 190 | a.session_id_context.data = in->sid_ctx; |
| 192 | 191 | ||
| 193 | a.key_arg.length = in->key_arg_length; | ||
| 194 | a.key_arg.type = V_ASN1_OCTET_STRING; | ||
| 195 | a.key_arg.data = in->key_arg; | ||
| 196 | |||
| 197 | #ifndef OPENSSL_NO_KRB5 | 192 | #ifndef OPENSSL_NO_KRB5 |
| 198 | if (in->krb5_client_princ_len) { | 193 | if (in->krb5_client_princ_len) { |
| 199 | a.krb5_princ.length = in->krb5_client_princ_len; | 194 | a.krb5_princ.length = in->krb5_client_princ_len; |
| @@ -206,7 +201,7 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 206 | a.time.length = LSIZE2; | 201 | a.time.length = LSIZE2; |
| 207 | a.time.type = V_ASN1_INTEGER; | 202 | a.time.type = V_ASN1_INTEGER; |
| 208 | a.time.data = ibuf3; | 203 | a.time.data = ibuf3; |
| 209 | ASN1_INTEGER_set(&(a.time), in->time); | 204 | ASN1_INTEGER_set(&(a.time), in->time); /* XXX 2038 */ |
| 210 | } | 205 | } |
| 211 | 206 | ||
| 212 | if (in->timeout != 0L) { | 207 | if (in->timeout != 0L) { |
| @@ -270,8 +265,6 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 270 | if (in->krb5_client_princ_len) | 265 | if (in->krb5_client_princ_len) |
| 271 | M_ASN1_I2D_len(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); | 266 | M_ASN1_I2D_len(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); |
| 272 | #endif /* OPENSSL_NO_KRB5 */ | 267 | #endif /* OPENSSL_NO_KRB5 */ |
| 273 | if (in->key_arg_length > 0) | ||
| 274 | M_ASN1_I2D_len_IMP_opt(&(a.key_arg), i2d_ASN1_OCTET_STRING); | ||
| 275 | if (in->time != 0L) | 268 | if (in->time != 0L) |
| 276 | M_ASN1_I2D_len_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); | 269 | M_ASN1_I2D_len_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); |
| 277 | if (in->timeout != 0L) | 270 | if (in->timeout != 0L) |
| @@ -316,8 +309,6 @@ i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp) | |||
| 316 | if (in->krb5_client_princ_len) | 309 | if (in->krb5_client_princ_len) |
| 317 | M_ASN1_I2D_put(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); | 310 | M_ASN1_I2D_put(&(a.krb5_princ), i2d_ASN1_OCTET_STRING); |
| 318 | #endif /* OPENSSL_NO_KRB5 */ | 311 | #endif /* OPENSSL_NO_KRB5 */ |
| 319 | if (in->key_arg_length > 0) | ||
| 320 | M_ASN1_I2D_put_IMP_opt(&(a.key_arg), i2d_ASN1_OCTET_STRING, 0); | ||
| 321 | if (in->time != 0L) | 312 | if (in->time != 0L) |
| 322 | M_ASN1_I2D_put_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); | 313 | M_ASN1_I2D_put_EXP_opt(&(a.time), i2d_ASN1_INTEGER, 1, v1); |
| 323 | if (in->timeout != 0L) | 314 | if (in->timeout != 0L) |
| @@ -445,24 +436,15 @@ d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length) | |||
| 445 | ret->krb5_client_princ_len = 0; | 436 | ret->krb5_client_princ_len = 0; |
| 446 | #endif /* OPENSSL_NO_KRB5 */ | 437 | #endif /* OPENSSL_NO_KRB5 */ |
| 447 | 438 | ||
| 448 | M_ASN1_D2I_get_IMP_opt(osp, d2i_ASN1_OCTET_STRING, 0, V_ASN1_OCTET_STRING); | ||
| 449 | if (os.length > SSL_MAX_KEY_ARG_LENGTH) | ||
| 450 | ret->key_arg_length = SSL_MAX_KEY_ARG_LENGTH; | ||
| 451 | else | ||
| 452 | ret->key_arg_length = os.length; | ||
| 453 | memcpy(ret->key_arg, os.data, ret->key_arg_length); | ||
| 454 | if (os.data != NULL) | ||
| 455 | free(os.data); | ||
| 456 | |||
| 457 | ai.length = 0; | 439 | ai.length = 0; |
| 458 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 1); | 440 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 1); /* XXX 2038 */ |
| 459 | if (ai.data != NULL) { | 441 | if (ai.data != NULL) { |
| 460 | ret->time = ASN1_INTEGER_get(aip); | 442 | ret->time = ASN1_INTEGER_get(aip); |
| 461 | free(ai.data); | 443 | free(ai.data); |
| 462 | ai.data = NULL; | 444 | ai.data = NULL; |
| 463 | ai.length = 0; | 445 | ai.length = 0; |
| 464 | } else | 446 | } else |
| 465 | ret->time = (unsigned long)time(NULL); | 447 | ret->time = time(NULL); |
| 466 | 448 | ||
| 467 | ai.length = 0; | 449 | ai.length = 0; |
| 468 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 2); | 450 | M_ASN1_D2I_get_EXP_opt(aip, d2i_ASN1_INTEGER, 2); |
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 3ab353b8eb..21d6835b98 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
| @@ -1712,11 +1712,8 @@ SSL_CTX_new(const SSL_METHOD *meth) | |||
| 1712 | ret->references = 1; | 1712 | ret->references = 1; |
| 1713 | ret->quiet_shutdown = 0; | 1713 | ret->quiet_shutdown = 0; |
| 1714 | 1714 | ||
| 1715 | /* ret->cipher=NULL;*/ | 1715 | /* ret->cipher=NULL; |
| 1716 | /* ret->s2->challenge=NULL; | ||
| 1717 | ret->master_key=NULL; | 1716 | ret->master_key=NULL; |
| 1718 | ret->key_arg=NULL; | ||
| 1719 | ret->s2->conn_id=NULL; | ||
| 1720 | */ | 1717 | */ |
| 1721 | 1718 | ||
| 1722 | ret->info_callback = NULL; | 1719 | ret->info_callback = NULL; |
| @@ -2340,7 +2337,7 @@ ssl_update_cache(SSL *s, int mode) | |||
| 2340 | if ((((mode & SSL_SESS_CACHE_CLIENT) | 2337 | if ((((mode & SSL_SESS_CACHE_CLIENT) |
| 2341 | ?s->session_ctx->stats.sess_connect_good | 2338 | ?s->session_ctx->stats.sess_connect_good |
| 2342 | :s->session_ctx->stats.sess_accept_good) & 0xff) == 0xff) { | 2339 | :s->session_ctx->stats.sess_accept_good) & 0xff) == 0xff) { |
| 2343 | SSL_CTX_flush_sessions(s->session_ctx,(unsigned long)time(NULL)); | 2340 | SSL_CTX_flush_sessions(s->session_ctx, time(NULL)); |
| 2344 | } | 2341 | } |
| 2345 | } | 2342 | } |
| 2346 | } | 2343 | } |
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index c67ae1c22f..c032154d48 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
| @@ -205,7 +205,7 @@ SSL_SESSION_new(void) | |||
| 205 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ | 205 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ |
| 206 | ss->references = 1; | 206 | ss->references = 1; |
| 207 | ss->timeout=60*5+4; /* 5 minute timeout by default */ | 207 | ss->timeout=60*5+4; /* 5 minute timeout by default */ |
| 208 | ss->time = (unsigned long)time(NULL); | 208 | ss->time = time(NULL); |
| 209 | ss->prev = NULL; | 209 | ss->prev = NULL; |
| 210 | ss->next = NULL; | 210 | ss->next = NULL; |
| 211 | ss->compress_meth = 0; | 211 | ss->compress_meth = 0; |
| @@ -555,7 +555,7 @@ ssl_get_prev_session(SSL *s, unsigned char *session_id, int len, | |||
| 555 | goto err; | 555 | goto err; |
| 556 | } | 556 | } |
| 557 | 557 | ||
| 558 | if (ret->timeout < (long)(time(NULL) - ret->time)) /* timeout */ | 558 | if (ret->timeout < (time(NULL) - ret->time)) /* timeout */ |
| 559 | { | 559 | { |
| 560 | s->session_ctx->stats.sess_timeout++; | 560 | s->session_ctx->stats.sess_timeout++; |
| 561 | if (try_session_cache) { | 561 | if (try_session_cache) { |
| @@ -699,7 +699,6 @@ SSL_SESSION_free(SSL_SESSION *ss) | |||
| 699 | 699 | ||
| 700 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); | 700 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_SESSION, ss, &ss->ex_data); |
| 701 | 701 | ||
| 702 | OPENSSL_cleanse(ss->key_arg, sizeof ss->key_arg); | ||
| 703 | OPENSSL_cleanse(ss->master_key, sizeof ss->master_key); | 702 | OPENSSL_cleanse(ss->master_key, sizeof ss->master_key); |
| 704 | OPENSSL_cleanse(ss->session_id, sizeof ss->session_id); | 703 | OPENSSL_cleanse(ss->session_id, sizeof ss->session_id); |
| 705 | if (ss->sess_cert != NULL) | 704 | if (ss->sess_cert != NULL) |
| @@ -807,6 +806,7 @@ SSL_SESSION_get_timeout(const SSL_SESSION *s) | |||
| 807 | return (s->timeout); | 806 | return (s->timeout); |
| 808 | } | 807 | } |
| 809 | 808 | ||
| 809 | /* XXX 2038 */ | ||
| 810 | long | 810 | long |
| 811 | SSL_SESSION_get_time(const SSL_SESSION *s) | 811 | SSL_SESSION_get_time(const SSL_SESSION *s) |
| 812 | { | 812 | { |
| @@ -815,6 +815,7 @@ SSL_SESSION_get_time(const SSL_SESSION *s) | |||
| 815 | return (s->time); | 815 | return (s->time); |
| 816 | } | 816 | } |
| 817 | 817 | ||
| 818 | /* XXX 2038 */ | ||
| 818 | long | 819 | long |
| 819 | SSL_SESSION_set_time(SSL_SESSION *s, long t) | 820 | SSL_SESSION_set_time(SSL_SESSION *s, long t) |
| 820 | { | 821 | { |
| @@ -926,7 +927,7 @@ typedef struct timeout_param_st { | |||
| 926 | static void | 927 | static void |
| 927 | timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) | 928 | timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) |
| 928 | { | 929 | { |
| 929 | if ((p->time == 0) || (p->time > (s->time+s->timeout))) /* timeout */ | 930 | if ((p->time == 0) || (p->time > (s->time + s->timeout))) /* timeout */ |
| 930 | { | 931 | { |
| 931 | /* The reason we don't call SSL_CTX_remove_session() is to | 932 | /* The reason we don't call SSL_CTX_remove_session() is to |
| 932 | * save on locking overhead */ | 933 | * save on locking overhead */ |
| @@ -942,6 +943,7 @@ timeout_doall_arg(SSL_SESSION *s, TIMEOUT_PARAM *p) | |||
| 942 | static | 943 | static |
| 943 | IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM) | 944 | IMPLEMENT_LHASH_DOALL_ARG_FN(timeout, SSL_SESSION, TIMEOUT_PARAM) |
| 944 | 945 | ||
| 946 | /* XXX 2038 */ | ||
| 945 | void | 947 | void |
| 946 | SSL_CTX_flush_sessions(SSL_CTX *s, long t) | 948 | SSL_CTX_flush_sessions(SSL_CTX *s, long t) |
| 947 | { | 949 | { |
diff --git a/src/lib/libssl/ssl_txt.c b/src/lib/libssl/ssl_txt.c index 91664ffe43..5538c57562 100644 --- a/src/lib/libssl/ssl_txt.c +++ b/src/lib/libssl/ssl_txt.c | |||
| @@ -161,16 +161,6 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) | |||
| 161 | if (BIO_printf(bp, "%02X", x->master_key[i]) | 161 | if (BIO_printf(bp, "%02X", x->master_key[i]) |
| 162 | <= 0) goto err; | 162 | <= 0) goto err; |
| 163 | } | 163 | } |
| 164 | if (BIO_puts(bp, "\n Key-Arg : ") | ||
| 165 | <= 0) goto err; | ||
| 166 | if (x->key_arg_length == 0) { | ||
| 167 | if (BIO_puts(bp, "None") | ||
| 168 | <= 0) goto err; | ||
| 169 | } else | ||
| 170 | for (i = 0; i < x->key_arg_length; i++) { | ||
| 171 | if (BIO_printf(bp, "%02X", x->key_arg[i]) | ||
| 172 | <= 0) goto err; | ||
| 173 | } | ||
| 174 | #ifndef OPENSSL_NO_KRB5 | 164 | #ifndef OPENSSL_NO_KRB5 |
| 175 | if (BIO_puts(bp, "\n Krb5 Principal: ") | 165 | if (BIO_puts(bp, "\n Krb5 Principal: ") |
| 176 | <= 0) goto err; | 166 | <= 0) goto err; |
| @@ -227,8 +217,8 @@ SSL_SESSION_print(BIO *bp, const SSL_SESSION *x) | |||
| 227 | } | 217 | } |
| 228 | } | 218 | } |
| 229 | #endif | 219 | #endif |
| 230 | if (x->time != 0L) { | 220 | if (x->time != 0) { |
| 231 | if (BIO_printf(bp, "\n Start Time: %ld", x->time) | 221 | if (BIO_printf(bp, "\n Start Time: %lld", (long long)x->time) |
| 232 | <= 0) goto err; | 222 | <= 0) goto err; |
| 233 | } | 223 | } |
| 234 | if (x->timeout != 0L) { | 224 | if (x->timeout != 0L) { |
diff --git a/src/lib/libssl/t1_enc.c b/src/lib/libssl/t1_enc.c index 579eaa6ce4..3f5df9ad7a 100644 --- a/src/lib/libssl/t1_enc.c +++ b/src/lib/libssl/t1_enc.c | |||
| @@ -519,7 +519,6 @@ tls1_change_cipher_state(SSL *s, int which) | |||
| 519 | } | 519 | } |
| 520 | } | 520 | } |
| 521 | 521 | ||
| 522 | s->session->key_arg_length = 0; | ||
| 523 | #ifdef KSSL_DEBUG | 522 | #ifdef KSSL_DEBUG |
| 524 | { | 523 | { |
| 525 | int i; | 524 | int i; |
