summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/pkcs12/p12_add.c
diff options
context:
space:
mode:
authorbeck <>2017-01-29 17:49:23 +0000
committerbeck <>2017-01-29 17:49:23 +0000
commit957b11334a7afb14537322f0e4795b2e368b3f59 (patch)
tree1a54abba678898ee5270ae4f3404a50ee9a92eea /src/lib/libcrypto/pkcs12/p12_add.c
parentdf96e020e729c6c37a8c7fe311fdd1fe6a8718c5 (diff)
downloadopenbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.gz
openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.bz2
openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.zip
Send the function codes from the error functions to the bit bucket,
as was done earlier in libssl. Thanks inoguchi@ for noticing libssl had more reacharounds into this. ok jsing@ inoguchi@
Diffstat (limited to 'src/lib/libcrypto/pkcs12/p12_add.c')
-rw-r--r--src/lib/libcrypto/pkcs12/p12_add.c40
1 files changed, 16 insertions, 24 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_add.c b/src/lib/libcrypto/pkcs12/p12_add.c
index 954ca03ebb..5642a141f5 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.14 2016/12/30 15:34:35 jsing Exp $ */ 1/* $OpenBSD: p12_add.c,v 1.15 2017/01/29 17:49:23 beck 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 */
@@ -70,20 +70,17 @@ PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, int nid1, int nid2)
70 PKCS12_SAFEBAG *safebag; 70 PKCS12_SAFEBAG *safebag;
71 71
72 if (!(bag = PKCS12_BAGS_new())) { 72 if (!(bag = PKCS12_BAGS_new())) {
73 PKCS12err(PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG, 73 PKCS12error(ERR_R_MALLOC_FAILURE);
74 ERR_R_MALLOC_FAILURE);
75 return NULL; 74 return NULL;
76 } 75 }
77 bag->type = OBJ_nid2obj(nid1); 76 bag->type = OBJ_nid2obj(nid1);
78 if (!ASN1_item_pack(obj, it, &bag->value.octet)) { 77 if (!ASN1_item_pack(obj, it, &bag->value.octet)) {
79 PKCS12err(PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG, 78 PKCS12error(ERR_R_MALLOC_FAILURE);
80 ERR_R_MALLOC_FAILURE);
81 PKCS12_BAGS_free(bag); 79 PKCS12_BAGS_free(bag);
82 return NULL; 80 return NULL;
83 } 81 }
84 if (!(safebag = PKCS12_SAFEBAG_new())) { 82 if (!(safebag = PKCS12_SAFEBAG_new())) {
85 PKCS12err(PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG, 83 PKCS12error(ERR_R_MALLOC_FAILURE);
86 ERR_R_MALLOC_FAILURE);
87 PKCS12_BAGS_free(bag); 84 PKCS12_BAGS_free(bag);
88 return NULL; 85 return NULL;
89 } 86 }
@@ -100,7 +97,7 @@ PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8)
100 PKCS12_SAFEBAG *bag; 97 PKCS12_SAFEBAG *bag;
101 98
102 if (!(bag = PKCS12_SAFEBAG_new())) { 99 if (!(bag = PKCS12_SAFEBAG_new())) {
103 PKCS12err(PKCS12_F_PKCS12_MAKE_KEYBAG, ERR_R_MALLOC_FAILURE); 100 PKCS12error(ERR_R_MALLOC_FAILURE);
104 return NULL; 101 return NULL;
105 } 102 }
106 bag->type = OBJ_nid2obj(NID_keyBag); 103 bag->type = OBJ_nid2obj(NID_keyBag);
@@ -119,7 +116,7 @@ PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, int passlen,
119 116
120 /* Set up the safe bag */ 117 /* Set up the safe bag */
121 if (!(bag = PKCS12_SAFEBAG_new())) { 118 if (!(bag = PKCS12_SAFEBAG_new())) {
122 PKCS12err(PKCS12_F_PKCS12_MAKE_SHKEYBAG, ERR_R_MALLOC_FAILURE); 119 PKCS12error(ERR_R_MALLOC_FAILURE);
123 return NULL; 120 return NULL;
124 } 121 }
125 122
@@ -132,7 +129,7 @@ PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, int passlen,
132 129
133 if (!(bag->value.shkeybag = PKCS8_encrypt(pbe_nid, pbe_ciph, pass, 130 if (!(bag->value.shkeybag = PKCS8_encrypt(pbe_nid, pbe_ciph, pass,
134 passlen, salt, saltlen, iter, p8))) { 131 passlen, salt, saltlen, iter, p8))) {
135 PKCS12err(PKCS12_F_PKCS12_MAKE_SHKEYBAG, ERR_R_MALLOC_FAILURE); 132 PKCS12error(ERR_R_MALLOC_FAILURE);
136 PKCS12_SAFEBAG_free(bag); 133 PKCS12_SAFEBAG_free(bag);
137 return NULL; 134 return NULL;
138 } 135 }
@@ -147,18 +144,17 @@ PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk)
147 PKCS7 *p7; 144 PKCS7 *p7;
148 145
149 if (!(p7 = PKCS7_new())) { 146 if (!(p7 = PKCS7_new())) {
150 PKCS12err(PKCS12_F_PKCS12_PACK_P7DATA, ERR_R_MALLOC_FAILURE); 147 PKCS12error(ERR_R_MALLOC_FAILURE);
151 return NULL; 148 return NULL;
152 } 149 }
153 p7->type = OBJ_nid2obj(NID_pkcs7_data); 150 p7->type = OBJ_nid2obj(NID_pkcs7_data);
154 if (!(p7->d.data = ASN1_OCTET_STRING_new())) { 151 if (!(p7->d.data = ASN1_OCTET_STRING_new())) {
155 PKCS12err(PKCS12_F_PKCS12_PACK_P7DATA, ERR_R_MALLOC_FAILURE); 152 PKCS12error(ERR_R_MALLOC_FAILURE);
156 goto err; 153 goto err;
157 } 154 }
158 155
159 if (!ASN1_item_pack(sk, &PKCS12_SAFEBAGS_it, &p7->d.data)) { 156 if (!ASN1_item_pack(sk, &PKCS12_SAFEBAGS_it, &p7->d.data)) {
160 PKCS12err(PKCS12_F_PKCS12_PACK_P7DATA, 157 PKCS12error(PKCS12_R_CANT_PACK_STRUCTURE);
161 PKCS12_R_CANT_PACK_STRUCTURE);
162 goto err; 158 goto err;
163 } 159 }
164 return p7; 160 return p7;
@@ -173,8 +169,7 @@ STACK_OF(PKCS12_SAFEBAG) *
173PKCS12_unpack_p7data(PKCS7 *p7) 169PKCS12_unpack_p7data(PKCS7 *p7)
174{ 170{
175 if (!PKCS7_type_is_data(p7)) { 171 if (!PKCS7_type_is_data(p7)) {
176 PKCS12err(PKCS12_F_PKCS12_UNPACK_P7DATA, 172 PKCS12error(PKCS12_R_CONTENT_TYPE_NOT_DATA);
177 PKCS12_R_CONTENT_TYPE_NOT_DATA);
178 return NULL; 173 return NULL;
179 } 174 }
180 return ASN1_item_unpack(p7->d.data, &PKCS12_SAFEBAGS_it); 175 return ASN1_item_unpack(p7->d.data, &PKCS12_SAFEBAGS_it);
@@ -191,12 +186,11 @@ PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen,
191 const EVP_CIPHER *pbe_ciph; 186 const EVP_CIPHER *pbe_ciph;
192 187
193 if (!(p7 = PKCS7_new())) { 188 if (!(p7 = PKCS7_new())) {
194 PKCS12err(PKCS12_F_PKCS12_PACK_P7ENCDATA, ERR_R_MALLOC_FAILURE); 189 PKCS12error(ERR_R_MALLOC_FAILURE);
195 return NULL; 190 return NULL;
196 } 191 }
197 if (!PKCS7_set_type(p7, NID_pkcs7_encrypted)) { 192 if (!PKCS7_set_type(p7, NID_pkcs7_encrypted)) {
198 PKCS12err(PKCS12_F_PKCS12_PACK_P7ENCDATA, 193 PKCS12error(PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE);
199 PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE);
200 goto err; 194 goto err;
201 } 195 }
202 196
@@ -208,7 +202,7 @@ PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen,
208 pbe = PKCS5_pbe_set(pbe_nid, iter, salt, saltlen); 202 pbe = PKCS5_pbe_set(pbe_nid, iter, salt, saltlen);
209 203
210 if (!pbe) { 204 if (!pbe) {
211 PKCS12err(PKCS12_F_PKCS12_PACK_P7ENCDATA, ERR_R_MALLOC_FAILURE); 205 PKCS12error(ERR_R_MALLOC_FAILURE);
212 goto err; 206 goto err;
213 } 207 }
214 X509_ALGOR_free(p7->d.encrypted->enc_data->algorithm); 208 X509_ALGOR_free(p7->d.encrypted->enc_data->algorithm);
@@ -216,8 +210,7 @@ PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen,
216 ASN1_OCTET_STRING_free(p7->d.encrypted->enc_data->enc_data); 210 ASN1_OCTET_STRING_free(p7->d.encrypted->enc_data->enc_data);
217 if (!(p7->d.encrypted->enc_data->enc_data = PKCS12_item_i2d_encrypt( 211 if (!(p7->d.encrypted->enc_data->enc_data = PKCS12_item_i2d_encrypt(
218 pbe, &PKCS12_SAFEBAGS_it, pass, passlen, bags, 1))) { 212 pbe, &PKCS12_SAFEBAGS_it, pass, passlen, bags, 1))) {
219 PKCS12err(PKCS12_F_PKCS12_PACK_P7ENCDATA, 213 PKCS12error(PKCS12_R_ENCRYPT_ERROR);
220 PKCS12_R_ENCRYPT_ERROR);
221 goto err; 214 goto err;
222 } 215 }
223 216
@@ -257,8 +250,7 @@ STACK_OF(PKCS7) *
257PKCS12_unpack_authsafes(PKCS12 *p12) 250PKCS12_unpack_authsafes(PKCS12 *p12)
258{ 251{
259 if (!PKCS7_type_is_data(p12->authsafes)) { 252 if (!PKCS7_type_is_data(p12->authsafes)) {
260 PKCS12err(PKCS12_F_PKCS12_UNPACK_AUTHSAFES, 253 PKCS12error(PKCS12_R_CONTENT_TYPE_NOT_DATA);
261 PKCS12_R_CONTENT_TYPE_NOT_DATA);
262 return NULL; 254 return NULL;
263 } 255 }
264 return ASN1_item_unpack(p12->authsafes->d.data, 256 return ASN1_item_unpack(p12->authsafes->d.data,