diff options
author | tb <> | 2022-01-10 12:10:26 +0000 |
---|---|---|
committer | tb <> | 2022-01-10 12:10:26 +0000 |
commit | 6b5741e4f43381bf67a7a82640e37e6bb4ac4d68 (patch) | |
tree | ba8a46237cda314ddd3da47248b453e7613bb73a /src/lib/libcrypto/asn1/ameth_lib.c | |
parent | 66fc1114c3900ed41771dba70d33a853a0a925f4 (diff) | |
download | openbsd-6b5741e4f43381bf67a7a82640e37e6bb4ac4d68.tar.gz openbsd-6b5741e4f43381bf67a7a82640e37e6bb4ac4d68.tar.bz2 openbsd-6b5741e4f43381bf67a7a82640e37e6bb4ac4d68.zip |
Prepare to provide EVP_PKEY_{public,param}_check
This implements checking of a public key and of key generation
parameters for DH and EC keys. With the same logic and setters
and const quirks as for EVP_PKEY_check().
There are a couple of quirks: For DH no default EVP_PKEY_check()
is implemented, instead EVP_PKEY_param_check() calls DH_check_ex()
even though DH_param_check_ex() was added for this purpose.
EVP_PKEY_public_check() for EC curves also checks the private key
if present.
ok inoguchi jsing
Diffstat (limited to 'src/lib/libcrypto/asn1/ameth_lib.c')
-rw-r--r-- | src/lib/libcrypto/asn1/ameth_lib.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/libcrypto/asn1/ameth_lib.c b/src/lib/libcrypto/asn1/ameth_lib.c index 96669bbd2f..8ff5a35d78 100644 --- a/src/lib/libcrypto/asn1/ameth_lib.c +++ b/src/lib/libcrypto/asn1/ameth_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ameth_lib.c,v 1.24 2022/01/10 11:52:43 tb Exp $ */ | 1 | /* $OpenBSD: ameth_lib.c,v 1.25 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 | */ |
@@ -436,3 +436,17 @@ EVP_PKEY_asn1_set_check(EVP_PKEY_ASN1_METHOD *ameth, | |||
436 | { | 436 | { |
437 | ameth->pkey_check = pkey_check; | 437 | ameth->pkey_check = pkey_check; |
438 | } | 438 | } |
439 | |||
440 | void | ||
441 | EVP_PKEY_asn1_set_public_check(EVP_PKEY_ASN1_METHOD *ameth, | ||
442 | int (*pkey_public_check)(const EVP_PKEY *pk)) | ||
443 | { | ||
444 | ameth->pkey_public_check = pkey_public_check; | ||
445 | } | ||
446 | |||
447 | void | ||
448 | EVP_PKEY_asn1_set_param_check(EVP_PKEY_ASN1_METHOD *ameth, | ||
449 | int (*pkey_param_check)(const EVP_PKEY *pk)) | ||
450 | { | ||
451 | ameth->pkey_param_check = pkey_param_check; | ||
452 | } | ||