diff options
author | tb <> | 2024-01-04 17:01:26 +0000 |
---|---|---|
committer | tb <> | 2024-01-04 17:01:26 +0000 |
commit | 28fd80a9189b82d0223c35153f8ed6f9cfb59161 (patch) | |
tree | 352dd8b119595c9dcef2c0b2739e1e98f14a4676 /src/lib/libcrypto/ec/ecx_methods.c | |
parent | 6ac39f8daa6e59d602f970b08d9bc152a63fd7a5 (diff) | |
download | openbsd-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.c | 6 |
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 | ||
815 | const EVP_PKEY_ASN1_METHOD x25519_asn1_meth = { | 815 | const 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 | ||
853 | const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth = { | 853 | const 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", |