summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/ec/ecx_methods.c
diff options
context:
space:
mode:
authortb <>2024-01-04 17:01:26 +0000
committertb <>2024-01-04 17:01:26 +0000
commit28fd80a9189b82d0223c35153f8ed6f9cfb59161 (patch)
tree352dd8b119595c9dcef2c0b2739e1e98f14a4676 /src/lib/libcrypto/ec/ecx_methods.c
parent6ac39f8daa6e59d602f970b08d9bc152a63fd7a5 (diff)
downloadopenbsd-28fd80a9189b82d0223c35153f8ed6f9cfb59161.tar.gz
openbsd-28fd80a9189b82d0223c35153f8ed6f9cfb59161.tar.bz2
openbsd-28fd80a9189b82d0223c35153f8ed6f9cfb59161.zip
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 'src/lib/libcrypto/ec/ecx_methods.c')
-rw-r--r--src/lib/libcrypto/ec/ecx_methods.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/lib/libcrypto/ec/ecx_methods.c b/src/lib/libcrypto/ec/ecx_methods.c
index 75988d99ad..cd512a447f 100644
--- a/src/lib/libcrypto/ec/ecx_methods.c
+++ b/src/lib/libcrypto/ec/ecx_methods.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ecx_methods.c,v 1.10 2023/11/09 11:39:13 tb Exp $ */ 1/* $OpenBSD: ecx_methods.c,v 1.11 2024/01/04 17:01:26 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2022 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -813,8 +813,8 @@ pkey_ecx_ed_ctrl(EVP_PKEY_CTX *pkey_ctx, int op, int arg1, void *arg2)
813} 813}
814 814
815const EVP_PKEY_ASN1_METHOD x25519_asn1_meth = { 815const EVP_PKEY_ASN1_METHOD x25519_asn1_meth = {
816 .base_method = &x25519_asn1_meth,
816 .pkey_id = EVP_PKEY_X25519, 817 .pkey_id = EVP_PKEY_X25519,
817 .pkey_base_id = EVP_PKEY_X25519,
818 .pkey_flags = 0, 818 .pkey_flags = 0,
819 .pem_str = "X25519", 819 .pem_str = "X25519",
820 .info = "OpenSSL X25519 algorithm", 820 .info = "OpenSSL X25519 algorithm",
@@ -851,8 +851,8 @@ const EVP_PKEY_METHOD x25519_pkey_meth = {
851}; 851};
852 852
853const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth = { 853const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth = {
854 .base_method = &ed25519_asn1_meth,
854 .pkey_id = EVP_PKEY_ED25519, 855 .pkey_id = EVP_PKEY_ED25519,
855 .pkey_base_id = EVP_PKEY_ED25519,
856 .pkey_flags = 0, 856 .pkey_flags = 0,
857 .pem_str = "ED25519", 857 .pem_str = "ED25519",
858 .info = "OpenSSL ED25519 algorithm", 858 .info = "OpenSSL ED25519 algorithm",