diff options
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 1c4ab636a1..fa1d209c8c 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_lib.c,v 1.213 2020/05/10 14:17:47 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.214 2020/05/19 16:35:20 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 | * |
@@ -1968,7 +1968,7 @@ SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth) | |||
1968 | void | 1968 | void |
1969 | ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) | 1969 | ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) |
1970 | { | 1970 | { |
1971 | int rsa_enc, rsa_sign, dh_tmp; | 1971 | int rsa, dh_tmp; |
1972 | int have_ecc_cert; | 1972 | int have_ecc_cert; |
1973 | unsigned long mask_k, mask_a; | 1973 | unsigned long mask_k, mask_a; |
1974 | X509 *x = NULL; | 1974 | X509 *x = NULL; |
@@ -1980,10 +1980,8 @@ ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) | |||
1980 | dh_tmp = (c->dh_tmp != NULL || c->dh_tmp_cb != NULL || | 1980 | dh_tmp = (c->dh_tmp != NULL || c->dh_tmp_cb != NULL || |
1981 | c->dh_tmp_auto != 0); | 1981 | c->dh_tmp_auto != 0); |
1982 | 1982 | ||
1983 | cpk = &(c->pkeys[SSL_PKEY_RSA_ENC]); | 1983 | cpk = &(c->pkeys[SSL_PKEY_RSA]); |
1984 | rsa_enc = (cpk->x509 != NULL && cpk->privatekey != NULL); | 1984 | rsa = (cpk->x509 != NULL && cpk->privatekey != NULL); |
1985 | cpk = &(c->pkeys[SSL_PKEY_RSA_SIGN]); | ||
1986 | rsa_sign = (cpk->x509 != NULL && cpk->privatekey != NULL); | ||
1987 | cpk = &(c->pkeys[SSL_PKEY_ECC]); | 1985 | cpk = &(c->pkeys[SSL_PKEY_ECC]); |
1988 | have_ecc_cert = (cpk->x509 != NULL && cpk->privatekey != NULL); | 1986 | have_ecc_cert = (cpk->x509 != NULL && cpk->privatekey != NULL); |
1989 | 1987 | ||
@@ -1996,13 +1994,13 @@ ssl_set_cert_masks(CERT *c, const SSL_CIPHER *cipher) | |||
1996 | mask_a |= SSL_aGOST01; | 1994 | mask_a |= SSL_aGOST01; |
1997 | } | 1995 | } |
1998 | 1996 | ||
1999 | if (rsa_enc) | 1997 | if (rsa) |
2000 | mask_k |= SSL_kRSA; | 1998 | mask_k |= SSL_kRSA; |
2001 | 1999 | ||
2002 | if (dh_tmp) | 2000 | if (dh_tmp) |
2003 | mask_k |= SSL_kDHE; | 2001 | mask_k |= SSL_kDHE; |
2004 | 2002 | ||
2005 | if (rsa_enc || rsa_sign) | 2003 | if (rsa) |
2006 | mask_a |= SSL_aRSA; | 2004 | mask_a |= SSL_aRSA; |
2007 | 2005 | ||
2008 | mask_a |= SSL_aNULL; | 2006 | mask_a |= SSL_aNULL; |
@@ -2085,10 +2083,7 @@ ssl_get_server_send_pkey(const SSL *s) | |||
2085 | if (alg_a & SSL_aECDSA) { | 2083 | if (alg_a & SSL_aECDSA) { |
2086 | i = SSL_PKEY_ECC; | 2084 | i = SSL_PKEY_ECC; |
2087 | } else if (alg_a & SSL_aRSA) { | 2085 | } else if (alg_a & SSL_aRSA) { |
2088 | if (c->pkeys[SSL_PKEY_RSA_ENC].x509 == NULL) | 2086 | i = SSL_PKEY_RSA; |
2089 | i = SSL_PKEY_RSA_SIGN; | ||
2090 | else | ||
2091 | i = SSL_PKEY_RSA_ENC; | ||
2092 | } else if (alg_a & SSL_aGOST01) { | 2087 | } else if (alg_a & SSL_aGOST01) { |
2093 | i = SSL_PKEY_GOST01; | 2088 | i = SSL_PKEY_GOST01; |
2094 | } else { /* if (alg_a & SSL_aNULL) */ | 2089 | } else { /* if (alg_a & SSL_aNULL) */ |
@@ -2113,10 +2108,7 @@ ssl_get_sign_pkey(SSL *s, const SSL_CIPHER *cipher, const EVP_MD **pmd, | |||
2113 | c = s->cert; | 2108 | c = s->cert; |
2114 | 2109 | ||
2115 | if (alg_a & SSL_aRSA) { | 2110 | if (alg_a & SSL_aRSA) { |
2116 | if (c->pkeys[SSL_PKEY_RSA_SIGN].privatekey != NULL) | 2111 | idx = SSL_PKEY_RSA; |
2117 | idx = SSL_PKEY_RSA_SIGN; | ||
2118 | else if (c->pkeys[SSL_PKEY_RSA_ENC].privatekey != NULL) | ||
2119 | idx = SSL_PKEY_RSA_ENC; | ||
2120 | } else if ((alg_a & SSL_aECDSA) && | 2112 | } else if ((alg_a & SSL_aECDSA) && |
2121 | (c->pkeys[SSL_PKEY_ECC].privatekey != NULL)) | 2113 | (c->pkeys[SSL_PKEY_ECC].privatekey != NULL)) |
2122 | idx = SSL_PKEY_ECC; | 2114 | idx = SSL_PKEY_ECC; |