diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_add.c')
-rw-r--r-- | src/lib/libcrypto/pkcs12/p12_add.c | 54 |
1 files changed, 1 insertions, 53 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_add.c b/src/lib/libcrypto/pkcs12/p12_add.c index d9de395c5b..a7b8c1eaf8 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.19 2022/08/20 09:16:18 tb Exp $ */ | 1 | /* $OpenBSD: p12_add.c,v 1.20 2022/09/11 17:30:13 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 | */ |
@@ -91,58 +91,6 @@ PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, int nid1, int nid2) | |||
91 | return safebag; | 91 | return safebag; |
92 | } | 92 | } |
93 | 93 | ||
94 | #if !defined(LIBRESSL_NEXT_API) | ||
95 | #undef PKCS12_MAKE_KEYBAG | ||
96 | #undef PKCS12_MAKE_SHKEYBAG | ||
97 | /* Turn PKCS8 object into a keybag */ | ||
98 | |||
99 | PKCS12_SAFEBAG * | ||
100 | PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8) | ||
101 | { | ||
102 | PKCS12_SAFEBAG *bag; | ||
103 | |||
104 | if (!(bag = PKCS12_SAFEBAG_new())) { | ||
105 | PKCS12error(ERR_R_MALLOC_FAILURE); | ||
106 | return NULL; | ||
107 | } | ||
108 | bag->type = OBJ_nid2obj(NID_keyBag); | ||
109 | bag->value.keybag = p8; | ||
110 | return bag; | ||
111 | } | ||
112 | |||
113 | /* Turn PKCS8 object into a shrouded keybag */ | ||
114 | |||
115 | PKCS12_SAFEBAG * | ||
116 | PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, int passlen, | ||
117 | unsigned char *salt, int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8) | ||
118 | { | ||
119 | PKCS12_SAFEBAG *bag; | ||
120 | const EVP_CIPHER *pbe_ciph; | ||
121 | |||
122 | /* Set up the safe bag */ | ||
123 | if (!(bag = PKCS12_SAFEBAG_new())) { | ||
124 | PKCS12error(ERR_R_MALLOC_FAILURE); | ||
125 | return NULL; | ||
126 | } | ||
127 | |||
128 | bag->type = OBJ_nid2obj(NID_pkcs8ShroudedKeyBag); | ||
129 | |||
130 | pbe_ciph = EVP_get_cipherbynid(pbe_nid); | ||
131 | |||
132 | if (pbe_ciph) | ||
133 | pbe_nid = -1; | ||
134 | |||
135 | if (!(bag->value.shkeybag = PKCS8_encrypt(pbe_nid, pbe_ciph, pass, | ||
136 | passlen, salt, saltlen, iter, p8))) { | ||
137 | PKCS12error(ERR_R_MALLOC_FAILURE); | ||
138 | PKCS12_SAFEBAG_free(bag); | ||
139 | return NULL; | ||
140 | } | ||
141 | |||
142 | return bag; | ||
143 | } | ||
144 | #endif | ||
145 | |||
146 | /* Turn a stack of SAFEBAGS into a PKCS#7 data Contentinfo */ | 94 | /* Turn a stack of SAFEBAGS into a PKCS#7 data Contentinfo */ |
147 | PKCS7 * | 95 | PKCS7 * |
148 | PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk) | 96 | PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk) |