summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/dsa/dsa_ameth.c118
-rw-r--r--src/lib/libcrypto/evp/p_lib.c35
-rw-r--r--src/lib/libcrypto/gost/gostr341001_ameth.c82
-rw-r--r--src/lib/libcrypto/rsa/rsa_ameth.c64
4 files changed, 150 insertions, 149 deletions
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 @@
1/* $OpenBSD: dsa_ameth.c,v 1.55 2023/08/12 07:59:48 tb Exp $ */ 1/* $OpenBSD: dsa_ameth.c,v 1.56 2024/01/04 16:41:56 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -674,64 +674,60 @@ dsa_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)
674 } 674 }
675} 675}
676 676
677/* NB these are sorted in pkey_id order, lowest first */ 677const EVP_PKEY_ASN1_METHOD dsa_asn1_meth = {
678 678 .pkey_id = EVP_PKEY_DSA,
679const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[] = { 679 .pkey_base_id = EVP_PKEY_DSA,
680 { 680
681 .pkey_id = EVP_PKEY_DSA2, 681 .pem_str = "DSA",
682 .pkey_base_id = EVP_PKEY_DSA, 682 .info = "OpenSSL DSA method",
683 .pkey_flags = ASN1_PKEY_ALIAS 683
684 }, 684 .pub_decode = dsa_pub_decode,
685 685 .pub_encode = dsa_pub_encode,
686 { 686 .pub_cmp = dsa_pub_cmp,
687 .pkey_id = EVP_PKEY_DSA1, 687 .pub_print = dsa_pub_print,
688 .pkey_base_id = EVP_PKEY_DSA, 688
689 .pkey_flags = ASN1_PKEY_ALIAS 689 .priv_decode = dsa_priv_decode,
690 }, 690 .priv_encode = dsa_priv_encode,
691 691 .priv_print = dsa_priv_print,
692 { 692
693 .pkey_id = EVP_PKEY_DSA4, 693 .pkey_size = dsa_size,
694 .pkey_base_id = EVP_PKEY_DSA, 694 .pkey_bits = dsa_bits,
695 .pkey_flags = ASN1_PKEY_ALIAS 695 .pkey_security_bits = dsa_security_bits,
696 }, 696
697 697 .param_decode = dsa_param_decode,
698 { 698 .param_encode = dsa_param_encode,
699 .pkey_id = EVP_PKEY_DSA3, 699 .param_missing = dsa_missing_parameters,
700 .pkey_base_id = EVP_PKEY_DSA, 700 .param_copy = dsa_copy_parameters,
701 .pkey_flags = ASN1_PKEY_ALIAS 701 .param_cmp = dsa_cmp_parameters,
702 }, 702 .param_print = dsa_param_print,
703 703 .sig_print = dsa_sig_print,
704 { 704
705 .pkey_id = EVP_PKEY_DSA, 705 .pkey_free = dsa_free,
706 .pkey_base_id = EVP_PKEY_DSA, 706 .pkey_ctrl = dsa_pkey_ctrl,
707 707 .old_priv_decode = old_dsa_priv_decode,
708 .pem_str = "DSA", 708 .old_priv_encode = old_dsa_priv_encode
709 .info = "OpenSSL DSA method", 709};
710 710
711 .pub_decode = dsa_pub_decode, 711const EVP_PKEY_ASN1_METHOD dsa1_asn1_meth = {
712 .pub_encode = dsa_pub_encode, 712 .pkey_id = EVP_PKEY_DSA1,
713 .pub_cmp = dsa_pub_cmp, 713 .pkey_base_id = EVP_PKEY_DSA,
714 .pub_print = dsa_pub_print, 714 .pkey_flags = ASN1_PKEY_ALIAS,
715 715};
716 .priv_decode = dsa_priv_decode, 716
717 .priv_encode = dsa_priv_encode, 717const EVP_PKEY_ASN1_METHOD dsa2_asn1_meth = {
718 .priv_print = dsa_priv_print, 718 .pkey_id = EVP_PKEY_DSA2,
719 719 .pkey_base_id = EVP_PKEY_DSA,
720 .pkey_size = dsa_size, 720 .pkey_flags = ASN1_PKEY_ALIAS,
721 .pkey_bits = dsa_bits, 721};
722 .pkey_security_bits = dsa_security_bits, 722
723 723const EVP_PKEY_ASN1_METHOD dsa3_asn1_meth = {
724 .param_decode = dsa_param_decode, 724 .pkey_id = EVP_PKEY_DSA3,
725 .param_encode = dsa_param_encode, 725 .pkey_base_id = EVP_PKEY_DSA,
726 .param_missing = dsa_missing_parameters, 726 .pkey_flags = ASN1_PKEY_ALIAS,
727 .param_copy = dsa_copy_parameters, 727};
728 .param_cmp = dsa_cmp_parameters, 728
729 .param_print = dsa_param_print, 729const EVP_PKEY_ASN1_METHOD dsa4_asn1_meth = {
730 .sig_print = dsa_sig_print, 730 .pkey_id = EVP_PKEY_DSA4,
731 731 .pkey_base_id = EVP_PKEY_DSA,
732 .pkey_free = dsa_free, 732 .pkey_flags = ASN1_PKEY_ALIAS,
733 .pkey_ctrl = dsa_pkey_ctrl,
734 .old_priv_decode = old_dsa_priv_decode,
735 .old_priv_encode = old_dsa_priv_encode
736 }
737}; 733};
diff --git a/src/lib/libcrypto/evp/p_lib.c b/src/lib/libcrypto/evp/p_lib.c
index b64977bab8..f46666a008 100644
--- a/src/lib/libcrypto/evp/p_lib.c
+++ b/src/lib/libcrypto/evp/p_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: p_lib.c,v 1.52 2024/01/01 15:23:00 tb Exp $ */ 1/* $OpenBSD: p_lib.c,v 1.53 2024/01/04 16:41:56 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -133,33 +133,40 @@
133 133
134extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth; 134extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth;
135extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth; 135extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth;
136extern const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[]; 136extern const EVP_PKEY_ASN1_METHOD dsa_asn1_meth;
137extern const EVP_PKEY_ASN1_METHOD dsa1_asn1_meth;
138extern const EVP_PKEY_ASN1_METHOD dsa2_asn1_meth;
139extern const EVP_PKEY_ASN1_METHOD dsa3_asn1_meth;
140extern const EVP_PKEY_ASN1_METHOD dsa4_asn1_meth;
137extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth; 141extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth;
138extern const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth; 142extern const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth;
139extern const EVP_PKEY_ASN1_METHOD gostimit_asn1_meth; 143extern const EVP_PKEY_ASN1_METHOD gostimit_asn1_meth;
140extern const EVP_PKEY_ASN1_METHOD gostr01_asn1_meths[]; 144extern const EVP_PKEY_ASN1_METHOD gostr01_asn1_meth;
145extern const EVP_PKEY_ASN1_METHOD gostr12_256_asn1_meth;
146extern const EVP_PKEY_ASN1_METHOD gostr12_512_asn1_meth;
141extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth; 147extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth;
142extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[]; 148extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meth;
149extern const EVP_PKEY_ASN1_METHOD rsa2_asn1_meth;
143extern const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth; 150extern const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth;
144extern const EVP_PKEY_ASN1_METHOD x25519_asn1_meth; 151extern const EVP_PKEY_ASN1_METHOD x25519_asn1_meth;
145 152
146static const EVP_PKEY_ASN1_METHOD *asn1_methods[] = { 153static const EVP_PKEY_ASN1_METHOD *asn1_methods[] = {
147 &cmac_asn1_meth, 154 &cmac_asn1_meth,
148 &dh_asn1_meth, 155 &dh_asn1_meth,
149 &dsa_asn1_meths[0], 156 &dsa_asn1_meth,
150 &dsa_asn1_meths[1], 157 &dsa1_asn1_meth,
151 &dsa_asn1_meths[2], 158 &dsa2_asn1_meth,
152 &dsa_asn1_meths[3], 159 &dsa3_asn1_meth,
153 &dsa_asn1_meths[4], 160 &dsa4_asn1_meth,
154 &eckey_asn1_meth, 161 &eckey_asn1_meth,
155 &ed25519_asn1_meth, 162 &ed25519_asn1_meth,
156 &gostimit_asn1_meth, 163 &gostimit_asn1_meth,
157 &gostr01_asn1_meths[0], 164 &gostr01_asn1_meth,
158 &gostr01_asn1_meths[1], 165 &gostr12_256_asn1_meth,
159 &gostr01_asn1_meths[2], 166 &gostr12_512_asn1_meth,
160 &hmac_asn1_meth, 167 &hmac_asn1_meth,
161 &rsa_asn1_meths[0], 168 &rsa_asn1_meth,
162 &rsa_asn1_meths[1], 169 &rsa2_asn1_meth,
163 &rsa_pss_asn1_meth, 170 &rsa_pss_asn1_meth,
164 &x25519_asn1_meth, 171 &x25519_asn1_meth,
165}; 172};
diff --git a/src/lib/libcrypto/gost/gostr341001_ameth.c b/src/lib/libcrypto/gost/gostr341001_ameth.c
index fc3bce412a..f917827f7a 100644
--- a/src/lib/libcrypto/gost/gostr341001_ameth.c
+++ b/src/lib/libcrypto/gost/gostr341001_ameth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: gostr341001_ameth.c,v 1.22 2023/12/28 21:53:09 tb Exp $ */ 1/* $OpenBSD: gostr341001_ameth.c,v 1.23 2024/01/04 16:41:56 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
4 * Copyright (c) 2005-2006 Cryptocom LTD 4 * Copyright (c) 2005-2006 Cryptocom LTD
@@ -682,46 +682,46 @@ pkey_ctrl_gost01(EVP_PKEY *pkey, int op, long arg1, void *arg2)
682 return 1; 682 return 1;
683} 683}
684 684
685const EVP_PKEY_ASN1_METHOD gostr01_asn1_meths[] = { 685const EVP_PKEY_ASN1_METHOD gostr01_asn1_meth = {
686 { 686 .pkey_id = EVP_PKEY_GOSTR01,
687 .pkey_id = EVP_PKEY_GOSTR01, 687 .pkey_base_id = EVP_PKEY_GOSTR01,
688 .pkey_base_id = EVP_PKEY_GOSTR01, 688 .pkey_flags = ASN1_PKEY_SIGPARAM_NULL,
689 .pkey_flags = ASN1_PKEY_SIGPARAM_NULL, 689
690 690 .pem_str = "GOST2001",
691 .pem_str = "GOST2001", 691 .info = "GOST R 34.10-2001",
692 .info = "GOST R 34.10-2001", 692
693 693 .pkey_free = pkey_free_gost01,
694 .pkey_free = pkey_free_gost01, 694 .pkey_ctrl = pkey_ctrl_gost01,
695 .pkey_ctrl = pkey_ctrl_gost01, 695
696 696 .priv_decode = priv_decode_gost01,
697 .priv_decode = priv_decode_gost01, 697 .priv_encode = priv_encode_gost01,
698 .priv_encode = priv_encode_gost01, 698 .priv_print = priv_print_gost01,
699 .priv_print = priv_print_gost01, 699
700 700 .param_decode = param_decode_gost01,
701 .param_decode = param_decode_gost01, 701 .param_encode = param_encode_gost01,
702 .param_encode = param_encode_gost01, 702 .param_missing = param_missing_gost01,
703 .param_missing = param_missing_gost01, 703 .param_copy = param_copy_gost01,
704 .param_copy = param_copy_gost01, 704 .param_cmp = param_cmp_gost01,
705 .param_cmp = param_cmp_gost01, 705 .param_print = param_print_gost01,
706 .param_print = param_print_gost01, 706
707 707 .pub_decode = pub_decode_gost01,
708 .pub_decode = pub_decode_gost01, 708 .pub_encode = pub_encode_gost01,
709 .pub_encode = pub_encode_gost01, 709 .pub_cmp = pub_cmp_gost01,
710 .pub_cmp = pub_cmp_gost01, 710 .pub_print = pub_print_gost01,
711 .pub_print = pub_print_gost01, 711 .pkey_size = pkey_size_gost01,
712 .pkey_size = pkey_size_gost01, 712 .pkey_bits = pkey_bits_gost01,
713 .pkey_bits = pkey_bits_gost01, 713};
714 }, 714
715 { 715const EVP_PKEY_ASN1_METHOD gostr12_256_asn1_meth = {
716 .pkey_id = EVP_PKEY_GOSTR12_256, 716 .pkey_id = EVP_PKEY_GOSTR12_256,
717 .pkey_base_id = EVP_PKEY_GOSTR01, 717 .pkey_base_id = EVP_PKEY_GOSTR01,
718 .pkey_flags = ASN1_PKEY_ALIAS 718 .pkey_flags = ASN1_PKEY_ALIAS,
719 }, 719};
720 { 720
721 .pkey_id = EVP_PKEY_GOSTR12_512, 721const EVP_PKEY_ASN1_METHOD gostr12_512_asn1_meth = {
722 .pkey_base_id = EVP_PKEY_GOSTR01, 722 .pkey_id = EVP_PKEY_GOSTR12_512,
723 .pkey_flags = ASN1_PKEY_ALIAS 723 .pkey_base_id = EVP_PKEY_GOSTR01,
724 }, 724 .pkey_flags = ASN1_PKEY_ALIAS,
725}; 725};
726 726
727#endif 727#endif
diff --git a/src/lib/libcrypto/rsa/rsa_ameth.c b/src/lib/libcrypto/rsa/rsa_ameth.c
index 2266f0cbd5..918e7b8901 100644
--- a/src/lib/libcrypto/rsa/rsa_ameth.c
+++ b/src/lib/libcrypto/rsa/rsa_ameth.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: rsa_ameth.c,v 1.54 2024/01/01 15:43:02 tb Exp $ */ 1/* $OpenBSD: rsa_ameth.c,v 1.55 2024/01/04 16:41:56 tb Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 2006. 3 * project 2006.
4 */ 4 */
@@ -1148,47 +1148,45 @@ rsa_cms_encrypt(CMS_RecipientInfo *ri)
1148} 1148}
1149#endif 1149#endif
1150 1150
1151const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[] = { 1151const EVP_PKEY_ASN1_METHOD rsa_asn1_meth = {
1152 { 1152 .pkey_id = EVP_PKEY_RSA,
1153 .pkey_id = EVP_PKEY_RSA, 1153 .pkey_base_id = EVP_PKEY_RSA,
1154 .pkey_base_id = EVP_PKEY_RSA, 1154 .pkey_flags = ASN1_PKEY_SIGPARAM_NULL,
1155 .pkey_flags = ASN1_PKEY_SIGPARAM_NULL,
1156 1155
1157 .pem_str = "RSA", 1156 .pem_str = "RSA",
1158 .info = "OpenSSL RSA method", 1157 .info = "OpenSSL RSA method",
1159 1158
1160 .pub_decode = rsa_pub_decode, 1159 .pub_decode = rsa_pub_decode,
1161 .pub_encode = rsa_pub_encode, 1160 .pub_encode = rsa_pub_encode,
1162 .pub_cmp = rsa_pub_cmp, 1161 .pub_cmp = rsa_pub_cmp,
1163 .pub_print = rsa_pub_print, 1162 .pub_print = rsa_pub_print,
1164 1163
1165 .priv_decode = rsa_priv_decode, 1164 .priv_decode = rsa_priv_decode,
1166 .priv_encode = rsa_priv_encode, 1165 .priv_encode = rsa_priv_encode,
1167 .priv_print = rsa_priv_print, 1166 .priv_print = rsa_priv_print,
1168 1167
1169 .pkey_size = rsa_size, 1168 .pkey_size = rsa_size,
1170 .pkey_bits = rsa_bits, 1169 .pkey_bits = rsa_bits,
1171 .pkey_security_bits = rsa_security_bits, 1170 .pkey_security_bits = rsa_security_bits,
1172 1171
1173 .sig_print = rsa_sig_print, 1172 .sig_print = rsa_sig_print,
1174 1173
1175 .pkey_free = rsa_free, 1174 .pkey_free = rsa_free,
1176 .pkey_ctrl = rsa_pkey_ctrl, 1175 .pkey_ctrl = rsa_pkey_ctrl,
1177 .old_priv_decode = old_rsa_priv_decode, 1176 .old_priv_decode = old_rsa_priv_decode,
1178 .old_priv_encode = old_rsa_priv_encode, 1177 .old_priv_encode = old_rsa_priv_encode,
1179 .item_verify = rsa_item_verify, 1178 .item_verify = rsa_item_verify,
1180 .item_sign = rsa_item_sign, 1179 .item_sign = rsa_item_sign,
1181 1180
1182 .pkey_check = rsa_pkey_check, 1181 .pkey_check = rsa_pkey_check,
1183 }, 1182};
1184 1183
1185 { 1184const EVP_PKEY_ASN1_METHOD rsa2_asn1_meth = {
1186 .pkey_id = EVP_PKEY_RSA2, 1185 .pkey_id = EVP_PKEY_RSA2,
1187 .pkey_base_id = EVP_PKEY_RSA, 1186 .pkey_base_id = EVP_PKEY_RSA,
1188 .pkey_flags = ASN1_PKEY_ALIAS, 1187 .pkey_flags = ASN1_PKEY_ALIAS,
1189 1188
1190 .pkey_check = rsa_pkey_check, 1189 .pkey_check = rsa_pkey_check,
1191 },
1192}; 1190};
1193 1191
1194const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth = { 1192const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth = {