Replace .pkey_base_id with a .base_method pointer
authortb <tb@openbsd.org>
Thu, 4 Jan 2024 17:01:26 +0000 (17:01 +0000)
committertb <tb@openbsd.org>
Thu, 4 Jan 2024 17:01:26 +0000 (17:01 +0000)
commit9ed721ecc5930c48a195107502e32d268514deea
treebe0688944710ddf67596b2804d5eceffb2c69c59
parent7a766feb92ce83d5cd84bd160684cb87faecf7a5
Replace .pkey_base_id with a .base_method pointer

Every EVP_PKEY_ASN1_METHOD is either an ASN.1 method or an alias.
As such it resolves to an underlying ASN.1 method (in one step).
This information can be stored in a base_method pointer in allusion
to the pkey_base_id, which is the name for the nid (aka pkey_id aka
type) of the underlying method.

For an ASN.1 method, the base method is itself, so the base method
is set as a pointer to itself. For an alias it is of course a pointer
to the underlying method. Then obviously ameth->pkey_base_id is the
same as ameth->base_method->pkey_id, so rework all ASN.1 methods to
follow that.

ok jsing
lib/libcrypto/cmac/cm_ameth.c
lib/libcrypto/dh/dh_ameth.c
lib/libcrypto/dsa/dsa_ameth.c
lib/libcrypto/ec/ec_ameth.c
lib/libcrypto/ec/ecx_methods.c
lib/libcrypto/evp/evp_local.h
lib/libcrypto/evp/p_lib.c
lib/libcrypto/gost/gost89imit_ameth.c
lib/libcrypto/gost/gostr341001_ameth.c
lib/libcrypto/hmac/hm_ameth.c
lib/libcrypto/rsa/rsa_ameth.c