diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_rsa.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/lib/libssl/ssl_rsa.c b/src/lib/libssl/ssl_rsa.c index 192dc4291e..98c1e1b7b3 100644 --- a/src/lib/libssl/ssl_rsa.c +++ b/src/lib/libssl/ssl_rsa.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_rsa.c,v 1.45 2022/06/30 09:08:35 tb Exp $ */ | 1 | /* $OpenBSD: ssl_rsa.c,v 1.46 2022/08/31 06:51:36 tb 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 | * |
| @@ -184,9 +184,13 @@ ssl_set_pkey(SSL_CTX *ctx, SSL *ssl, EVP_PKEY *pkey) | |||
| 184 | 184 | ||
| 185 | if (c->pkeys[i].x509 != NULL) { | 185 | if (c->pkeys[i].x509 != NULL) { |
| 186 | EVP_PKEY *pktmp; | 186 | EVP_PKEY *pktmp; |
| 187 | pktmp = X509_get_pubkey(c->pkeys[i].x509); | 187 | |
| 188 | EVP_PKEY_copy_parameters(pktmp, pkey); | 188 | if ((pktmp = X509_get0_pubkey(c->pkeys[i].x509)) == NULL) |
| 189 | EVP_PKEY_free(pktmp); | 189 | return 0; |
| 190 | |||
| 191 | if (!EVP_PKEY_copy_parameters(pktmp, pkey)) | ||
| 192 | return 0; | ||
| 193 | |||
| 190 | ERR_clear_error(); | 194 | ERR_clear_error(); |
| 191 | 195 | ||
| 192 | /* | 196 | /* |
| @@ -209,7 +213,7 @@ ssl_set_pkey(SSL_CTX *ctx, SSL *ssl, EVP_PKEY *pkey) | |||
| 209 | c->key = &(c->pkeys[i]); | 213 | c->key = &(c->pkeys[i]); |
| 210 | 214 | ||
| 211 | c->valid = 0; | 215 | c->valid = 0; |
| 212 | return (1); | 216 | return 1; |
| 213 | } | 217 | } |
| 214 | 218 | ||
| 215 | int | 219 | int |
