Prepare to provide EVP_PKEY_{public,param}_check
authortb <tb@openbsd.org>
Mon, 10 Jan 2022 12:10:26 +0000 (12:10 +0000)
committertb <tb@openbsd.org>
Mon, 10 Jan 2022 12:10:26 +0000 (12:10 +0000)
commit262d8ecc569e965d15806da65ced3e03faa249ef
tree3ff695b4f4a6daf532ed2da01b74dc50ffa66a50
parentef053c5d36befe481666618d8690c073c4a1fb82
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
lib/libcrypto/asn1/ameth_lib.c
lib/libcrypto/asn1/asn1_locl.h
lib/libcrypto/dh/dh_ameth.c
lib/libcrypto/ec/ec_ameth.c
lib/libcrypto/evp/evp.h
lib/libcrypto/evp/evp_locl.h
lib/libcrypto/evp/pmeth_gn.c
lib/libcrypto/evp/pmeth_lib.c