diff options
Diffstat (limited to 'src/lib/libssl/ssl_clnt.c')
-rw-r--r-- | src/lib/libssl/ssl_clnt.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c index c129bb6d66..a38d1f1ed4 100644 --- a/src/lib/libssl/ssl_clnt.c +++ b/src/lib/libssl/ssl_clnt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_clnt.c,v 1.93 2021/04/25 13:15:22 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_clnt.c,v 1.94 2021/04/30 19:26:44 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 | * |
@@ -2001,9 +2001,8 @@ ssl3_send_client_kex_rsa(SSL *s, SESS_CERT *sess_cert, CBB *cbb) | |||
2001 | if (!CBB_flush(cbb)) | 2001 | if (!CBB_flush(cbb)) |
2002 | goto err; | 2002 | goto err; |
2003 | 2003 | ||
2004 | s->session->master_key_length = | 2004 | if (!tls12_derive_master_secret(s, pms, sizeof(pms))) |
2005 | tls1_generate_master_secret(s, | 2005 | goto err; |
2006 | s->session->master_key, pms, sizeof(pms)); | ||
2007 | 2006 | ||
2008 | ret = 1; | 2007 | ret = 1; |
2009 | 2008 | ||
@@ -2055,10 +2054,8 @@ ssl3_send_client_kex_dhe(SSL *s, SESS_CERT *sess_cert, CBB *cbb) | |||
2055 | goto err; | 2054 | goto err; |
2056 | } | 2055 | } |
2057 | 2056 | ||
2058 | /* Generate master key from the result. */ | 2057 | if (!tls12_derive_master_secret(s, key, key_len)) |
2059 | s->session->master_key_length = | 2058 | goto err; |
2060 | tls1_generate_master_secret(s, | ||
2061 | s->session->master_key, key, key_len); | ||
2062 | 2059 | ||
2063 | if (!CBB_add_u16_length_prefixed(cbb, &dh_Yc)) | 2060 | if (!CBB_add_u16_length_prefixed(cbb, &dh_Yc)) |
2064 | goto err; | 2061 | goto err; |
@@ -2104,8 +2101,8 @@ ssl3_send_client_kex_ecdhe_ecp(SSL *s, SESS_CERT *sc, CBB *cbb) | |||
2104 | 2101 | ||
2105 | if (!ssl_kex_derive_ecdhe_ecp(ecdh, sc->peer_ecdh_tmp, &key, &key_len)) | 2102 | if (!ssl_kex_derive_ecdhe_ecp(ecdh, sc->peer_ecdh_tmp, &key, &key_len)) |
2106 | goto err; | 2103 | goto err; |
2107 | s->session->master_key_length = tls1_generate_master_secret(s, | 2104 | if (!tls12_derive_master_secret(s, key, key_len)) |
2108 | s->session->master_key, key, key_len); | 2105 | goto err; |
2109 | 2106 | ||
2110 | ret = 1; | 2107 | ret = 1; |
2111 | 2108 | ||
@@ -2142,10 +2139,8 @@ ssl3_send_client_kex_ecdhe_ecx(SSL *s, SESS_CERT *sc, CBB *cbb) | |||
2142 | if (!CBB_flush(cbb)) | 2139 | if (!CBB_flush(cbb)) |
2143 | goto err; | 2140 | goto err; |
2144 | 2141 | ||
2145 | /* Generate master key from the result. */ | 2142 | if (!tls12_derive_master_secret(s, shared_key, X25519_KEY_LENGTH)) |
2146 | s->session->master_key_length = | 2143 | goto err; |
2147 | tls1_generate_master_secret(s, | ||
2148 | s->session->master_key, shared_key, X25519_KEY_LENGTH); | ||
2149 | 2144 | ||
2150 | ret = 1; | 2145 | ret = 1; |
2151 | 2146 | ||
@@ -2276,9 +2271,9 @@ ssl3_send_client_kex_gost(SSL *s, SESS_CERT *sess_cert, CBB *cbb) | |||
2276 | s->s3->flags |= TLS1_FLAGS_SKIP_CERT_VERIFY; | 2271 | s->s3->flags |= TLS1_FLAGS_SKIP_CERT_VERIFY; |
2277 | } | 2272 | } |
2278 | EVP_PKEY_CTX_free(pkey_ctx); | 2273 | EVP_PKEY_CTX_free(pkey_ctx); |
2279 | s->session->master_key_length = | 2274 | |
2280 | tls1_generate_master_secret(s, | 2275 | if (!tls12_derive_master_secret(s, premaster_secret, 32)) |
2281 | s->session->master_key, premaster_secret, 32); | 2276 | goto err; |
2282 | 2277 | ||
2283 | ret = 1; | 2278 | ret = 1; |
2284 | 2279 | ||