summaryrefslogtreecommitdiff
path: root/lib/libcrypto/ec
diff options
context:
space:
mode:
authorTheo Buehler <tb@cvs.openbsd.org>2024-01-04 17:01:27 +0000
committerTheo Buehler <tb@cvs.openbsd.org>2024-01-04 17:01:27 +0000
commit2c4b111fba1317ee5a15319a903809eec21fbd99 (patch)
treef6ba736f5241f7b37a5fa751d09eb3f3cd9717db /lib/libcrypto/ec
parentdac9b6c46b49def383c859a08230dbfac9a4309b (diff)
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
Diffstat (limited to 'lib/libcrypto/ec')
-rw-r--r--lib/libcrypto/ec/ec_ameth.c4
-rw-r--r--lib/libcrypto/ec/ecx_methods.c6
2 files changed, 5 insertions, 5 deletions
diff --git a/lib/libcrypto/ec/ec_ameth.c b/lib/libcrypto/ec/ec_ameth.c
index c22f38b345a..7ca5b18020c 100644
--- a/lib/libcrypto/ec/ec_ameth.c
+++ b/lib/libcrypto/ec/ec_ameth.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ec_ameth.c,v 1.50 2023/12/29 18:49:06 tb Exp $ */
+/* $OpenBSD: ec_ameth.c,v 1.51 2024/01/04 17:01:26 tb Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project 2006.
*/
@@ -1049,8 +1049,8 @@ ecdh_cms_encrypt(CMS_RecipientInfo *ri)
#endif
const EVP_PKEY_ASN1_METHOD eckey_asn1_meth = {
+ .base_method = &eckey_asn1_meth,
.pkey_id = EVP_PKEY_EC,
- .pkey_base_id = EVP_PKEY_EC,
.pem_str = "EC",
.info = "OpenSSL EC algorithm",
diff --git a/lib/libcrypto/ec/ecx_methods.c b/lib/libcrypto/ec/ecx_methods.c
index 75988d99ade..cd512a447f1 100644
--- a/lib/libcrypto/ec/ecx_methods.c
+++ b/lib/libcrypto/ec/ecx_methods.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ecx_methods.c,v 1.10 2023/11/09 11:39:13 tb Exp $ */
+/* $OpenBSD: ecx_methods.c,v 1.11 2024/01/04 17:01:26 tb Exp $ */
/*
* Copyright (c) 2022 Joel Sing <jsing@openbsd.org>
*
@@ -813,8 +813,8 @@ pkey_ecx_ed_ctrl(EVP_PKEY_CTX *pkey_ctx, int op, int arg1, void *arg2)
}
const EVP_PKEY_ASN1_METHOD x25519_asn1_meth = {
+ .base_method = &x25519_asn1_meth,
.pkey_id = EVP_PKEY_X25519,
- .pkey_base_id = EVP_PKEY_X25519,
.pkey_flags = 0,
.pem_str = "X25519",
.info = "OpenSSL X25519 algorithm",
@@ -851,8 +851,8 @@ const EVP_PKEY_METHOD x25519_pkey_meth = {
};
const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth = {
+ .base_method = &ed25519_asn1_meth,
.pkey_id = EVP_PKEY_ED25519,
- .pkey_base_id = EVP_PKEY_ED25519,
.pkey_flags = 0,
.pem_str = "ED25519",
.info = "OpenSSL ED25519 algorithm",