diff options
Diffstat (limited to 'src/lib/libssl/ssl_srvr.c')
| -rw-r--r-- | src/lib/libssl/ssl_srvr.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index 01155a8d6d..be6bd7402c 100644 --- a/src/lib/libssl/ssl_srvr.c +++ b/src/lib/libssl/ssl_srvr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_srvr.c,v 1.163 2024/07/19 08:56:17 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_srvr.c,v 1.164 2024/07/20 04:04:23 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -651,7 +651,7 @@ ssl3_accept(SSL *s) | |||
| 651 | goto end; | 651 | goto end; |
| 652 | s->s3->hs.state = SSL3_ST_SW_FINISHED_A; | 652 | s->s3->hs.state = SSL3_ST_SW_FINISHED_A; |
| 653 | s->init_num = 0; | 653 | s->init_num = 0; |
| 654 | s->session->cipher = s->s3->hs.cipher; | 654 | s->session->cipher_id = s->s3->hs.cipher->id; |
| 655 | 655 | ||
| 656 | if (!tls1_setup_key_block(s)) { | 656 | if (!tls1_setup_key_block(s)) { |
| 657 | ret = -1; | 657 | ret = -1; |
| @@ -978,7 +978,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 978 | /* XXX - CBS_len(&cipher_suites) will always be zero here... */ | 978 | /* XXX - CBS_len(&cipher_suites) will always be zero here... */ |
| 979 | if (s->hit && CBS_len(&cipher_suites) > 0) { | 979 | if (s->hit && CBS_len(&cipher_suites) > 0) { |
| 980 | j = 0; | 980 | j = 0; |
| 981 | id = s->session->cipher->id; | 981 | id = s->session->cipher_id; |
| 982 | 982 | ||
| 983 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { | 983 | for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { |
| 984 | c = sk_SSL_CIPHER_value(ciphers, i); | 984 | c = sk_SSL_CIPHER_value(ciphers, i); |
| @@ -1098,7 +1098,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 1098 | SSLerror(s, SSL_R_NO_SHARED_CIPHER); | 1098 | SSLerror(s, SSL_R_NO_SHARED_CIPHER); |
| 1099 | goto fatal_err; | 1099 | goto fatal_err; |
| 1100 | } | 1100 | } |
| 1101 | s->session->cipher = pref_cipher; | 1101 | s->s3->hs.cipher = pref_cipher; |
| 1102 | 1102 | ||
| 1103 | /* XXX - why? */ | 1103 | /* XXX - why? */ |
| 1104 | sk_SSL_CIPHER_free(s->cipher_list); | 1104 | sk_SSL_CIPHER_free(s->cipher_list); |
| @@ -1127,8 +1127,11 @@ ssl3_get_client_hello(SSL *s) | |||
| 1127 | goto fatal_err; | 1127 | goto fatal_err; |
| 1128 | } | 1128 | } |
| 1129 | s->s3->hs.cipher = c; | 1129 | s->s3->hs.cipher = c; |
| 1130 | s->session->cipher_id = s->s3->hs.cipher->id; | ||
| 1130 | } else { | 1131 | } else { |
| 1131 | s->s3->hs.cipher = s->session->cipher; | 1132 | s->s3->hs.cipher = ssl3_get_cipher_by_id(s->session->cipher_id); |
| 1133 | if (s->s3->hs.cipher == NULL) | ||
| 1134 | goto fatal_err; | ||
| 1132 | } | 1135 | } |
| 1133 | 1136 | ||
| 1134 | if (!tls1_transcript_hash_init(s)) | 1137 | if (!tls1_transcript_hash_init(s)) |
