Prepare to provide EVP_PKEY_check()
authortb <tb@openbsd.org>
Mon, 10 Jan 2022 11:52:43 +0000 (11:52 +0000)
committertb <tb@openbsd.org>
Mon, 10 Jan 2022 11:52:43 +0000 (11:52 +0000)
commitc0f4ec487aa75ec95b5c178b8b2e05d40595731f
treec717fbc2a685dea9f6c0c37436ac6538ddee6875
parent00bf30f920b337ccd9e1e41c3111a2ba80481921
Prepare to provide EVP_PKEY_check()

This allows checking the validity of an EVP_PKEY. Only RSA and EC keys
are supported. If a check function is set the EVP_PKEY_METHOD, it will
be used, otherwise the check function on the EVP_PKEY_ASN1_METHOD is
used.  The default ASN.1 methods wrap RSA_check_key() and
EC_KEY_check_key(), respectively.

The corresponding setters are EVP_PKEY_{asn1,meth}_set_check().

It is unclear why the PKEY method has no const while the ASN.1 method
has const.

Requested by tobhe and used by PHP 8.1.
Based on OpenSSL commit 2aee35d3

ok inoguchi jsing
lib/libcrypto/asn1/ameth_lib.c
lib/libcrypto/asn1/asn1_locl.h
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
lib/libcrypto/rsa/rsa_ameth.c