diff options
-rw-r--r-- | src/lib/libcrypto/dsa/dsa_ameth.c | 118 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/p_lib.c | 35 | ||||
-rw-r--r-- | src/lib/libcrypto/gost/gostr341001_ameth.c | 82 | ||||
-rw-r--r-- | src/lib/libcrypto/rsa/rsa_ameth.c | 64 |
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 */ | 677 | const EVP_PKEY_ASN1_METHOD dsa_asn1_meth = { |
678 | 678 | .pkey_id = EVP_PKEY_DSA, | |
679 | const 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, | 711 | const 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, | 717 | const 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 | 723 | const 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, | 729 | const 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 | ||
134 | extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth; | 134 | extern const EVP_PKEY_ASN1_METHOD cmac_asn1_meth; |
135 | extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth; | 135 | extern const EVP_PKEY_ASN1_METHOD dh_asn1_meth; |
136 | extern const EVP_PKEY_ASN1_METHOD dsa_asn1_meths[]; | 136 | extern const EVP_PKEY_ASN1_METHOD dsa_asn1_meth; |
137 | extern const EVP_PKEY_ASN1_METHOD dsa1_asn1_meth; | ||
138 | extern const EVP_PKEY_ASN1_METHOD dsa2_asn1_meth; | ||
139 | extern const EVP_PKEY_ASN1_METHOD dsa3_asn1_meth; | ||
140 | extern const EVP_PKEY_ASN1_METHOD dsa4_asn1_meth; | ||
137 | extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth; | 141 | extern const EVP_PKEY_ASN1_METHOD eckey_asn1_meth; |
138 | extern const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth; | 142 | extern const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth; |
139 | extern const EVP_PKEY_ASN1_METHOD gostimit_asn1_meth; | 143 | extern const EVP_PKEY_ASN1_METHOD gostimit_asn1_meth; |
140 | extern const EVP_PKEY_ASN1_METHOD gostr01_asn1_meths[]; | 144 | extern const EVP_PKEY_ASN1_METHOD gostr01_asn1_meth; |
145 | extern const EVP_PKEY_ASN1_METHOD gostr12_256_asn1_meth; | ||
146 | extern const EVP_PKEY_ASN1_METHOD gostr12_512_asn1_meth; | ||
141 | extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth; | 147 | extern const EVP_PKEY_ASN1_METHOD hmac_asn1_meth; |
142 | extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[]; | 148 | extern const EVP_PKEY_ASN1_METHOD rsa_asn1_meth; |
149 | extern const EVP_PKEY_ASN1_METHOD rsa2_asn1_meth; | ||
143 | extern const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth; | 150 | extern const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth; |
144 | extern const EVP_PKEY_ASN1_METHOD x25519_asn1_meth; | 151 | extern const EVP_PKEY_ASN1_METHOD x25519_asn1_meth; |
145 | 152 | ||
146 | static const EVP_PKEY_ASN1_METHOD *asn1_methods[] = { | 153 | static 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 | ||
685 | const EVP_PKEY_ASN1_METHOD gostr01_asn1_meths[] = { | 685 | const 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 | { | 715 | const 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, | 721 | const 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 | ||
1151 | const EVP_PKEY_ASN1_METHOD rsa_asn1_meths[] = { | 1151 | const 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 | { | 1184 | const 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 | ||
1194 | const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth = { | 1192 | const EVP_PKEY_ASN1_METHOD rsa_pss_asn1_meth = { |