diff options
author | tb <> | 2024-03-02 10:15:16 +0000 |
---|---|---|
committer | tb <> | 2024-03-02 10:15:16 +0000 |
commit | b88286b09abf67a2644f5e950fb27492f55b3b3e (patch) | |
tree | b64f2e46e44a68cbc68c3942179d7a04de1089b4 | |
parent | d7a8734f3bc8f273ccc2d8c7425ebf2f744118af (diff) | |
download | openbsd-b88286b09abf67a2644f5e950fb27492f55b3b3e.tar.gz openbsd-b88286b09abf67a2644f5e950fb27492f55b3b3e.tar.bz2 openbsd-b88286b09abf67a2644f5e950fb27492f55b3b3e.zip |
Remove a lot of PKCS12 garbage from the public API
PKCS12 is a hot mess. Please participate in the survey at the end of
https://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html to increase its
credibility and unanimity.
ok jsing
-rw-r--r-- | src/lib/libcrypto/Symbols.list | 39 | ||||
-rw-r--r-- | src/lib/libcrypto/Symbols.namespace | 34 | ||||
-rw-r--r-- | src/lib/libcrypto/evp/evp_pbe.c | 6 | ||||
-rw-r--r-- | src/lib/libcrypto/hidden/openssl/pkcs12.h | 37 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_add.c | 6 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_asn.c | 10 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_decr.c | 7 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_key.c | 5 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_mutl.c | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_p8d.c | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_p8e.c | 3 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/pkcs12.h | 71 | ||||
-rw-r--r-- | src/lib/libcrypto/pkcs12/pkcs12_local.h | 75 |
13 files changed, 94 insertions, 205 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list index 84a38a342d..88c618de26 100644 --- a/src/lib/libcrypto/Symbols.list +++ b/src/lib/libcrypto/Symbols.list | |||
@@ -1930,21 +1930,7 @@ PEM_write_bio_X509_AUX | |||
1930 | PEM_write_bio_X509_CRL | 1930 | PEM_write_bio_X509_CRL |
1931 | PEM_write_bio_X509_REQ | 1931 | PEM_write_bio_X509_REQ |
1932 | PEM_write_bio_X509_REQ_NEW | 1932 | PEM_write_bio_X509_REQ_NEW |
1933 | PKCS12_AUTHSAFES_it | ||
1934 | PKCS12_BAGS_free | ||
1935 | PKCS12_BAGS_it | ||
1936 | PKCS12_BAGS_new | ||
1937 | PKCS12_MAC_DATA_free | ||
1938 | PKCS12_MAC_DATA_it | ||
1939 | PKCS12_MAC_DATA_new | ||
1940 | PKCS12_PBE_add | 1933 | PKCS12_PBE_add |
1941 | PKCS12_PBE_keyivgen | ||
1942 | PKCS12_SAFEBAGS_it | ||
1943 | PKCS12_SAFEBAG_create0_p8inf | ||
1944 | PKCS12_SAFEBAG_create0_pkcs8 | ||
1945 | PKCS12_SAFEBAG_create_cert | ||
1946 | PKCS12_SAFEBAG_create_crl | ||
1947 | PKCS12_SAFEBAG_create_pkcs8_encrypt | ||
1948 | PKCS12_SAFEBAG_free | 1934 | PKCS12_SAFEBAG_free |
1949 | PKCS12_SAFEBAG_get0_attr | 1935 | PKCS12_SAFEBAG_get0_attr |
1950 | PKCS12_SAFEBAG_get0_attrs | 1936 | PKCS12_SAFEBAG_get0_attrs |
@@ -1958,38 +1944,17 @@ PKCS12_SAFEBAG_get_bag_nid | |||
1958 | PKCS12_SAFEBAG_get_nid | 1944 | PKCS12_SAFEBAG_get_nid |
1959 | PKCS12_SAFEBAG_it | 1945 | PKCS12_SAFEBAG_it |
1960 | PKCS12_SAFEBAG_new | 1946 | PKCS12_SAFEBAG_new |
1961 | PKCS12_add_CSPName_asc | ||
1962 | PKCS12_add_cert | ||
1963 | PKCS12_add_friendlyname_asc | ||
1964 | PKCS12_add_friendlyname_uni | ||
1965 | PKCS12_add_key | ||
1966 | PKCS12_add_localkeyid | ||
1967 | PKCS12_add_safe | ||
1968 | PKCS12_add_safes | ||
1969 | PKCS12_create | 1947 | PKCS12_create |
1970 | PKCS12_decrypt_skey | 1948 | PKCS12_decrypt_skey |
1971 | PKCS12_free | 1949 | PKCS12_free |
1972 | PKCS12_gen_mac | ||
1973 | PKCS12_get0_mac | 1950 | PKCS12_get0_mac |
1974 | PKCS12_get_attr_gen | ||
1975 | PKCS12_get_friendlyname | 1951 | PKCS12_get_friendlyname |
1976 | PKCS12_init | ||
1977 | PKCS12_it | 1952 | PKCS12_it |
1978 | PKCS12_item_decrypt_d2i | ||
1979 | PKCS12_item_i2d_encrypt | ||
1980 | PKCS12_item_pack_safebag | ||
1981 | PKCS12_key_gen_asc | ||
1982 | PKCS12_key_gen_uni | ||
1983 | PKCS12_mac_present | 1953 | PKCS12_mac_present |
1984 | PKCS12_new | 1954 | PKCS12_new |
1985 | PKCS12_newpass | 1955 | PKCS12_newpass |
1986 | PKCS12_pack_authsafes | ||
1987 | PKCS12_pack_p7data | ||
1988 | PKCS12_pack_p7encdata | ||
1989 | PKCS12_parse | 1956 | PKCS12_parse |
1990 | PKCS12_pbe_crypt | ||
1991 | PKCS12_set_mac | 1957 | PKCS12_set_mac |
1992 | PKCS12_setup_mac | ||
1993 | PKCS12_unpack_authsafes | 1958 | PKCS12_unpack_authsafes |
1994 | PKCS12_unpack_p7data | 1959 | PKCS12_unpack_p7data |
1995 | PKCS12_unpack_p7encdata | 1960 | PKCS12_unpack_p7encdata |
@@ -3221,8 +3186,6 @@ d2i_PBE2PARAM | |||
3221 | d2i_PBEPARAM | 3186 | d2i_PBEPARAM |
3222 | d2i_PBKDF2PARAM | 3187 | d2i_PBKDF2PARAM |
3223 | d2i_PKCS12 | 3188 | d2i_PKCS12 |
3224 | d2i_PKCS12_BAGS | ||
3225 | d2i_PKCS12_MAC_DATA | ||
3226 | d2i_PKCS12_SAFEBAG | 3189 | d2i_PKCS12_SAFEBAG |
3227 | d2i_PKCS12_bio | 3190 | d2i_PKCS12_bio |
3228 | d2i_PKCS12_fp | 3191 | d2i_PKCS12_fp |
@@ -3418,8 +3381,6 @@ i2d_PBE2PARAM | |||
3418 | i2d_PBEPARAM | 3381 | i2d_PBEPARAM |
3419 | i2d_PBKDF2PARAM | 3382 | i2d_PBKDF2PARAM |
3420 | i2d_PKCS12 | 3383 | i2d_PKCS12 |
3421 | i2d_PKCS12_BAGS | ||
3422 | i2d_PKCS12_MAC_DATA | ||
3423 | i2d_PKCS12_SAFEBAG | 3384 | i2d_PKCS12_SAFEBAG |
3424 | i2d_PKCS12_bio | 3385 | i2d_PKCS12_bio |
3425 | i2d_PKCS12_fp | 3386 | i2d_PKCS12_fp |
diff --git a/src/lib/libcrypto/Symbols.namespace b/src/lib/libcrypto/Symbols.namespace index d63bb91c12..a540b31048 100644 --- a/src/lib/libcrypto/Symbols.namespace +++ b/src/lib/libcrypto/Symbols.namespace | |||
@@ -136,40 +136,18 @@ _libre_PKCS12_SAFEBAG_get1_crl | |||
136 | _libre_PKCS8_get_attr | 136 | _libre_PKCS8_get_attr |
137 | _libre_PKCS12_mac_present | 137 | _libre_PKCS12_mac_present |
138 | _libre_PKCS12_get0_mac | 138 | _libre_PKCS12_get0_mac |
139 | _libre_PKCS12_SAFEBAG_create_cert | ||
140 | _libre_PKCS12_SAFEBAG_create_crl | ||
141 | _libre_PKCS12_SAFEBAG_create0_p8inf | ||
142 | _libre_PKCS12_SAFEBAG_create0_pkcs8 | ||
143 | _libre_PKCS12_SAFEBAG_create_pkcs8_encrypt | ||
144 | _libre_PKCS12_SAFEBAG_get0_p8inf | 139 | _libre_PKCS12_SAFEBAG_get0_p8inf |
145 | _libre_PKCS12_SAFEBAG_get0_pkcs8 | 140 | _libre_PKCS12_SAFEBAG_get0_pkcs8 |
146 | _libre_PKCS12_SAFEBAG_get0_safes | 141 | _libre_PKCS12_SAFEBAG_get0_safes |
147 | _libre_PKCS12_SAFEBAG_get0_type | 142 | _libre_PKCS12_SAFEBAG_get0_type |
148 | _libre_PKCS12_item_pack_safebag | ||
149 | _libre_PKCS8_decrypt | 143 | _libre_PKCS8_decrypt |
150 | _libre_PKCS12_decrypt_skey | 144 | _libre_PKCS12_decrypt_skey |
151 | _libre_PKCS8_encrypt | 145 | _libre_PKCS8_encrypt |
152 | _libre_PKCS12_pack_p7data | ||
153 | _libre_PKCS12_unpack_p7data | 146 | _libre_PKCS12_unpack_p7data |
154 | _libre_PKCS12_pack_p7encdata | ||
155 | _libre_PKCS12_unpack_p7encdata | 147 | _libre_PKCS12_unpack_p7encdata |
156 | _libre_PKCS12_pack_authsafes | ||
157 | _libre_PKCS12_unpack_authsafes | 148 | _libre_PKCS12_unpack_authsafes |
158 | _libre_PKCS12_add_localkeyid | ||
159 | _libre_PKCS12_add_friendlyname_asc | ||
160 | _libre_PKCS12_add_CSPName_asc | ||
161 | _libre_PKCS12_add_friendlyname_uni | ||
162 | _libre_PKCS8_add_keyusage | 149 | _libre_PKCS8_add_keyusage |
163 | _libre_PKCS12_get_attr_gen | ||
164 | _libre_PKCS12_get_friendlyname | 150 | _libre_PKCS12_get_friendlyname |
165 | _libre_PKCS12_pbe_crypt | ||
166 | _libre_PKCS12_item_decrypt_d2i | ||
167 | _libre_PKCS12_item_i2d_encrypt | ||
168 | _libre_PKCS12_init | ||
169 | _libre_PKCS12_key_gen_asc | ||
170 | _libre_PKCS12_key_gen_uni | ||
171 | _libre_PKCS12_PBE_keyivgen | ||
172 | _libre_PKCS12_gen_mac | ||
173 | _libre_PKCS12_verify_mac | 151 | _libre_PKCS12_verify_mac |
174 | _libre_PKCS12_set_mac | 152 | _libre_PKCS12_set_mac |
175 | _libre_PKCS12_setup_mac | 153 | _libre_PKCS12_setup_mac |
@@ -179,25 +157,13 @@ _libre_PKCS12_new | |||
179 | _libre_PKCS12_free | 157 | _libre_PKCS12_free |
180 | _libre_d2i_PKCS12 | 158 | _libre_d2i_PKCS12 |
181 | _libre_i2d_PKCS12 | 159 | _libre_i2d_PKCS12 |
182 | _libre_PKCS12_MAC_DATA_new | ||
183 | _libre_PKCS12_MAC_DATA_free | ||
184 | _libre_d2i_PKCS12_MAC_DATA | ||
185 | _libre_i2d_PKCS12_MAC_DATA | ||
186 | _libre_PKCS12_SAFEBAG_new | 160 | _libre_PKCS12_SAFEBAG_new |
187 | _libre_PKCS12_SAFEBAG_free | 161 | _libre_PKCS12_SAFEBAG_free |
188 | _libre_d2i_PKCS12_SAFEBAG | 162 | _libre_d2i_PKCS12_SAFEBAG |
189 | _libre_i2d_PKCS12_SAFEBAG | 163 | _libre_i2d_PKCS12_SAFEBAG |
190 | _libre_PKCS12_BAGS_new | ||
191 | _libre_PKCS12_BAGS_free | ||
192 | _libre_d2i_PKCS12_BAGS | ||
193 | _libre_i2d_PKCS12_BAGS | ||
194 | _libre_PKCS12_PBE_add | 164 | _libre_PKCS12_PBE_add |
195 | _libre_PKCS12_parse | 165 | _libre_PKCS12_parse |
196 | _libre_PKCS12_create | 166 | _libre_PKCS12_create |
197 | _libre_PKCS12_add_cert | ||
198 | _libre_PKCS12_add_key | ||
199 | _libre_PKCS12_add_safe | ||
200 | _libre_PKCS12_add_safes | ||
201 | _libre_i2d_PKCS12_bio | 167 | _libre_i2d_PKCS12_bio |
202 | _libre_i2d_PKCS12_fp | 168 | _libre_i2d_PKCS12_fp |
203 | _libre_d2i_PKCS12_bio | 169 | _libre_d2i_PKCS12_bio |
diff --git a/src/lib/libcrypto/evp/evp_pbe.c b/src/lib/libcrypto/evp/evp_pbe.c index e33f2cb08f..3f1f1ec9a4 100644 --- a/src/lib/libcrypto/evp/evp_pbe.c +++ b/src/lib/libcrypto/evp/evp_pbe.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: evp_pbe.c,v 1.43 2024/03/02 10:06:48 tb Exp $ */ | 1 | /* $OpenBSD: evp_pbe.c,v 1.44 2024/03/02 10:15:15 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -69,8 +69,12 @@ | |||
69 | 69 | ||
70 | #include "evp_local.h" | 70 | #include "evp_local.h" |
71 | #include "hmac_local.h" | 71 | #include "hmac_local.h" |
72 | #include "pkcs12_local.h" | ||
72 | 73 | ||
73 | /* Password based encryption (PBE) functions */ | 74 | /* Password based encryption (PBE) functions */ |
75 | int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, | ||
76 | ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md_type, | ||
77 | int en_de); | ||
74 | 78 | ||
75 | static const struct pbe_config { | 79 | static const struct pbe_config { |
76 | int pbe_nid; | 80 | int pbe_nid; |
diff --git a/src/lib/libcrypto/hidden/openssl/pkcs12.h b/src/lib/libcrypto/hidden/openssl/pkcs12.h index 9a2dffa354..4c37e73cc4 100644 --- a/src/lib/libcrypto/hidden/openssl/pkcs12.h +++ b/src/lib/libcrypto/hidden/openssl/pkcs12.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pkcs12.h,v 1.2 2023/07/05 21:14:54 bcook Exp $ */ | 1 | /* $OpenBSD: pkcs12.h,v 1.3 2024/03/02 10:15:16 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2022 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2022 Bob Beck <beck@openbsd.org> |
4 | * | 4 | * |
@@ -34,68 +34,33 @@ LCRYPTO_USED(PKCS12_SAFEBAG_get1_crl); | |||
34 | LCRYPTO_USED(PKCS8_get_attr); | 34 | LCRYPTO_USED(PKCS8_get_attr); |
35 | LCRYPTO_USED(PKCS12_mac_present); | 35 | LCRYPTO_USED(PKCS12_mac_present); |
36 | LCRYPTO_USED(PKCS12_get0_mac); | 36 | LCRYPTO_USED(PKCS12_get0_mac); |
37 | LCRYPTO_USED(PKCS12_SAFEBAG_create_cert); | ||
38 | LCRYPTO_USED(PKCS12_SAFEBAG_create_crl); | ||
39 | LCRYPTO_USED(PKCS12_SAFEBAG_create0_p8inf); | ||
40 | LCRYPTO_USED(PKCS12_SAFEBAG_create0_pkcs8); | ||
41 | LCRYPTO_USED(PKCS12_SAFEBAG_create_pkcs8_encrypt); | ||
42 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_p8inf); | 37 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_p8inf); |
43 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_pkcs8); | 38 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_pkcs8); |
44 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_safes); | 39 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_safes); |
45 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_type); | 40 | LCRYPTO_USED(PKCS12_SAFEBAG_get0_type); |
46 | LCRYPTO_USED(PKCS12_item_pack_safebag); | ||
47 | LCRYPTO_USED(PKCS8_decrypt); | 41 | LCRYPTO_USED(PKCS8_decrypt); |
48 | LCRYPTO_USED(PKCS12_decrypt_skey); | 42 | LCRYPTO_USED(PKCS12_decrypt_skey); |
49 | LCRYPTO_USED(PKCS8_encrypt); | 43 | LCRYPTO_USED(PKCS8_encrypt); |
50 | LCRYPTO_USED(PKCS12_pack_p7data); | ||
51 | LCRYPTO_USED(PKCS12_unpack_p7data); | 44 | LCRYPTO_USED(PKCS12_unpack_p7data); |
52 | LCRYPTO_USED(PKCS12_pack_p7encdata); | ||
53 | LCRYPTO_USED(PKCS12_unpack_p7encdata); | 45 | LCRYPTO_USED(PKCS12_unpack_p7encdata); |
54 | LCRYPTO_USED(PKCS12_pack_authsafes); | ||
55 | LCRYPTO_USED(PKCS12_unpack_authsafes); | 46 | LCRYPTO_USED(PKCS12_unpack_authsafes); |
56 | LCRYPTO_USED(PKCS12_add_localkeyid); | ||
57 | LCRYPTO_USED(PKCS12_add_friendlyname_asc); | ||
58 | LCRYPTO_USED(PKCS12_add_CSPName_asc); | ||
59 | LCRYPTO_USED(PKCS12_add_friendlyname_uni); | ||
60 | LCRYPTO_USED(PKCS8_add_keyusage); | 47 | LCRYPTO_USED(PKCS8_add_keyusage); |
61 | LCRYPTO_USED(PKCS12_get_attr_gen); | ||
62 | LCRYPTO_USED(PKCS12_get_friendlyname); | 48 | LCRYPTO_USED(PKCS12_get_friendlyname); |
63 | LCRYPTO_USED(PKCS12_pbe_crypt); | ||
64 | LCRYPTO_USED(PKCS12_item_decrypt_d2i); | ||
65 | LCRYPTO_USED(PKCS12_item_i2d_encrypt); | ||
66 | LCRYPTO_USED(PKCS12_init); | ||
67 | LCRYPTO_USED(PKCS12_key_gen_asc); | ||
68 | LCRYPTO_USED(PKCS12_key_gen_uni); | ||
69 | LCRYPTO_USED(PKCS12_PBE_keyivgen); | ||
70 | LCRYPTO_USED(PKCS12_gen_mac); | ||
71 | LCRYPTO_USED(PKCS12_verify_mac); | 49 | LCRYPTO_USED(PKCS12_verify_mac); |
72 | LCRYPTO_USED(PKCS12_set_mac); | 50 | LCRYPTO_USED(PKCS12_set_mac); |
73 | LCRYPTO_USED(PKCS12_setup_mac); | ||
74 | LCRYPTO_USED(OPENSSL_asc2uni); | 51 | LCRYPTO_USED(OPENSSL_asc2uni); |
75 | LCRYPTO_USED(OPENSSL_uni2asc); | 52 | LCRYPTO_USED(OPENSSL_uni2asc); |
76 | LCRYPTO_USED(PKCS12_new); | 53 | LCRYPTO_USED(PKCS12_new); |
77 | LCRYPTO_USED(PKCS12_free); | 54 | LCRYPTO_USED(PKCS12_free); |
78 | LCRYPTO_USED(d2i_PKCS12); | 55 | LCRYPTO_USED(d2i_PKCS12); |
79 | LCRYPTO_USED(i2d_PKCS12); | 56 | LCRYPTO_USED(i2d_PKCS12); |
80 | LCRYPTO_USED(PKCS12_MAC_DATA_new); | ||
81 | LCRYPTO_USED(PKCS12_MAC_DATA_free); | ||
82 | LCRYPTO_USED(d2i_PKCS12_MAC_DATA); | ||
83 | LCRYPTO_USED(i2d_PKCS12_MAC_DATA); | ||
84 | LCRYPTO_USED(PKCS12_SAFEBAG_new); | 57 | LCRYPTO_USED(PKCS12_SAFEBAG_new); |
85 | LCRYPTO_USED(PKCS12_SAFEBAG_free); | 58 | LCRYPTO_USED(PKCS12_SAFEBAG_free); |
86 | LCRYPTO_USED(d2i_PKCS12_SAFEBAG); | 59 | LCRYPTO_USED(d2i_PKCS12_SAFEBAG); |
87 | LCRYPTO_USED(i2d_PKCS12_SAFEBAG); | 60 | LCRYPTO_USED(i2d_PKCS12_SAFEBAG); |
88 | LCRYPTO_USED(PKCS12_BAGS_new); | ||
89 | LCRYPTO_USED(PKCS12_BAGS_free); | ||
90 | LCRYPTO_USED(d2i_PKCS12_BAGS); | ||
91 | LCRYPTO_USED(i2d_PKCS12_BAGS); | ||
92 | LCRYPTO_USED(PKCS12_PBE_add); | 61 | LCRYPTO_USED(PKCS12_PBE_add); |
93 | LCRYPTO_USED(PKCS12_parse); | 62 | LCRYPTO_USED(PKCS12_parse); |
94 | LCRYPTO_USED(PKCS12_create); | 63 | LCRYPTO_USED(PKCS12_create); |
95 | LCRYPTO_USED(PKCS12_add_cert); | ||
96 | LCRYPTO_USED(PKCS12_add_key); | ||
97 | LCRYPTO_USED(PKCS12_add_safe); | ||
98 | LCRYPTO_USED(PKCS12_add_safes); | ||
99 | LCRYPTO_USED(i2d_PKCS12_bio); | 64 | LCRYPTO_USED(i2d_PKCS12_bio); |
100 | LCRYPTO_USED(i2d_PKCS12_fp); | 65 | LCRYPTO_USED(i2d_PKCS12_fp); |
101 | LCRYPTO_USED(d2i_PKCS12_bio); | 66 | LCRYPTO_USED(d2i_PKCS12_bio); |
diff --git a/src/lib/libcrypto/pkcs12/p12_add.c b/src/lib/libcrypto/pkcs12/p12_add.c index 8ce1fede74..dd72c99985 100644 --- a/src/lib/libcrypto/pkcs12/p12_add.c +++ b/src/lib/libcrypto/pkcs12/p12_add.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_add.c,v 1.23 2024/01/25 13:44:08 tb Exp $ */ | 1 | /* $OpenBSD: p12_add.c,v 1.24 2024/03/02 10:15:16 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -90,7 +90,6 @@ PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, int nid1, int nid2) | |||
90 | safebag->type = OBJ_nid2obj(nid2); | 90 | safebag->type = OBJ_nid2obj(nid2); |
91 | return safebag; | 91 | return safebag; |
92 | } | 92 | } |
93 | LCRYPTO_ALIAS(PKCS12_item_pack_safebag); | ||
94 | 93 | ||
95 | /* Turn a stack of SAFEBAGS into a PKCS#7 data Contentinfo */ | 94 | /* Turn a stack of SAFEBAGS into a PKCS#7 data Contentinfo */ |
96 | PKCS7 * | 95 | PKCS7 * |
@@ -118,7 +117,6 @@ err: | |||
118 | PKCS7_free(p7); | 117 | PKCS7_free(p7); |
119 | return NULL; | 118 | return NULL; |
120 | } | 119 | } |
121 | LCRYPTO_ALIAS(PKCS12_pack_p7data); | ||
122 | 120 | ||
123 | /* Unpack SAFEBAGS from PKCS#7 data ContentInfo */ | 121 | /* Unpack SAFEBAGS from PKCS#7 data ContentInfo */ |
124 | STACK_OF(PKCS12_SAFEBAG) * | 122 | STACK_OF(PKCS12_SAFEBAG) * |
@@ -181,7 +179,6 @@ err: | |||
181 | PKCS7_free(p7); | 179 | PKCS7_free(p7); |
182 | return NULL; | 180 | return NULL; |
183 | } | 181 | } |
184 | LCRYPTO_ALIAS(PKCS12_pack_p7encdata); | ||
185 | 182 | ||
186 | STACK_OF(PKCS12_SAFEBAG) * | 183 | STACK_OF(PKCS12_SAFEBAG) * |
187 | PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, int passlen) | 184 | PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, int passlen) |
@@ -214,7 +211,6 @@ PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes) | |||
214 | return 1; | 211 | return 1; |
215 | return 0; | 212 | return 0; |
216 | } | 213 | } |
217 | LCRYPTO_ALIAS(PKCS12_pack_authsafes); | ||
218 | 214 | ||
219 | STACK_OF(PKCS7) * | 215 | STACK_OF(PKCS7) * |
220 | PKCS12_unpack_authsafes(const PKCS12 *p12) | 216 | PKCS12_unpack_authsafes(const PKCS12 *p12) |
diff --git a/src/lib/libcrypto/pkcs12/p12_asn.c b/src/lib/libcrypto/pkcs12/p12_asn.c index a9decccb5b..e6078050be 100644 --- a/src/lib/libcrypto/pkcs12/p12_asn.c +++ b/src/lib/libcrypto/pkcs12/p12_asn.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_asn.c,v 1.14 2023/02/16 08:38:17 tb Exp $ */ | 1 | /* $OpenBSD: p12_asn.c,v 1.15 2024/03/02 10:15:16 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -170,28 +170,24 @@ d2i_PKCS12_MAC_DATA(PKCS12_MAC_DATA **a, const unsigned char **in, long len) | |||
170 | return (PKCS12_MAC_DATA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | 170 | return (PKCS12_MAC_DATA *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, |
171 | &PKCS12_MAC_DATA_it); | 171 | &PKCS12_MAC_DATA_it); |
172 | } | 172 | } |
173 | LCRYPTO_ALIAS(d2i_PKCS12_MAC_DATA); | ||
174 | 173 | ||
175 | int | 174 | int |
176 | i2d_PKCS12_MAC_DATA(PKCS12_MAC_DATA *a, unsigned char **out) | 175 | i2d_PKCS12_MAC_DATA(PKCS12_MAC_DATA *a, unsigned char **out) |
177 | { | 176 | { |
178 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_MAC_DATA_it); | 177 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_MAC_DATA_it); |
179 | } | 178 | } |
180 | LCRYPTO_ALIAS(i2d_PKCS12_MAC_DATA); | ||
181 | 179 | ||
182 | PKCS12_MAC_DATA * | 180 | PKCS12_MAC_DATA * |
183 | PKCS12_MAC_DATA_new(void) | 181 | PKCS12_MAC_DATA_new(void) |
184 | { | 182 | { |
185 | return (PKCS12_MAC_DATA *)ASN1_item_new(&PKCS12_MAC_DATA_it); | 183 | return (PKCS12_MAC_DATA *)ASN1_item_new(&PKCS12_MAC_DATA_it); |
186 | } | 184 | } |
187 | LCRYPTO_ALIAS(PKCS12_MAC_DATA_new); | ||
188 | 185 | ||
189 | void | 186 | void |
190 | PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a) | 187 | PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a) |
191 | { | 188 | { |
192 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_MAC_DATA_it); | 189 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_MAC_DATA_it); |
193 | } | 190 | } |
194 | LCRYPTO_ALIAS(PKCS12_MAC_DATA_free); | ||
195 | 191 | ||
196 | static const ASN1_TEMPLATE bag_default_tt = { | 192 | static const ASN1_TEMPLATE bag_default_tt = { |
197 | .flags = ASN1_TFLG_EXPLICIT, | 193 | .flags = ASN1_TFLG_EXPLICIT, |
@@ -280,28 +276,24 @@ d2i_PKCS12_BAGS(PKCS12_BAGS **a, const unsigned char **in, long len) | |||
280 | return (PKCS12_BAGS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | 276 | return (PKCS12_BAGS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, |
281 | &PKCS12_BAGS_it); | 277 | &PKCS12_BAGS_it); |
282 | } | 278 | } |
283 | LCRYPTO_ALIAS(d2i_PKCS12_BAGS); | ||
284 | 279 | ||
285 | int | 280 | int |
286 | i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out) | 281 | i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out) |
287 | { | 282 | { |
288 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_BAGS_it); | 283 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS12_BAGS_it); |
289 | } | 284 | } |
290 | LCRYPTO_ALIAS(i2d_PKCS12_BAGS); | ||
291 | 285 | ||
292 | PKCS12_BAGS * | 286 | PKCS12_BAGS * |
293 | PKCS12_BAGS_new(void) | 287 | PKCS12_BAGS_new(void) |
294 | { | 288 | { |
295 | return (PKCS12_BAGS *)ASN1_item_new(&PKCS12_BAGS_it); | 289 | return (PKCS12_BAGS *)ASN1_item_new(&PKCS12_BAGS_it); |
296 | } | 290 | } |
297 | LCRYPTO_ALIAS(PKCS12_BAGS_new); | ||
298 | 291 | ||
299 | void | 292 | void |
300 | PKCS12_BAGS_free(PKCS12_BAGS *a) | 293 | PKCS12_BAGS_free(PKCS12_BAGS *a) |
301 | { | 294 | { |
302 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_BAGS_it); | 295 | ASN1_item_free((ASN1_VALUE *)a, &PKCS12_BAGS_it); |
303 | } | 296 | } |
304 | LCRYPTO_ALIAS(PKCS12_BAGS_free); | ||
305 | 297 | ||
306 | static const ASN1_TEMPLATE safebag_default_tt = { | 298 | static const ASN1_TEMPLATE safebag_default_tt = { |
307 | .flags = ASN1_TFLG_EXPLICIT, | 299 | .flags = ASN1_TFLG_EXPLICIT, |
diff --git a/src/lib/libcrypto/pkcs12/p12_decr.c b/src/lib/libcrypto/pkcs12/p12_decr.c index 04818acd13..907d4e52a6 100644 --- a/src/lib/libcrypto/pkcs12/p12_decr.c +++ b/src/lib/libcrypto/pkcs12/p12_decr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_decr.c,v 1.25 2024/02/18 15:44:10 tb Exp $ */ | 1 | /* $OpenBSD: p12_decr.c,v 1.26 2024/03/02 10:15:16 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -116,7 +116,6 @@ err: | |||
116 | return out; | 116 | return out; |
117 | 117 | ||
118 | } | 118 | } |
119 | LCRYPTO_ALIAS(PKCS12_pbe_crypt); | ||
120 | 119 | ||
121 | /* Decrypt an OCTET STRING and decode ASN1 structure | 120 | /* Decrypt an OCTET STRING and decode ASN1 structure |
122 | * if zbuf set zero buffer after use. | 121 | * if zbuf set zero buffer after use. |
@@ -145,7 +144,6 @@ PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, | |||
145 | free(out); | 144 | free(out); |
146 | return ret; | 145 | return ret; |
147 | } | 146 | } |
148 | LCRYPTO_ALIAS(PKCS12_item_decrypt_d2i); | ||
149 | 147 | ||
150 | /* Encode ASN1 structure and encrypt, return OCTET STRING | 148 | /* Encode ASN1 structure and encrypt, return OCTET STRING |
151 | * if zbuf set zero encoding. | 149 | * if zbuf set zero encoding. |
@@ -184,6 +182,3 @@ err: | |||
184 | ASN1_OCTET_STRING_free(oct); | 182 | ASN1_OCTET_STRING_free(oct); |
185 | return NULL; | 183 | return NULL; |
186 | } | 184 | } |
187 | LCRYPTO_ALIAS(PKCS12_item_i2d_encrypt); | ||
188 | |||
189 | IMPLEMENT_PKCS12_STACK_OF(PKCS7) | ||
diff --git a/src/lib/libcrypto/pkcs12/p12_key.c b/src/lib/libcrypto/pkcs12/p12_key.c index 8812f1c06a..78e7d0450e 100644 --- a/src/lib/libcrypto/pkcs12/p12_key.c +++ b/src/lib/libcrypto/pkcs12/p12_key.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_key.c,v 1.34 2023/02/16 08:38:17 tb Exp $ */ | 1 | /* $OpenBSD: p12_key.c,v 1.35 2024/03/02 10:15:16 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -64,6 +64,7 @@ | |||
64 | #include <openssl/pkcs12.h> | 64 | #include <openssl/pkcs12.h> |
65 | 65 | ||
66 | #include "evp_local.h" | 66 | #include "evp_local.h" |
67 | #include "pkcs12_local.h" | ||
67 | 68 | ||
68 | /* PKCS12 compatible key/IV generation */ | 69 | /* PKCS12 compatible key/IV generation */ |
69 | #ifndef min | 70 | #ifndef min |
@@ -93,7 +94,6 @@ PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, | |||
93 | freezero(unipass, uniplen); | 94 | freezero(unipass, uniplen); |
94 | return ret; | 95 | return ret; |
95 | } | 96 | } |
96 | LCRYPTO_ALIAS(PKCS12_key_gen_asc); | ||
97 | 97 | ||
98 | int | 98 | int |
99 | PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, | 99 | PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, |
@@ -194,4 +194,3 @@ PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, | |||
194 | 194 | ||
195 | return ret; | 195 | return ret; |
196 | } | 196 | } |
197 | LCRYPTO_ALIAS(PKCS12_key_gen_uni); | ||
diff --git a/src/lib/libcrypto/pkcs12/p12_mutl.c b/src/lib/libcrypto/pkcs12/p12_mutl.c index c71ed735ea..2a728294af 100644 --- a/src/lib/libcrypto/pkcs12/p12_mutl.c +++ b/src/lib/libcrypto/pkcs12/p12_mutl.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_mutl.c,v 1.36 2024/01/25 13:44:08 tb Exp $ */ | 1 | /* $OpenBSD: p12_mutl.c,v 1.37 2024/03/02 10:15:16 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -263,5 +263,4 @@ PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, int saltlen, | |||
263 | 263 | ||
264 | return 1; | 264 | return 1; |
265 | } | 265 | } |
266 | LCRYPTO_ALIAS(PKCS12_setup_mac); | ||
267 | #endif | 266 | #endif |
diff --git a/src/lib/libcrypto/pkcs12/p12_p8d.c b/src/lib/libcrypto/pkcs12/p12_p8d.c index dd5e8d9875..d4874e3b73 100644 --- a/src/lib/libcrypto/pkcs12/p12_p8d.c +++ b/src/lib/libcrypto/pkcs12/p12_p8d.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_p8d.c,v 1.11 2023/02/16 08:38:17 tb Exp $ */ | 1 | /* $OpenBSD: p12_p8d.c,v 1.12 2024/03/02 10:15:16 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 2001. | 3 | * project 2001. |
4 | */ | 4 | */ |
@@ -60,6 +60,7 @@ | |||
60 | 60 | ||
61 | #include <openssl/pkcs12.h> | 61 | #include <openssl/pkcs12.h> |
62 | 62 | ||
63 | #include "pkcs12_local.h" | ||
63 | #include "x509_local.h" | 64 | #include "x509_local.h" |
64 | 65 | ||
65 | PKCS8_PRIV_KEY_INFO * | 66 | PKCS8_PRIV_KEY_INFO * |
diff --git a/src/lib/libcrypto/pkcs12/p12_p8e.c b/src/lib/libcrypto/pkcs12/p12_p8e.c index 87c4be56a3..bf61593266 100644 --- a/src/lib/libcrypto/pkcs12/p12_p8e.c +++ b/src/lib/libcrypto/pkcs12/p12_p8e.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: p12_p8e.c,v 1.12 2023/02/16 08:38:17 tb Exp $ */ | 1 | /* $OpenBSD: p12_p8e.c,v 1.13 2024/03/02 10:15:16 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 2001. | 3 | * project 2001. |
4 | */ | 4 | */ |
@@ -61,6 +61,7 @@ | |||
61 | #include <openssl/err.h> | 61 | #include <openssl/err.h> |
62 | #include <openssl/pkcs12.h> | 62 | #include <openssl/pkcs12.h> |
63 | 63 | ||
64 | #include "pkcs12_local.h" | ||
64 | #include "x509_local.h" | 65 | #include "x509_local.h" |
65 | 66 | ||
66 | X509_SIG * | 67 | X509_SIG * |
diff --git a/src/lib/libcrypto/pkcs12/pkcs12.h b/src/lib/libcrypto/pkcs12/pkcs12.h index 44dbb38153..962403976d 100644 --- a/src/lib/libcrypto/pkcs12/pkcs12.h +++ b/src/lib/libcrypto/pkcs12/pkcs12.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pkcs12.h,v 1.27 2022/09/11 17:30:13 tb Exp $ */ | 1 | /* $OpenBSD: pkcs12.h,v 1.28 2024/03/02 10:15:16 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -161,22 +161,12 @@ void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, const X509_ALGOR **pmacalg, | |||
161 | const ASN1_OCTET_STRING **psalt, const ASN1_INTEGER **piter, | 161 | const ASN1_OCTET_STRING **psalt, const ASN1_INTEGER **piter, |
162 | const PKCS12 *p12); | 162 | const PKCS12 *p12); |
163 | 163 | ||
164 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); | ||
165 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); | ||
166 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); | ||
167 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); | ||
168 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, | ||
169 | const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, | ||
170 | PKCS8_PRIV_KEY_INFO *p8); | ||
171 | |||
172 | const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); | 164 | const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); |
173 | const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); | 165 | const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); |
174 | const STACK_OF(PKCS12_SAFEBAG) * | 166 | const STACK_OF(PKCS12_SAFEBAG) * |
175 | PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); | 167 | PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); |
176 | const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); | 168 | const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); |
177 | 169 | ||
178 | PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, | ||
179 | int nid1, int nid2); | ||
180 | PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, | 170 | PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, |
181 | int passlen); | 171 | int passlen); |
182 | PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, | 172 | PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, |
@@ -184,53 +174,19 @@ PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, | |||
184 | X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, | 174 | X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, |
185 | const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, | 175 | const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, |
186 | PKCS8_PRIV_KEY_INFO *p8); | 176 | PKCS8_PRIV_KEY_INFO *p8); |
187 | PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); | 177 | |
188 | STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); | 178 | STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); |
189 | PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, | ||
190 | unsigned char *salt, int saltlen, int iter, STACK_OF(PKCS12_SAFEBAG) *bags); | ||
191 | STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, | 179 | STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, |
192 | int passlen); | 180 | int passlen); |
193 | |||
194 | int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); | ||
195 | STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); | 181 | STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); |
196 | 182 | ||
197 | int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, | ||
198 | int namelen); | ||
199 | int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, | ||
200 | int namelen); | ||
201 | int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, | ||
202 | int namelen); | ||
203 | int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, const unsigned char *name, | ||
204 | int namelen); | ||
205 | int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); | 183 | int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); |
206 | ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, | ||
207 | int attr_nid); | ||
208 | char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); | 184 | char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); |
209 | unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, | ||
210 | int passlen, const unsigned char *in, int inlen, unsigned char **data, | ||
211 | int *datalen, int en_de); | ||
212 | void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, | ||
213 | const char *pass, int passlen, const ASN1_OCTET_STRING *oct, int zbuf); | ||
214 | ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, | ||
215 | const ASN1_ITEM *it, const char *pass, int passlen, void *obj, int zbuf); | ||
216 | PKCS12 *PKCS12_init(int mode); | ||
217 | int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, | ||
218 | int saltlen, int id, int iter, int n, unsigned char *out, | ||
219 | const EVP_MD *md_type); | ||
220 | int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, | ||
221 | int saltlen, int id, int iter, int n, unsigned char *out, | ||
222 | const EVP_MD *md_type); | ||
223 | int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, | ||
224 | ASN1_TYPE *param, const EVP_CIPHER *cipher, const EVP_MD *md_type, | ||
225 | int en_de); | ||
226 | int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, | ||
227 | unsigned char *mac, unsigned int *maclen); | ||
228 | int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); | 185 | int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); |
229 | int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, | 186 | int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, |
230 | unsigned char *salt, int saltlen, int iter, | 187 | unsigned char *salt, int saltlen, int iter, |
231 | const EVP_MD *md_type); | 188 | const EVP_MD *md_type); |
232 | int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, | 189 | |
233 | int saltlen, const EVP_MD *md_type); | ||
234 | unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, | 190 | unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, |
235 | unsigned char **uni, int *unilen); | 191 | unsigned char **uni, int *unilen); |
236 | char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); | 192 | char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); |
@@ -240,24 +196,12 @@ void PKCS12_free(PKCS12 *a); | |||
240 | PKCS12 *d2i_PKCS12(PKCS12 **a, const unsigned char **in, long len); | 196 | PKCS12 *d2i_PKCS12(PKCS12 **a, const unsigned char **in, long len); |
241 | int i2d_PKCS12(PKCS12 *a, unsigned char **out); | 197 | int i2d_PKCS12(PKCS12 *a, unsigned char **out); |
242 | extern const ASN1_ITEM PKCS12_it; | 198 | extern const ASN1_ITEM PKCS12_it; |
243 | PKCS12_MAC_DATA *PKCS12_MAC_DATA_new(void); | 199 | |
244 | void PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a); | ||
245 | PKCS12_MAC_DATA *d2i_PKCS12_MAC_DATA(PKCS12_MAC_DATA **a, const unsigned char **in, long len); | ||
246 | int i2d_PKCS12_MAC_DATA(PKCS12_MAC_DATA *a, unsigned char **out); | ||
247 | extern const ASN1_ITEM PKCS12_MAC_DATA_it; | ||
248 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_new(void); | 200 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_new(void); |
249 | void PKCS12_SAFEBAG_free(PKCS12_SAFEBAG *a); | 201 | void PKCS12_SAFEBAG_free(PKCS12_SAFEBAG *a); |
250 | PKCS12_SAFEBAG *d2i_PKCS12_SAFEBAG(PKCS12_SAFEBAG **a, const unsigned char **in, long len); | 202 | PKCS12_SAFEBAG *d2i_PKCS12_SAFEBAG(PKCS12_SAFEBAG **a, const unsigned char **in, long len); |
251 | int i2d_PKCS12_SAFEBAG(PKCS12_SAFEBAG *a, unsigned char **out); | 203 | int i2d_PKCS12_SAFEBAG(PKCS12_SAFEBAG *a, unsigned char **out); |
252 | extern const ASN1_ITEM PKCS12_SAFEBAG_it; | 204 | extern const ASN1_ITEM PKCS12_SAFEBAG_it; |
253 | PKCS12_BAGS *PKCS12_BAGS_new(void); | ||
254 | void PKCS12_BAGS_free(PKCS12_BAGS *a); | ||
255 | PKCS12_BAGS *d2i_PKCS12_BAGS(PKCS12_BAGS **a, const unsigned char **in, long len); | ||
256 | int i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out); | ||
257 | extern const ASN1_ITEM PKCS12_BAGS_it; | ||
258 | |||
259 | extern const ASN1_ITEM PKCS12_SAFEBAGS_it; | ||
260 | extern const ASN1_ITEM PKCS12_AUTHSAFES_it; | ||
261 | 205 | ||
262 | void PKCS12_PBE_add(void); | 206 | void PKCS12_PBE_add(void); |
263 | int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, | 207 | int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, |
@@ -266,13 +210,6 @@ PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, | |||
266 | X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, | 210 | X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, int iter, |
267 | int mac_iter, int keytype); | 211 | int mac_iter, int keytype); |
268 | 212 | ||
269 | PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); | ||
270 | PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, EVP_PKEY *key, | ||
271 | int key_usage, int iter, int key_nid, const char *pass); | ||
272 | int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, | ||
273 | int safe_nid, int iter, const char *pass); | ||
274 | PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); | ||
275 | |||
276 | int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); | 213 | int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); |
277 | int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); | 214 | int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); |
278 | PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); | 215 | PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); |
diff --git a/src/lib/libcrypto/pkcs12/pkcs12_local.h b/src/lib/libcrypto/pkcs12/pkcs12_local.h index 8d82d2f462..dfdcdce1f9 100644 --- a/src/lib/libcrypto/pkcs12/pkcs12_local.h +++ b/src/lib/libcrypto/pkcs12/pkcs12_local.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pkcs12_local.h,v 1.4 2024/01/25 13:44:08 tb Exp $ */ | 1 | /* $OpenBSD: pkcs12_local.h,v 1.5 2024/03/02 10:15:16 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 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -96,6 +96,79 @@ struct pkcs12_bag_st { | |||
96 | } value; | 96 | } value; |
97 | }; | 97 | }; |
98 | 98 | ||
99 | extern const ASN1_ITEM PKCS12_SAFEBAGS_it; | ||
100 | extern const ASN1_ITEM PKCS12_AUTHSAFES_it; | ||
101 | |||
102 | PKCS12_BAGS *PKCS12_BAGS_new(void); | ||
103 | void PKCS12_BAGS_free(PKCS12_BAGS *a); | ||
104 | PKCS12_BAGS *d2i_PKCS12_BAGS(PKCS12_BAGS **a, const unsigned char **in, long len); | ||
105 | int i2d_PKCS12_BAGS(PKCS12_BAGS *a, unsigned char **out); | ||
106 | extern const ASN1_ITEM PKCS12_BAGS_it; | ||
107 | |||
108 | PKCS12_MAC_DATA *PKCS12_MAC_DATA_new(void); | ||
109 | void PKCS12_MAC_DATA_free(PKCS12_MAC_DATA *a); | ||
110 | PKCS12_MAC_DATA *d2i_PKCS12_MAC_DATA(PKCS12_MAC_DATA **a, const unsigned char **in, long len); | ||
111 | int i2d_PKCS12_MAC_DATA(PKCS12_MAC_DATA *a, unsigned char **out); | ||
112 | extern const ASN1_ITEM PKCS12_MAC_DATA_it; | ||
113 | |||
114 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); | ||
115 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); | ||
116 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); | ||
117 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); | ||
118 | PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, | ||
119 | const char *pass, int passlen, unsigned char *salt, int saltlen, int iter, | ||
120 | PKCS8_PRIV_KEY_INFO *p8); | ||
121 | |||
122 | PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); | ||
123 | PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, EVP_PKEY *key, | ||
124 | int key_usage, int iter, int key_nid, const char *pass); | ||
125 | int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, | ||
126 | int safe_nid, int iter, const char *pass); | ||
127 | PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); | ||
128 | |||
129 | int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, | ||
130 | int namelen); | ||
131 | int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, | ||
132 | int namelen); | ||
133 | int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, const unsigned char *name, | ||
134 | int namelen); | ||
135 | int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, | ||
136 | int namelen); | ||
137 | |||
138 | int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, | ||
139 | unsigned char *mac, unsigned int *maclen); | ||
140 | |||
141 | ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, | ||
142 | int attr_nid); | ||
143 | |||
144 | PKCS12 *PKCS12_init(int mode); | ||
145 | |||
146 | void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, | ||
147 | const char *pass, int passlen, const ASN1_OCTET_STRING *oct, int zbuf); | ||
148 | ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, | ||
149 | const ASN1_ITEM *it, const char *pass, int passlen, void *obj, int zbuf); | ||
150 | PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, | ||
151 | int nid1, int nid2); | ||
152 | |||
153 | int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, | ||
154 | int saltlen, int id, int iter, int n, unsigned char *out, | ||
155 | const EVP_MD *md_type); | ||
156 | int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, | ||
157 | int saltlen, int id, int iter, int n, unsigned char *out, | ||
158 | const EVP_MD *md_type); | ||
159 | |||
160 | int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); | ||
161 | PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); | ||
162 | PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, | ||
163 | unsigned char *salt, int saltlen, int iter, STACK_OF(PKCS12_SAFEBAG) *bags); | ||
164 | |||
165 | unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, const char *pass, | ||
166 | int passlen, const unsigned char *in, int inlen, unsigned char **data, | ||
167 | int *datalen, int en_de); | ||
168 | |||
169 | int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, | ||
170 | int saltlen, const EVP_MD *md_type); | ||
171 | |||
99 | /* XXX - should go into pkcs7_local.h. */ | 172 | /* XXX - should go into pkcs7_local.h. */ |
100 | ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7); | 173 | ASN1_OCTET_STRING *PKCS7_get_octet_string(PKCS7 *p7); |
101 | 174 | ||