From 7a63cf228d8c89efdb78c641551b9bac57739698 Mon Sep 17 00:00:00 2001 From: tb <> Date: Thu, 4 Jan 2024 16:41:56 +0000 Subject: Split ameth arrays into individual methods For some reason DSA, GOST, and RSA had their ASN.1 methods stored in an array. This is clumsy and the only benefit is that one saves a few externs in p_lib.c. They were also arranged by ascending NID because of bsearch() madness. Split them up and arrange the methods by name, which is much saner and simpler. ok jsing --- src/lib/libcrypto/dsa/dsa_ameth.c | 118 ++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 61 deletions(-) (limited to 'src/lib/libcrypto/dsa/dsa_ameth.c') diff --git a/src/lib/libcrypto/dsa/dsa_ameth.c b/src/lib/libcrypto/dsa/dsa_ameth.c index 4c20b45b18..d4cce72fcb 100644 --- a/src/lib/libcrypto/dsa/dsa_ameth.c +++ b/src/lib/libcrypto/dsa/dsa_ameth.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dsa_ameth.c,v 1.55 2023/08/12 07:59:48 tb Exp $ */ +/* $OpenBSD: dsa_ameth.c,v 1.56 2024/01/04 16:41:56 tb Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project 2006. */ @@ -674,64 +674,60 @@ dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) } } -/* NB these are sorted in pkey_id order, lowest first */ - -const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[] = { - { - .pkey_id = EVP_PKEY_DSA2, - .pkey_base_id = EVP_PKEY_DSA, - .pkey_flags = ASN1_PKEY_ALIAS - }, - - { - .pkey_id = EVP_PKEY_DSA1, - .pkey_base_id = EVP_PKEY_DSA, - .pkey_flags = ASN1_PKEY_ALIAS - }, - - { - .pkey_id = EVP_PKEY_DSA4, - .pkey_base_id = EVP_PKEY_DSA, - .pkey_flags = ASN1_PKEY_ALIAS - }, - - { - .pkey_id = EVP_PKEY_DSA3, - .pkey_base_id = EVP_PKEY_DSA, - .pkey_flags = ASN1_PKEY_ALIAS - }, - - { - .pkey_id = EVP_PKEY_DSA, - .pkey_base_id = EVP_PKEY_DSA, - - .pem_str = "DSA", - .info = "OpenSSL DSA method", - - .pub_decode = dsa_pub_decode, - .pub_encode = dsa_pub_encode, - .pub_cmp = dsa_pub_cmp, - .pub_print = dsa_pub_print, - - .priv_decode = dsa_priv_decode, - .priv_encode = dsa_priv_encode, - .priv_print = dsa_priv_print, - - .pkey_size = dsa_size, - .pkey_bits = dsa_bits, - .pkey_security_bits = dsa_security_bits, - - .param_decode = dsa_param_decode, - .param_encode = dsa_param_encode, - .param_missing = dsa_missing_parameters, - .param_copy = dsa_copy_parameters, - .param_cmp = dsa_cmp_parameters, - .param_print = dsa_param_print, - .sig_print = dsa_sig_print, - - .pkey_free = dsa_free, - .pkey_ctrl = dsa_pkey_ctrl, - .old_priv_decode = old_dsa_priv_decode, - .old_priv_encode = old_dsa_priv_encode - } +const EVP_PKEY_ASN1_METHOD dsa_asn1_meth = { + .pkey_id = EVP_PKEY_DSA, + .pkey_base_id = EVP_PKEY_DSA, + + .pem_str = "DSA", + .info = "OpenSSL DSA method", + + .pub_decode = dsa_pub_decode, + .pub_encode = dsa_pub_encode, + .pub_cmp = dsa_pub_cmp, + .pub_print = dsa_pub_print, + + .priv_decode = dsa_priv_decode, + .priv_encode = dsa_priv_encode, + .priv_print = dsa_priv_print, + + .pkey_size = dsa_size, + .pkey_bits = dsa_bits, + .pkey_security_bits = dsa_security_bits, + + .param_decode = dsa_param_decode, + .param_encode = dsa_param_encode, + .param_missing = dsa_missing_parameters, + .param_copy = dsa_copy_parameters, + .param_cmp = dsa_cmp_parameters, + .param_print = dsa_param_print, + .sig_print = dsa_sig_print, + + .pkey_free = dsa_free, + .pkey_ctrl = dsa_pkey_ctrl, + .old_priv_decode = old_dsa_priv_decode, + .old_priv_encode = old_dsa_priv_encode +}; + +const EVP_PKEY_ASN1_METHOD dsa1_asn1_meth = { + .pkey_id = EVP_PKEY_DSA1, + .pkey_base_id = EVP_PKEY_DSA, + .pkey_flags = ASN1_PKEY_ALIAS, +}; + +const EVP_PKEY_ASN1_METHOD dsa2_asn1_meth = { + .pkey_id = EVP_PKEY_DSA2, + .pkey_base_id = EVP_PKEY_DSA, + .pkey_flags = ASN1_PKEY_ALIAS, +}; + +const EVP_PKEY_ASN1_METHOD dsa3_asn1_meth = { + .pkey_id = EVP_PKEY_DSA3, + .pkey_base_id = EVP_PKEY_DSA, + .pkey_flags = ASN1_PKEY_ALIAS, +}; + +const EVP_PKEY_ASN1_METHOD dsa4_asn1_meth = { + .pkey_id = EVP_PKEY_DSA4, + .pkey_base_id = EVP_PKEY_DSA, + .pkey_flags = ASN1_PKEY_ALIAS, }; -- cgit v1.2.3-55-g6feb