summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/evp/pmeth_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/evp/pmeth_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/evp/pmeth_lib.c')
-rw-r--r--src/lib/libcrypto/evp/pmeth_lib.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/lib/libcrypto/evp/pmeth_lib.c b/src/lib/libcrypto/evp/pmeth_lib.c
index 92328dd246..d265e2aced 100644
--- a/src/lib/libcrypto/evp/pmeth_lib.c
+++ b/src/lib/libcrypto/evp/pmeth_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pmeth_lib.c,v 1.19 2022/01/10 11:52:43 tb Exp $ */ 1/* $OpenBSD: pmeth_lib.c,v 1.20 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 */
@@ -588,3 +588,17 @@ EVP_PKEY_meth_set_check(EVP_PKEY_METHOD *pmeth, int (*check)(EVP_PKEY *pkey))
588{ 588{
589 pmeth->check = check; 589 pmeth->check = check;
590} 590}
591
592void
593EVP_PKEY_meth_set_public_check(EVP_PKEY_METHOD *pmeth,
594 int (*public_check)(EVP_PKEY *pkey))
595{
596 pmeth->public_check = public_check;
597}
598
599void
600EVP_PKEY_meth_set_param_check(EVP_PKEY_METHOD *pmeth,
601 int (*param_check)(EVP_PKEY *pkey))
602{
603 pmeth->param_check = param_check;
604}