diff options
-rw-r--r-- | src/lib/libcrypto/ec/ec_pmeth.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/lib/libcrypto/ec/ec_pmeth.c b/src/lib/libcrypto/ec/ec_pmeth.c index 6d74a7f8a4..e1a068d62d 100644 --- a/src/lib/libcrypto/ec/ec_pmeth.c +++ b/src/lib/libcrypto/ec/ec_pmeth.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ec_pmeth.c,v 1.24 2025/01/05 16:07:08 tb Exp $ */ | 1 | /* $OpenBSD: ec_pmeth.c,v 1.25 2025/02/18 06:31:10 tb Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 2006. | 3 | * project 2006. |
4 | */ | 4 | */ |
@@ -221,10 +221,8 @@ pkey_ec_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen) | |||
221 | } | 221 | } |
222 | 222 | ||
223 | eckey = dctx->co_key ? dctx->co_key : ctx->pkey->pkey.ec; | 223 | eckey = dctx->co_key ? dctx->co_key : ctx->pkey->pkey.ec; |
224 | if (!key) { | 224 | if (key == NULL) { |
225 | const EC_GROUP *group; | 225 | *keylen = BN_num_bytes(eckey->group->p); |
226 | group = EC_KEY_get0_group(eckey); | ||
227 | *keylen = (EC_GROUP_get_degree(group) + 7) / 8; | ||
228 | return 1; | 226 | return 1; |
229 | } | 227 | } |
230 | pubkey = EC_KEY_get0_public_key(ctx->peerkey->pkey.ec); | 228 | pubkey = EC_KEY_get0_public_key(ctx->peerkey->pkey.ec); |