diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/ec/ec_ameth.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/lib/libcrypto/ec/ec_ameth.c b/src/lib/libcrypto/ec/ec_ameth.c index 2b3b3db63d..e6fe8bd370 100644 --- a/src/lib/libcrypto/ec/ec_ameth.c +++ b/src/lib/libcrypto/ec/ec_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ec_ameth.c,v 1.47 2023/12/29 18:46:24 tb Exp $ */ | 1 | /* $OpenBSD: ec_ameth.c,v 1.48 2023/12/29 18:47:47 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 | */ |
| @@ -551,16 +551,23 @@ do_EC_KEY_print(BIO *bp, const EC_KEY *x, int off, int ktype) | |||
| 551 | } | 551 | } |
| 552 | 552 | ||
| 553 | static int | 553 | static int |
| 554 | eckey_param_decode(EVP_PKEY *pkey, | 554 | eckey_param_decode(EVP_PKEY *pkey, const unsigned char **param, int param_len) |
| 555 | const unsigned char **pder, int derlen) | ||
| 556 | { | 555 | { |
| 557 | EC_KEY *eckey; | 556 | EC_KEY *eckey; |
| 558 | if (!(eckey = d2i_ECParameters(NULL, pder, derlen))) { | 557 | int ret = 0; |
| 559 | ECerror(ERR_R_EC_LIB); | 558 | |
| 560 | return 0; | 559 | if ((eckey = d2i_ECParameters(NULL, param, param_len)) == NULL) |
| 561 | } | 560 | goto err; |
| 562 | EVP_PKEY_assign_EC_KEY(pkey, eckey); | 561 | if (!EVP_PKEY_assign_EC_KEY(pkey, eckey)) |
| 563 | return 1; | 562 | goto err; |
| 563 | eckey = NULL; | ||
| 564 | |||
| 565 | ret = 1; | ||
| 566 | |||
| 567 | err: | ||
| 568 | EC_KEY_free(eckey); | ||
| 569 | |||
| 570 | return ret; | ||
| 564 | } | 571 | } |
| 565 | 572 | ||
| 566 | static int | 573 | static int |
