diff options
Diffstat (limited to 'src/lib/libcrypto/ec')
| -rw-r--r-- | src/lib/libcrypto/ec/ec_ameth.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/lib/libcrypto/ec/ec_ameth.c b/src/lib/libcrypto/ec/ec_ameth.c index 8316683f8f..86f509b736 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.30 2022/01/10 11:52:43 tb Exp $ */ | 1 | /* $OpenBSD: ec_ameth.c,v 1.31 2022/01/10 12:10:26 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 | */ |
| @@ -634,6 +634,28 @@ ec_pkey_check(const EVP_PKEY *pkey) | |||
| 634 | return EC_KEY_check_key(eckey); | 634 | return EC_KEY_check_key(eckey); |
| 635 | } | 635 | } |
| 636 | 636 | ||
| 637 | static int | ||
| 638 | ec_pkey_public_check(const EVP_PKEY *pkey) | ||
| 639 | { | ||
| 640 | EC_KEY *eckey = pkey->pkey.ec; | ||
| 641 | |||
| 642 | /* This also checks the private key, but oh, well... */ | ||
| 643 | return EC_KEY_check_key(eckey); | ||
| 644 | } | ||
| 645 | |||
| 646 | static int | ||
| 647 | ec_pkey_param_check(const EVP_PKEY *pkey) | ||
| 648 | { | ||
| 649 | EC_KEY *eckey = pkey->pkey.ec; | ||
| 650 | |||
| 651 | if (eckey->group == NULL) { | ||
| 652 | ECerror(EC_R_MISSING_PARAMETERS); | ||
| 653 | return 0; | ||
| 654 | } | ||
| 655 | |||
| 656 | return EC_GROUP_check(eckey->group, NULL); | ||
| 657 | } | ||
| 658 | |||
| 637 | #ifndef OPENSSL_NO_CMS | 659 | #ifndef OPENSSL_NO_CMS |
| 638 | 660 | ||
| 639 | static int | 661 | static int |
| @@ -998,4 +1020,6 @@ const EVP_PKEY_ASN1_METHOD eckey_asn1_meth = { | |||
| 998 | .old_priv_encode = old_ec_priv_encode, | 1020 | .old_priv_encode = old_ec_priv_encode, |
| 999 | 1021 | ||
| 1000 | .pkey_check = ec_pkey_check, | 1022 | .pkey_check = ec_pkey_check, |
| 1023 | .pkey_public_check = ec_pkey_public_check, | ||
| 1024 | .pkey_param_check = ec_pkey_param_check, | ||
| 1001 | }; | 1025 | }; |
