Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/pkcs12/p12_add.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||
---|---|---|---|---|---|---|---|---|
1 | - | |||||||
2 | - | |||||||
3 | - | |||||||
4 | - | |||||||
5 | PKCS12_SAFEBAG * | - | ||||||
6 | PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, int nid1, int nid2) | - | ||||||
7 | { | - | ||||||
8 | PKCS12_BAGS *bag; | - | ||||||
9 | PKCS12_SAFEBAG *safebag; | - | ||||||
10 | - | |||||||
11 | if (!(bag = PKCS12_BAGS_new())
| 0 | ||||||
12 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,73); | - | ||||||
13 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
14 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
15 | ; never executed: return ((void *)0) ; | 0 | ||||||
16 | } | - | ||||||
17 | bag->type = OBJ_nid2obj(nid1); | - | ||||||
18 | if (!ASN1_item_pack(obj, it, &bag->value.octet)
| 0 | ||||||
19 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,78); | - | ||||||
20 | PKCS12_BAGS_free(bag); | - | ||||||
21 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
22 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
23 | ; never executed: return ((void *)0) ; | 0 | ||||||
24 | } | - | ||||||
25 | if (!(safebag = PKCS12_SAFEBAG_new())
| 0 | ||||||
26 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,83); | - | ||||||
27 | PKCS12_BAGS_free(bag); | - | ||||||
28 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
29 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
30 | ; never executed: return ((void *)0) ; | 0 | ||||||
31 | } | - | ||||||
32 | safebag->value.bag = bag; | - | ||||||
33 | safebag->type = OBJ_nid2obj(nid2); | - | ||||||
34 | return never executed: safebag;return safebag; never executed: return safebag; | 0 | ||||||
35 | } | - | ||||||
36 | - | |||||||
37 | - | |||||||
38 | - | |||||||
39 | PKCS12_SAFEBAG * | - | ||||||
40 | PKCS12_MAKE_KEYBAG(PKCS8_PRIV_KEY_INFO *p8) | - | ||||||
41 | { | - | ||||||
42 | PKCS12_SAFEBAG *bag; | - | ||||||
43 | - | |||||||
44 | if (!(bag = PKCS12_SAFEBAG_new())
| 0 | ||||||
45 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,100); | - | ||||||
46 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
47 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
48 | ; never executed: return ((void *)0) ; | 0 | ||||||
49 | } | - | ||||||
50 | bag->type = OBJ_nid2obj(150); | - | ||||||
51 | bag->value.keybag = p8; | - | ||||||
52 | return never executed: bag;return bag; never executed: return bag; | 0 | ||||||
53 | } | - | ||||||
54 | - | |||||||
55 | - | |||||||
56 | - | |||||||
57 | PKCS12_SAFEBAG * | - | ||||||
58 | PKCS12_MAKE_SHKEYBAG(int pbe_nid, const char *pass, int passlen, | - | ||||||
59 | unsigned char *salt, int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8) | - | ||||||
60 | { | - | ||||||
61 | PKCS12_SAFEBAG *bag; | - | ||||||
62 | const EVP_CIPHER *pbe_ciph; | - | ||||||
63 | - | |||||||
64 | - | |||||||
65 | if (!(bag = PKCS12_SAFEBAG_new())
| 0 | ||||||
66 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,119); | - | ||||||
67 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
68 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
69 | ; never executed: return ((void *)0) ; | 0 | ||||||
70 | } | - | ||||||
71 | - | |||||||
72 | bag->type = OBJ_nid2obj(151); | - | ||||||
73 | - | |||||||
74 | pbe_ciph = EVP_get_cipherbyname(OBJ_nid2sn(pbe_nid)); | - | ||||||
75 | - | |||||||
76 | if (pbe_ciph
| 0 | ||||||
77 | pbe_nid = -1; never executed: pbe_nid = -1; | 0 | ||||||
78 | - | |||||||
79 | if (!(bag->value.shkeybag = PKCS8_encrypt(pbe_nid, pbe_ciph, pass,
| 0 | ||||||
80 | passlen, salt, saltlen, iter, p8))
| 0 | ||||||
81 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,132); | - | ||||||
82 | PKCS12_SAFEBAG_free(bag); | - | ||||||
83 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
84 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
85 | ; never executed: return ((void *)0) ; | 0 | ||||||
86 | } | - | ||||||
87 | - | |||||||
88 | return never executed: bag;return bag; never executed: return bag; | 0 | ||||||
89 | } | - | ||||||
90 | - | |||||||
91 | - | |||||||
92 | PKCS7 * | - | ||||||
93 | PKCS12_pack_p7data(struct stack_st_PKCS12_SAFEBAG *sk) | - | ||||||
94 | { | - | ||||||
95 | PKCS7 *p7; | - | ||||||
96 | - | |||||||
97 | if (!(p7 = PKCS7_new())
| 0 | ||||||
98 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,147); | - | ||||||
99 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
100 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
101 | ; never executed: return ((void *)0) ; | 0 | ||||||
102 | } | - | ||||||
103 | p7->type = OBJ_nid2obj(21); | - | ||||||
104 | if (!(p7->d.data = ASN1_OCTET_STRING_new())
| 0 | ||||||
105 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,152); | - | ||||||
106 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
107 | } | - | ||||||
108 | - | |||||||
109 | if (!ASN1_item_pack(sk, &PKCS12_SAFEBAGS_it, &p7->d.data)
| 0 | ||||||
110 | ERR_put_error(35,(0xfff),(100),__FILE__,157); | - | ||||||
111 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
112 | } | - | ||||||
113 | return never executed: p7;return p7; never executed: return p7; | 0 | ||||||
114 | - | |||||||
115 | err: | - | ||||||
116 | PKCS7_free(p7); | - | ||||||
117 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
118 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
119 | ; never executed: return ((void *)0) ; | 0 | ||||||
120 | } | - | ||||||
121 | - | |||||||
122 | - | |||||||
123 | struct stack_st_PKCS12_SAFEBAG * | - | ||||||
124 | PKCS12_unpack_p7data(PKCS7 *p7) | - | ||||||
125 | { | - | ||||||
126 | if (!(OBJ_obj2nid((p7)->type) == 21)
| 0 | ||||||
127 | ERR_put_error(35,(0xfff),(121),__FILE__,172); | - | ||||||
128 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
129 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
130 | ; never executed: return ((void *)0) ; | 0 | ||||||
131 | } | - | ||||||
132 | return never executed: ASN1_item_unpack(p7->d.data, &PKCS12_SAFEBAGS_it);return ASN1_item_unpack(p7->d.data, &PKCS12_SAFEBAGS_it); never executed: return ASN1_item_unpack(p7->d.data, &PKCS12_SAFEBAGS_it); | 0 | ||||||
133 | } | - | ||||||
134 | - | |||||||
135 | - | |||||||
136 | - | |||||||
137 | PKCS7 * | - | ||||||
138 | PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, | - | ||||||
139 | unsigned char *salt, int saltlen, int iter, struct stack_st_PKCS12_SAFEBAG *bags) | - | ||||||
140 | { | - | ||||||
141 | PKCS7 *p7; | - | ||||||
142 | X509_ALGOR *pbe; | - | ||||||
143 | const EVP_CIPHER *pbe_ciph; | - | ||||||
144 | - | |||||||
145 | if (!(p7 = PKCS7_new())
| 0 | ||||||
146 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,189); | - | ||||||
147 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
148 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
149 | ; never executed: return ((void *)0) ; | 0 | ||||||
150 | } | - | ||||||
151 | if (!PKCS7_set_type(p7, 26)
| 0 | ||||||
152 | ERR_put_error(35,(0xfff),(120),__FILE__,193); | - | ||||||
153 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
154 | } | - | ||||||
155 | - | |||||||
156 | pbe_ciph = EVP_get_cipherbyname(OBJ_nid2sn(pbe_nid)); | - | ||||||
157 | - | |||||||
158 | if (pbe_ciph
| 0 | ||||||
159 | pbe = PKCS5_pbe2_set(pbe_ciph, iter, salt, saltlen); never executed: pbe = PKCS5_pbe2_set(pbe_ciph, iter, salt, saltlen); | 0 | ||||||
160 | else | - | ||||||
161 | pbe = PKCS5_pbe_set(pbe_nid, iter, salt, saltlen); never executed: pbe = PKCS5_pbe_set(pbe_nid, iter, salt, saltlen); | 0 | ||||||
162 | - | |||||||
163 | if (!pbe
| 0 | ||||||
164 | ERR_put_error(35,(0xfff),((1|64)),__FILE__,205); | - | ||||||
165 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
166 | } | - | ||||||
167 | X509_ALGOR_free(p7->d.encrypted->enc_data->algorithm); | - | ||||||
168 | p7->d.encrypted->enc_data->algorithm = pbe; | - | ||||||
169 | ASN1_OCTET_STRING_free(p7->d.encrypted->enc_data->enc_data); | - | ||||||
170 | if (!(p7->d.encrypted->enc_data->enc_data = PKCS12_item_i2d_encrypt(
| 0 | ||||||
171 | pbe, &PKCS12_SAFEBAGS_it, pass, passlen, bags, 1))
| 0 | ||||||
172 | ERR_put_error(35,(0xfff),(103),__FILE__,213); | - | ||||||
173 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||
174 | } | - | ||||||
175 | - | |||||||
176 | return never executed: p7;return p7; never executed: return p7; | 0 | ||||||
177 | - | |||||||
178 | err: | - | ||||||
179 | PKCS7_free(p7); | - | ||||||
180 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
181 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
182 | ; never executed: return ((void *)0) ; | 0 | ||||||
183 | } | - | ||||||
184 | - | |||||||
185 | struct stack_st_PKCS12_SAFEBAG * | - | ||||||
186 | PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, int passlen) | - | ||||||
187 | { | - | ||||||
188 | if (!(OBJ_obj2nid((p7)->type) == 26)
| 0 | ||||||
189 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
190 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
191 | ; never executed: return ((void *)0) ; | 0 | ||||||
192 | return never executed: PKCS12_item_decrypt_d2i(p7->d.encrypted->enc_data->algorithm,return PKCS12_item_decrypt_d2i(p7->d.encrypted->enc_data->algorithm, &PKCS12_SAFEBAGS_it, pass, passlen, p7->d.encrypted->enc_data->enc_data, 1); never executed: return PKCS12_item_decrypt_d2i(p7->d.encrypted->enc_data->algorithm, &PKCS12_SAFEBAGS_it, pass, passlen, p7->d.encrypted->enc_data->enc_data, 1); | 0 | ||||||
193 | &PKCS12_SAFEBAGS_it, pass, passlen, never executed: return PKCS12_item_decrypt_d2i(p7->d.encrypted->enc_data->algorithm, &PKCS12_SAFEBAGS_it, pass, passlen, p7->d.encrypted->enc_data->enc_data, 1); | 0 | ||||||
194 | p7->d.encrypted->enc_data->enc_data, 1); never executed: return PKCS12_item_decrypt_d2i(p7->d.encrypted->enc_data->algorithm, &PKCS12_SAFEBAGS_it, pass, passlen, p7->d.encrypted->enc_data->enc_data, 1); | 0 | ||||||
195 | } | - | ||||||
196 | - | |||||||
197 | PKCS8_PRIV_KEY_INFO * | - | ||||||
198 | PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, const char *pass, int passlen) | - | ||||||
199 | { | - | ||||||
200 | return never executed: PKCS8_decrypt(bag->value.shkeybag, pass, passlen);return PKCS8_decrypt(bag->value.shkeybag, pass, passlen); never executed: return PKCS8_decrypt(bag->value.shkeybag, pass, passlen); | 0 | ||||||
201 | } | - | ||||||
202 | - | |||||||
203 | int | - | ||||||
204 | PKCS12_pack_authsafes(PKCS12 *p12, struct stack_st_PKCS7 *safes) | - | ||||||
205 | { | - | ||||||
206 | if (ASN1_item_pack(safes, &PKCS12_AUTHSAFES_it,
| 0 | ||||||
207 | &p12->authsafes->d.data)
| 0 | ||||||
208 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||
209 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||
210 | } | - | ||||||
211 | - | |||||||
212 | struct stack_st_PKCS7 * | - | ||||||
213 | PKCS12_unpack_authsafes(const PKCS12 *p12) | - | ||||||
214 | { | - | ||||||
215 | if (!(OBJ_obj2nid((p12->authsafes)->type) == 21)
| 0 | ||||||
216 | ERR_put_error(35,(0xfff),(121),__FILE__,253); | - | ||||||
217 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||
218 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||
219 | ; never executed: return ((void *)0) ; | 0 | ||||||
220 | } | - | ||||||
221 | return never executed: ASN1_item_unpack(p12->authsafes->d.data,return ASN1_item_unpack(p12->authsafes->d.data, &PKCS12_AUTHSAFES_it); never executed: return ASN1_item_unpack(p12->authsafes->d.data, &PKCS12_AUTHSAFES_it); | 0 | ||||||
222 | &PKCS12_AUTHSAFES_it); never executed: return ASN1_item_unpack(p12->authsafes->d.data, &PKCS12_AUTHSAFES_it); | 0 | ||||||
223 | } | - | ||||||
Switch to Source code | Preprocessed file |