summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/ameth_lib.c
diff options
context:
space:
mode:
authortb <>2022-01-10 12:10:26 +0000
committertb <>2022-01-10 12:10:26 +0000
commit6b5741e4f43381bf67a7a82640e37e6bb4ac4d68 (patch)
treeba8a46237cda314ddd3da47248b453e7613bb73a /src/lib/libcrypto/asn1/ameth_lib.c
parent66fc1114c3900ed41771dba70d33a853a0a925f4 (diff)
downloadopenbsd-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.c16
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
440void
441EVP_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
447void
448EVP_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}