diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_srvr.c | 26 | 
1 files changed, 11 insertions, 15 deletions
| diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index 2c15081f45..32ffa88f15 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.104 2021/04/25 13:15:22 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_srvr.c,v 1.105 2021/04/30 19:26:45 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 | * | 
| @@ -1797,9 +1797,8 @@ ssl3_get_client_kex_rsa(SSL *s, CBS *cbs) | |||
| 1797 | p = fakekey; | 1797 | p = fakekey; | 
| 1798 | } | 1798 | } | 
| 1799 | 1799 | ||
| 1800 | s->session->master_key_length = | 1800 | if (!tls12_derive_master_secret(s, p, SSL_MAX_MASTER_KEY_LENGTH)) | 
| 1801 | tls1_generate_master_secret(s, | 1801 | goto err; | 
| 1802 | s->session->master_key, p, SSL_MAX_MASTER_KEY_LENGTH); | ||
| 1803 | 1802 | ||
| 1804 | freezero(pms, pms_len); | 1803 | freezero(pms, pms_len); | 
| 1805 | 1804 | ||
| @@ -1867,8 +1866,8 @@ ssl3_get_client_kex_dhe(SSL *s, CBS *cbs) | |||
| 1867 | goto fatal_err; | 1866 | goto fatal_err; | 
| 1868 | } | 1867 | } | 
| 1869 | 1868 | ||
| 1870 | s->session->master_key_length = tls1_generate_master_secret(s, | 1869 | if (!tls12_derive_master_secret(s, key, key_len)) | 
| 1871 | s->session->master_key, key, key_len); | 1870 | goto err; | 
| 1872 | 1871 | ||
| 1873 | DH_free(S3I(s)->tmp.dh); | 1872 | DH_free(S3I(s)->tmp.dh); | 
| 1874 | S3I(s)->tmp.dh = NULL; | 1873 | S3I(s)->tmp.dh = NULL; | 
| @@ -1928,8 +1927,8 @@ ssl3_get_client_kex_ecdhe_ecp(SSL *s, CBS *cbs) | |||
| 1928 | /* Derive the shared secret and compute master secret. */ | 1927 | /* Derive the shared secret and compute master secret. */ | 
| 1929 | if (!ssl_kex_derive_ecdhe_ecp(ecdh, ecdh_peer, &key, &key_len)) | 1928 | if (!ssl_kex_derive_ecdhe_ecp(ecdh, ecdh_peer, &key, &key_len)) | 
| 1930 | goto err; | 1929 | goto err; | 
| 1931 | s->session->master_key_length = tls1_generate_master_secret(s, | 1930 | if (!tls12_derive_master_secret(s, key, key_len)) | 
| 1932 | s->session->master_key, key, key_len); | 1931 | goto err; | 
| 1933 | 1932 | ||
| 1934 | EC_KEY_free(S3I(s)->tmp.ecdh); | 1933 | EC_KEY_free(S3I(s)->tmp.ecdh); | 
| 1935 | S3I(s)->tmp.ecdh = NULL; | 1934 | S3I(s)->tmp.ecdh = NULL; | 
| @@ -1966,9 +1965,8 @@ ssl3_get_client_kex_ecdhe_ecx(SSL *s, CBS *cbs) | |||
| 1966 | freezero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH); | 1965 | freezero(S3I(s)->tmp.x25519, X25519_KEY_LENGTH); | 
| 1967 | S3I(s)->tmp.x25519 = NULL; | 1966 | S3I(s)->tmp.x25519 = NULL; | 
| 1968 | 1967 | ||
| 1969 | s->session->master_key_length = | 1968 | if (!tls12_derive_master_secret(s, shared_key, X25519_KEY_LENGTH)) | 
| 1970 | tls1_generate_master_secret( | 1969 | goto err; | 
| 1971 | s, s->session->master_key, shared_key, X25519_KEY_LENGTH); | ||
| 1972 | 1970 | ||
| 1973 | ret = 1; | 1971 | ret = 1; | 
| 1974 | 1972 | ||
| @@ -2033,10 +2031,8 @@ ssl3_get_client_kex_gost(SSL *s, CBS *cbs) | |||
| 2033 | goto gerr; | 2031 | goto gerr; | 
| 2034 | } | 2032 | } | 
| 2035 | 2033 | ||
| 2036 | /* Generate master secret */ | 2034 | if (!tls12_derive_master_secret(s, premaster_secret, 32)) | 
| 2037 | s->session->master_key_length = | 2035 | goto err; | 
| 2038 | tls1_generate_master_secret( | ||
| 2039 | s, s->session->master_key, premaster_secret, 32); | ||
| 2040 | 2036 | ||
| 2041 | /* Check if pubkey from client certificate was used */ | 2037 | /* Check if pubkey from client certificate was used */ | 
| 2042 | if (EVP_PKEY_CTX_ctrl(pkey_ctx, -1, -1, | 2038 | if (EVP_PKEY_CTX_ctrl(pkey_ctx, -1, -1, | 
