Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/x_crl.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||
2 | - | |||||||||||||||||||
3 | - | |||||||||||||||||||
4 | - | |||||||||||||||||||
5 | static int X509_REVOKED_cmp(const X509_REVOKED * const *a, | - | ||||||||||||||||||
6 | const X509_REVOKED * const *b); | - | ||||||||||||||||||
7 | static void setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp); | - | ||||||||||||||||||
8 | - | |||||||||||||||||||
9 | static const ASN1_TEMPLATE X509_REVOKED_seq_tt[] = { | - | ||||||||||||||||||
10 | { | - | ||||||||||||||||||
11 | .offset = | - | ||||||||||||||||||
12 | __builtin_offsetof ( | - | ||||||||||||||||||
13 | X509_REVOKED | - | ||||||||||||||||||
14 | , | - | ||||||||||||||||||
15 | serialNumber | - | ||||||||||||||||||
16 | ) | - | ||||||||||||||||||
17 | , | - | ||||||||||||||||||
18 | .field_name = "serialNumber", | - | ||||||||||||||||||
19 | .item = &ASN1_INTEGER_it, | - | ||||||||||||||||||
20 | }, | - | ||||||||||||||||||
21 | { | - | ||||||||||||||||||
22 | .offset = | - | ||||||||||||||||||
23 | __builtin_offsetof ( | - | ||||||||||||||||||
24 | X509_REVOKED | - | ||||||||||||||||||
25 | , | - | ||||||||||||||||||
26 | revocationDate | - | ||||||||||||||||||
27 | ) | - | ||||||||||||||||||
28 | , | - | ||||||||||||||||||
29 | .field_name = "revocationDate", | - | ||||||||||||||||||
30 | .item = &ASN1_TIME_it, | - | ||||||||||||||||||
31 | }, | - | ||||||||||||||||||
32 | { | - | ||||||||||||||||||
33 | .flags = (0x2 << 1) | (0x1), | - | ||||||||||||||||||
34 | .offset = | - | ||||||||||||||||||
35 | __builtin_offsetof ( | - | ||||||||||||||||||
36 | X509_REVOKED | - | ||||||||||||||||||
37 | , | - | ||||||||||||||||||
38 | extensions | - | ||||||||||||||||||
39 | ) | - | ||||||||||||||||||
40 | , | - | ||||||||||||||||||
41 | .field_name = "extensions", | - | ||||||||||||||||||
42 | .item = &X509_EXTENSION_it, | - | ||||||||||||||||||
43 | }, | - | ||||||||||||||||||
44 | }; | - | ||||||||||||||||||
45 | - | |||||||||||||||||||
46 | const ASN1_ITEM X509_REVOKED_it = { | - | ||||||||||||||||||
47 | .itype = 0x1, | - | ||||||||||||||||||
48 | .utype = 16, | - | ||||||||||||||||||
49 | .templates = X509_REVOKED_seq_tt, | - | ||||||||||||||||||
50 | .tcount = sizeof(X509_REVOKED_seq_tt) / sizeof(ASN1_TEMPLATE), | - | ||||||||||||||||||
51 | .size = sizeof(X509_REVOKED), | - | ||||||||||||||||||
52 | .sname = "X509_REVOKED", | - | ||||||||||||||||||
53 | }; | - | ||||||||||||||||||
54 | - | |||||||||||||||||||
55 | static int def_crl_verify(X509_CRL *crl, EVP_PKEY *r); | - | ||||||||||||||||||
56 | static int def_crl_lookup(X509_CRL *crl, X509_REVOKED **ret, | - | ||||||||||||||||||
57 | ASN1_INTEGER *serial, X509_NAME *issuer); | - | ||||||||||||||||||
58 | - | |||||||||||||||||||
59 | static X509_CRL_METHOD int_crl_meth = { | - | ||||||||||||||||||
60 | .crl_lookup = def_crl_lookup, | - | ||||||||||||||||||
61 | .crl_verify = def_crl_verify | - | ||||||||||||||||||
62 | }; | - | ||||||||||||||||||
63 | - | |||||||||||||||||||
64 | static const X509_CRL_METHOD *default_crl_method = &int_crl_meth; | - | ||||||||||||||||||
65 | - | |||||||||||||||||||
66 | - | |||||||||||||||||||
67 | - | |||||||||||||||||||
68 | - | |||||||||||||||||||
69 | - | |||||||||||||||||||
70 | static int | - | ||||||||||||||||||
71 | crl_inf_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | - | ||||||||||||||||||
72 | { | - | ||||||||||||||||||
73 | X509_CRL_INFO *a = (X509_CRL_INFO *)*pval; | - | ||||||||||||||||||
74 | - | |||||||||||||||||||
75 | if (!a
| 0 | ||||||||||||||||||
76 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
77 | switch (operation) { | - | ||||||||||||||||||
78 | - | |||||||||||||||||||
79 | - | |||||||||||||||||||
80 | - | |||||||||||||||||||
81 | case never executed: 5:case 5: never executed: case 5: | 0 | ||||||||||||||||||
82 | (void)((int (*)(const X509_REVOKED * const *,const X509_REVOKED * const *)) sk_set_cmp_func(((_STACK*) (1 ? (a->revoked) : (struct stack_st_X509_REVOKED*)0)), ((int (*)(const void *, const void *)) ((1 ? (X509_REVOKED_cmp) : (int (*)(const X509_REVOKED * const *, const X509_REVOKED * const *))0))))); | - | ||||||||||||||||||
83 | break; never executed: break; | 0 | ||||||||||||||||||
84 | } | - | ||||||||||||||||||
85 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
86 | } | - | ||||||||||||||||||
87 | - | |||||||||||||||||||
88 | - | |||||||||||||||||||
89 | static const ASN1_AUX X509_CRL_INFO_aux = { | - | ||||||||||||||||||
90 | .flags = 2, | - | ||||||||||||||||||
91 | .asn1_cb = crl_inf_cb, | - | ||||||||||||||||||
92 | .enc_offset = | - | ||||||||||||||||||
93 | __builtin_offsetof ( | - | ||||||||||||||||||
94 | X509_CRL_INFO | - | ||||||||||||||||||
95 | , | - | ||||||||||||||||||
96 | enc | - | ||||||||||||||||||
97 | ) | - | ||||||||||||||||||
98 | , | - | ||||||||||||||||||
99 | }; | - | ||||||||||||||||||
100 | static const ASN1_TEMPLATE X509_CRL_INFO_seq_tt[] = { | - | ||||||||||||||||||
101 | { | - | ||||||||||||||||||
102 | .flags = (0x1), | - | ||||||||||||||||||
103 | .offset = | - | ||||||||||||||||||
104 | __builtin_offsetof ( | - | ||||||||||||||||||
105 | X509_CRL_INFO | - | ||||||||||||||||||
106 | , | - | ||||||||||||||||||
107 | version | - | ||||||||||||||||||
108 | ) | - | ||||||||||||||||||
109 | , | - | ||||||||||||||||||
110 | .field_name = "version", | - | ||||||||||||||||||
111 | .item = &ASN1_INTEGER_it, | - | ||||||||||||||||||
112 | }, | - | ||||||||||||||||||
113 | { | - | ||||||||||||||||||
114 | .offset = | - | ||||||||||||||||||
115 | __builtin_offsetof ( | - | ||||||||||||||||||
116 | X509_CRL_INFO | - | ||||||||||||||||||
117 | , | - | ||||||||||||||||||
118 | sig_alg | - | ||||||||||||||||||
119 | ) | - | ||||||||||||||||||
120 | , | - | ||||||||||||||||||
121 | .field_name = "sig_alg", | - | ||||||||||||||||||
122 | .item = &X509_ALGOR_it, | - | ||||||||||||||||||
123 | }, | - | ||||||||||||||||||
124 | { | - | ||||||||||||||||||
125 | .offset = | - | ||||||||||||||||||
126 | __builtin_offsetof ( | - | ||||||||||||||||||
127 | X509_CRL_INFO | - | ||||||||||||||||||
128 | , | - | ||||||||||||||||||
129 | issuer | - | ||||||||||||||||||
130 | ) | - | ||||||||||||||||||
131 | , | - | ||||||||||||||||||
132 | .field_name = "issuer", | - | ||||||||||||||||||
133 | .item = &X509_NAME_it, | - | ||||||||||||||||||
134 | }, | - | ||||||||||||||||||
135 | { | - | ||||||||||||||||||
136 | .offset = | - | ||||||||||||||||||
137 | __builtin_offsetof ( | - | ||||||||||||||||||
138 | X509_CRL_INFO | - | ||||||||||||||||||
139 | , | - | ||||||||||||||||||
140 | lastUpdate | - | ||||||||||||||||||
141 | ) | - | ||||||||||||||||||
142 | , | - | ||||||||||||||||||
143 | .field_name = "lastUpdate", | - | ||||||||||||||||||
144 | .item = &ASN1_TIME_it, | - | ||||||||||||||||||
145 | }, | - | ||||||||||||||||||
146 | { | - | ||||||||||||||||||
147 | .flags = (0x1), | - | ||||||||||||||||||
148 | .offset = | - | ||||||||||||||||||
149 | __builtin_offsetof ( | - | ||||||||||||||||||
150 | X509_CRL_INFO | - | ||||||||||||||||||
151 | , | - | ||||||||||||||||||
152 | nextUpdate | - | ||||||||||||||||||
153 | ) | - | ||||||||||||||||||
154 | , | - | ||||||||||||||||||
155 | .field_name = "nextUpdate", | - | ||||||||||||||||||
156 | .item = &ASN1_TIME_it, | - | ||||||||||||||||||
157 | }, | - | ||||||||||||||||||
158 | { | - | ||||||||||||||||||
159 | .flags = (0x2 << 1) | (0x1), | - | ||||||||||||||||||
160 | .offset = | - | ||||||||||||||||||
161 | __builtin_offsetof ( | - | ||||||||||||||||||
162 | X509_CRL_INFO | - | ||||||||||||||||||
163 | , | - | ||||||||||||||||||
164 | revoked | - | ||||||||||||||||||
165 | ) | - | ||||||||||||||||||
166 | , | - | ||||||||||||||||||
167 | .field_name = "revoked", | - | ||||||||||||||||||
168 | .item = &X509_REVOKED_it, | - | ||||||||||||||||||
169 | }, | - | ||||||||||||||||||
170 | { | - | ||||||||||||||||||
171 | .flags = (0x2 << 3)|(0x2<<6) | (0x2 << 1) | (0x1), | - | ||||||||||||||||||
172 | .offset = | - | ||||||||||||||||||
173 | __builtin_offsetof ( | - | ||||||||||||||||||
174 | X509_CRL_INFO | - | ||||||||||||||||||
175 | , | - | ||||||||||||||||||
176 | extensions | - | ||||||||||||||||||
177 | ) | - | ||||||||||||||||||
178 | , | - | ||||||||||||||||||
179 | .field_name = "extensions", | - | ||||||||||||||||||
180 | .item = &X509_EXTENSION_it, | - | ||||||||||||||||||
181 | }, | - | ||||||||||||||||||
182 | }; | - | ||||||||||||||||||
183 | - | |||||||||||||||||||
184 | const ASN1_ITEM X509_CRL_INFO_it = { | - | ||||||||||||||||||
185 | .itype = 0x1, | - | ||||||||||||||||||
186 | .utype = 16, | - | ||||||||||||||||||
187 | .templates = X509_CRL_INFO_seq_tt, | - | ||||||||||||||||||
188 | .tcount = sizeof(X509_CRL_INFO_seq_tt) / sizeof(ASN1_TEMPLATE), | - | ||||||||||||||||||
189 | .funcs = &X509_CRL_INFO_aux, | - | ||||||||||||||||||
190 | .size = sizeof(X509_CRL_INFO), | - | ||||||||||||||||||
191 | .sname = "X509_CRL_INFO", | - | ||||||||||||||||||
192 | }; | - | ||||||||||||||||||
193 | - | |||||||||||||||||||
194 | - | |||||||||||||||||||
195 | - | |||||||||||||||||||
196 | - | |||||||||||||||||||
197 | - | |||||||||||||||||||
198 | static int | - | ||||||||||||||||||
199 | crl_set_issuers(X509_CRL *crl) | - | ||||||||||||||||||
200 | { | - | ||||||||||||||||||
201 | int i, j; | - | ||||||||||||||||||
202 | GENERAL_NAMES *gens, *gtmp; | - | ||||||||||||||||||
203 | struct stack_st_X509_REVOKED *revoked; | - | ||||||||||||||||||
204 | - | |||||||||||||||||||
205 | revoked = X509_CRL_get_REVOKED(crl); | - | ||||||||||||||||||
206 | - | |||||||||||||||||||
207 | gens = | - | ||||||||||||||||||
208 | ((void *)0) | - | ||||||||||||||||||
209 | ; | - | ||||||||||||||||||
210 | for (i = 0; i < sk_num(((_STACK*) (1 ? (revoked) : (struct stack_st_X509_REVOKED*)0)))
| 0 | ||||||||||||||||||
211 | X509_REVOKED *rev = ((X509_REVOKED *)sk_value(((_STACK*) (1 ? (revoked) : (struct stack_st_X509_REVOKED*)0)), (i))); | - | ||||||||||||||||||
212 | struct stack_st_X509_EXTENSION *exts; | - | ||||||||||||||||||
213 | ASN1_ENUMERATED *reason; | - | ||||||||||||||||||
214 | X509_EXTENSION *ext; | - | ||||||||||||||||||
215 | gtmp = X509_REVOKED_get_ext_d2i(rev, 771, | - | ||||||||||||||||||
216 | &j, | - | ||||||||||||||||||
217 | ((void *)0) | - | ||||||||||||||||||
218 | ); | - | ||||||||||||||||||
219 | if (!gtmp
| 0 | ||||||||||||||||||
220 | crl->flags |= 0x0080; | - | ||||||||||||||||||
221 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
222 | } | - | ||||||||||||||||||
223 | - | |||||||||||||||||||
224 | if (gtmp
| 0 | ||||||||||||||||||
225 | gens = gtmp; | - | ||||||||||||||||||
226 | if (!crl->issuers
| 0 | ||||||||||||||||||
227 | crl->issuers = ((struct stack_st_GENERAL_NAMES *)sk_new_null()); | - | ||||||||||||||||||
228 | if (!crl->issuers
| 0 | ||||||||||||||||||
229 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
230 | } never executed: end of block | 0 | ||||||||||||||||||
231 | if (!sk_push(((_STACK*) (1 ? (crl->issuers) : (struct stack_st_GENERAL_NAMES*)0)), ((void*) (1 ? (gtmp) : (GENERAL_NAMES*)0)))
| 0 | ||||||||||||||||||
232 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
233 | } never executed: end of block | 0 | ||||||||||||||||||
234 | rev->issuer = gens; | - | ||||||||||||||||||
235 | - | |||||||||||||||||||
236 | reason = X509_REVOKED_get_ext_d2i(rev, 141, | - | ||||||||||||||||||
237 | &j, | - | ||||||||||||||||||
238 | ((void *)0) | - | ||||||||||||||||||
239 | ); | - | ||||||||||||||||||
240 | if (!reason
| 0 | ||||||||||||||||||
241 | crl->flags |= 0x0080; | - | ||||||||||||||||||
242 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
243 | } | - | ||||||||||||||||||
244 | - | |||||||||||||||||||
245 | if (reason
| 0 | ||||||||||||||||||
246 | rev->reason = ASN1_ENUMERATED_get(reason); | - | ||||||||||||||||||
247 | ASN1_ENUMERATED_free(reason); | - | ||||||||||||||||||
248 | } never executed: elseend of block | 0 | ||||||||||||||||||
249 | rev->reason = -1; never executed: rev->reason = -1; | 0 | ||||||||||||||||||
250 | - | |||||||||||||||||||
251 | - | |||||||||||||||||||
252 | - | |||||||||||||||||||
253 | exts = rev->extensions; | - | ||||||||||||||||||
254 | - | |||||||||||||||||||
255 | for (j = 0; j < sk_num(((_STACK*) (1 ? (exts) : (struct stack_st_X509_EXTENSION*)0)))
| 0 | ||||||||||||||||||
256 | ext = ((X509_EXTENSION *)sk_value(((_STACK*) (1 ? (exts) : (struct stack_st_X509_EXTENSION*)0)), (j))); | - | ||||||||||||||||||
257 | if (ext->critical > 0
| 0 | ||||||||||||||||||
258 | if (OBJ_obj2nid(ext->object) ==
| 0 | ||||||||||||||||||
259 | 771
| 0 | ||||||||||||||||||
260 | continue; never executed: continue; | 0 | ||||||||||||||||||
261 | crl->flags |= 0x0200; | - | ||||||||||||||||||
262 | break; never executed: break; | 0 | ||||||||||||||||||
263 | } | - | ||||||||||||||||||
264 | } never executed: end of block | 0 | ||||||||||||||||||
265 | } never executed: end of block | 0 | ||||||||||||||||||
266 | - | |||||||||||||||||||
267 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
268 | } | - | ||||||||||||||||||
269 | - | |||||||||||||||||||
270 | - | |||||||||||||||||||
271 | - | |||||||||||||||||||
272 | - | |||||||||||||||||||
273 | static int | - | ||||||||||||||||||
274 | crl_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it, void *exarg) | - | ||||||||||||||||||
275 | { | - | ||||||||||||||||||
276 | X509_CRL *crl = (X509_CRL *)*pval; | - | ||||||||||||||||||
277 | struct stack_st_X509_EXTENSION *exts; | - | ||||||||||||||||||
278 | X509_EXTENSION *ext; | - | ||||||||||||||||||
279 | int idx; | - | ||||||||||||||||||
280 | int rc = 1; | - | ||||||||||||||||||
281 | - | |||||||||||||||||||
282 | switch (operation) { | - | ||||||||||||||||||
283 | case never executed: 1:case 1: never executed: case 1: | 0 | ||||||||||||||||||
284 | crl->idp = | - | ||||||||||||||||||
285 | ((void *)0) | - | ||||||||||||||||||
286 | ; | - | ||||||||||||||||||
287 | crl->akid = | - | ||||||||||||||||||
288 | ((void *)0) | - | ||||||||||||||||||
289 | ; | - | ||||||||||||||||||
290 | crl->flags = 0; | - | ||||||||||||||||||
291 | crl->idp_flags = 0; | - | ||||||||||||||||||
292 | crl->idp_reasons = 0x807f; | - | ||||||||||||||||||
293 | crl->meth = default_crl_method; | - | ||||||||||||||||||
294 | crl->meth_data = | - | ||||||||||||||||||
295 | ((void *)0) | - | ||||||||||||||||||
296 | ; | - | ||||||||||||||||||
297 | crl->issuers = | - | ||||||||||||||||||
298 | ((void *)0) | - | ||||||||||||||||||
299 | ; | - | ||||||||||||||||||
300 | crl->crl_number = | - | ||||||||||||||||||
301 | ((void *)0) | - | ||||||||||||||||||
302 | ; | - | ||||||||||||||||||
303 | crl->base_crl_number = | - | ||||||||||||||||||
304 | ((void *)0) | - | ||||||||||||||||||
305 | ; | - | ||||||||||||||||||
306 | break; never executed: break; | 0 | ||||||||||||||||||
307 | - | |||||||||||||||||||
308 | case never executed: 5:case 5: never executed: case 5: | 0 | ||||||||||||||||||
309 | - | |||||||||||||||||||
310 | X509_CRL_digest(crl, EVP_sha1(), crl->sha1_hash, | - | ||||||||||||||||||
311 | ((void *)0) | - | ||||||||||||||||||
312 | ); | - | ||||||||||||||||||
313 | - | |||||||||||||||||||
314 | crl->idp = X509_CRL_get_ext_d2i(crl, | - | ||||||||||||||||||
315 | 770, | - | ||||||||||||||||||
316 | ((void *)0) | - | ||||||||||||||||||
317 | , | - | ||||||||||||||||||
318 | ((void *)0) | - | ||||||||||||||||||
319 | ); | - | ||||||||||||||||||
320 | if (crl->idp
| 0 | ||||||||||||||||||
321 | setup_idp(crl, crl->idp); never executed: setup_idp(crl, crl->idp); | 0 | ||||||||||||||||||
322 | - | |||||||||||||||||||
323 | crl->akid = X509_CRL_get_ext_d2i(crl, | - | ||||||||||||||||||
324 | 90, | - | ||||||||||||||||||
325 | ((void *)0) | - | ||||||||||||||||||
326 | , | - | ||||||||||||||||||
327 | ((void *)0) | - | ||||||||||||||||||
328 | ); | - | ||||||||||||||||||
329 | - | |||||||||||||||||||
330 | crl->crl_number = X509_CRL_get_ext_d2i(crl, | - | ||||||||||||||||||
331 | 88, | - | ||||||||||||||||||
332 | ((void *)0) | - | ||||||||||||||||||
333 | , | - | ||||||||||||||||||
334 | ((void *)0) | - | ||||||||||||||||||
335 | ); | - | ||||||||||||||||||
336 | - | |||||||||||||||||||
337 | crl->base_crl_number = X509_CRL_get_ext_d2i(crl, | - | ||||||||||||||||||
338 | 140, | - | ||||||||||||||||||
339 | ((void *)0) | - | ||||||||||||||||||
340 | , | - | ||||||||||||||||||
341 | ((void *)0) | - | ||||||||||||||||||
342 | ); | - | ||||||||||||||||||
343 | - | |||||||||||||||||||
344 | if (crl->base_crl_number
| 0 | ||||||||||||||||||
345 | crl->flags |= 0x0080; never executed: crl->flags |= 0x0080; | 0 | ||||||||||||||||||
346 | exts = crl->crl->extensions; | - | ||||||||||||||||||
347 | - | |||||||||||||||||||
348 | for (idx = 0; idx < sk_num(((_STACK*) (1 ? (exts) : (struct stack_st_X509_EXTENSION*)0)))
| 0 | ||||||||||||||||||
349 | int nid; | - | ||||||||||||||||||
350 | ext = ((X509_EXTENSION *)sk_value(((_STACK*) (1 ? (exts) : (struct stack_st_X509_EXTENSION*)0)), (idx))); | - | ||||||||||||||||||
351 | nid = OBJ_obj2nid(ext->object); | - | ||||||||||||||||||
352 | if (nid == 857
| 0 | ||||||||||||||||||
353 | crl->flags |= 0x1000; never executed: crl->flags |= 0x1000; | 0 | ||||||||||||||||||
354 | if (ext->critical > 0
| 0 | ||||||||||||||||||
355 | - | |||||||||||||||||||
356 | if (nid == 770
| 0 | ||||||||||||||||||
357 | nid == 90
| 0 | ||||||||||||||||||
358 | nid == 140
| 0 | ||||||||||||||||||
359 | break; never executed: break; | 0 | ||||||||||||||||||
360 | crl->flags |= 0x0200; | - | ||||||||||||||||||
361 | break; never executed: break; | 0 | ||||||||||||||||||
362 | } | - | ||||||||||||||||||
363 | } never executed: end of block | 0 | ||||||||||||||||||
364 | - | |||||||||||||||||||
365 | if (!crl_set_issuers(crl)
| 0 | ||||||||||||||||||
366 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
367 | - | |||||||||||||||||||
368 | if (crl->meth->crl_init
| 0 | ||||||||||||||||||
369 | if (crl->meth->crl_init(crl) == 0
| 0 | ||||||||||||||||||
370 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
371 | } never executed: end of block | 0 | ||||||||||||||||||
372 | break; never executed: break; | 0 | ||||||||||||||||||
373 | - | |||||||||||||||||||
374 | case never executed: 3:case 3: never executed: case 3: | 0 | ||||||||||||||||||
375 | if (crl->meth->crl_free
| 0 | ||||||||||||||||||
376 | if (!crl->meth->crl_free(crl)
| 0 | ||||||||||||||||||
377 | rc = 0; never executed: rc = 0; | 0 | ||||||||||||||||||
378 | } never executed: end of block | 0 | ||||||||||||||||||
379 | if (crl->akid
| 0 | ||||||||||||||||||
380 | AUTHORITY_KEYID_free(crl->akid); never executed: AUTHORITY_KEYID_free(crl->akid); | 0 | ||||||||||||||||||
381 | if (crl->idp
| 0 | ||||||||||||||||||
382 | ISSUING_DIST_POINT_free(crl->idp); never executed: ISSUING_DIST_POINT_free(crl->idp); | 0 | ||||||||||||||||||
383 | ASN1_INTEGER_free(crl->crl_number); | - | ||||||||||||||||||
384 | ASN1_INTEGER_free(crl->base_crl_number); | - | ||||||||||||||||||
385 | sk_pop_free(((_STACK*) (1 ? (crl->issuers) : (struct stack_st_GENERAL_NAMES*)0)), ((void (*)(void *)) ((1 ? (GENERAL_NAMES_free) : (void (*)(GENERAL_NAMES *))0)))); | - | ||||||||||||||||||
386 | break; never executed: break; | 0 | ||||||||||||||||||
387 | } | - | ||||||||||||||||||
388 | return never executed: rc;return rc; never executed: return rc; | 0 | ||||||||||||||||||
389 | } | - | ||||||||||||||||||
390 | - | |||||||||||||||||||
391 | - | |||||||||||||||||||
392 | - | |||||||||||||||||||
393 | static void | - | ||||||||||||||||||
394 | setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp) | - | ||||||||||||||||||
395 | { | - | ||||||||||||||||||
396 | int idp_only = 0; | - | ||||||||||||||||||
397 | - | |||||||||||||||||||
398 | - | |||||||||||||||||||
399 | crl->idp_flags |= 0x1; | - | ||||||||||||||||||
400 | if (idp->onlyuser > 0
| 0 | ||||||||||||||||||
401 | idp_only++; | - | ||||||||||||||||||
402 | crl->idp_flags |= 0x4; | - | ||||||||||||||||||
403 | } never executed: end of block | 0 | ||||||||||||||||||
404 | if (idp->onlyCA > 0
| 0 | ||||||||||||||||||
405 | idp_only++; | - | ||||||||||||||||||
406 | crl->idp_flags |= 0x8; | - | ||||||||||||||||||
407 | } never executed: end of block | 0 | ||||||||||||||||||
408 | if (idp->onlyattr > 0
| 0 | ||||||||||||||||||
409 | idp_only++; | - | ||||||||||||||||||
410 | crl->idp_flags |= 0x10; | - | ||||||||||||||||||
411 | } never executed: end of block | 0 | ||||||||||||||||||
412 | - | |||||||||||||||||||
413 | if (idp_only > 1
| 0 | ||||||||||||||||||
414 | crl->idp_flags |= 0x2; never executed: crl->idp_flags |= 0x2; | 0 | ||||||||||||||||||
415 | - | |||||||||||||||||||
416 | if (idp->indirectCRL > 0
| 0 | ||||||||||||||||||
417 | crl->idp_flags |= 0x20; never executed: crl->idp_flags |= 0x20; | 0 | ||||||||||||||||||
418 | - | |||||||||||||||||||
419 | if (idp->onlysomereasons
| 0 | ||||||||||||||||||
420 | crl->idp_flags |= 0x40; | - | ||||||||||||||||||
421 | if (idp->onlysomereasons->length > 0
| 0 | ||||||||||||||||||
422 | crl->idp_reasons = idp->onlysomereasons->data[0]; never executed: crl->idp_reasons = idp->onlysomereasons->data[0]; | 0 | ||||||||||||||||||
423 | if (idp->onlysomereasons->length > 1
| 0 | ||||||||||||||||||
424 | crl->idp_reasons |= never executed: crl->idp_reasons |= (idp->onlysomereasons->data[1] << 8); | 0 | ||||||||||||||||||
425 | (idp->onlysomereasons->data[1] << 8); never executed: crl->idp_reasons |= (idp->onlysomereasons->data[1] << 8); | 0 | ||||||||||||||||||
426 | crl->idp_reasons &= 0x807f; | - | ||||||||||||||||||
427 | } never executed: end of block | 0 | ||||||||||||||||||
428 | - | |||||||||||||||||||
429 | DIST_POINT_set_dpname(idp->distpoint, X509_CRL_get_issuer(crl)); | - | ||||||||||||||||||
430 | } never executed: end of block | 0 | ||||||||||||||||||
431 | - | |||||||||||||||||||
432 | static const ASN1_AUX X509_CRL_aux = { | - | ||||||||||||||||||
433 | .app_data = | - | ||||||||||||||||||
434 | ((void *)0) | - | ||||||||||||||||||
435 | , | - | ||||||||||||||||||
436 | .flags = 1, | - | ||||||||||||||||||
437 | .ref_offset = | - | ||||||||||||||||||
438 | __builtin_offsetof ( | - | ||||||||||||||||||
439 | X509_CRL | - | ||||||||||||||||||
440 | , | - | ||||||||||||||||||
441 | references | - | ||||||||||||||||||
442 | ) | - | ||||||||||||||||||
443 | , | - | ||||||||||||||||||
444 | .ref_lock = 6, | - | ||||||||||||||||||
445 | .asn1_cb = crl_cb, | - | ||||||||||||||||||
446 | }; | - | ||||||||||||||||||
447 | static const ASN1_TEMPLATE X509_CRL_seq_tt[] = { | - | ||||||||||||||||||
448 | { | - | ||||||||||||||||||
449 | .offset = | - | ||||||||||||||||||
450 | __builtin_offsetof ( | - | ||||||||||||||||||
451 | X509_CRL | - | ||||||||||||||||||
452 | , | - | ||||||||||||||||||
453 | crl | - | ||||||||||||||||||
454 | ) | - | ||||||||||||||||||
455 | , | - | ||||||||||||||||||
456 | .field_name = "crl", | - | ||||||||||||||||||
457 | .item = &X509_CRL_INFO_it, | - | ||||||||||||||||||
458 | }, | - | ||||||||||||||||||
459 | { | - | ||||||||||||||||||
460 | .offset = | - | ||||||||||||||||||
461 | __builtin_offsetof ( | - | ||||||||||||||||||
462 | X509_CRL | - | ||||||||||||||||||
463 | , | - | ||||||||||||||||||
464 | sig_alg | - | ||||||||||||||||||
465 | ) | - | ||||||||||||||||||
466 | , | - | ||||||||||||||||||
467 | .field_name = "sig_alg", | - | ||||||||||||||||||
468 | .item = &X509_ALGOR_it, | - | ||||||||||||||||||
469 | }, | - | ||||||||||||||||||
470 | { | - | ||||||||||||||||||
471 | .offset = | - | ||||||||||||||||||
472 | __builtin_offsetof ( | - | ||||||||||||||||||
473 | X509_CRL | - | ||||||||||||||||||
474 | , | - | ||||||||||||||||||
475 | signature | - | ||||||||||||||||||
476 | ) | - | ||||||||||||||||||
477 | , | - | ||||||||||||||||||
478 | .field_name = "signature", | - | ||||||||||||||||||
479 | .item = &ASN1_BIT_STRING_it, | - | ||||||||||||||||||
480 | }, | - | ||||||||||||||||||
481 | }; | - | ||||||||||||||||||
482 | - | |||||||||||||||||||
483 | const ASN1_ITEM X509_CRL_it = { | - | ||||||||||||||||||
484 | .itype = 0x1, | - | ||||||||||||||||||
485 | .utype = 16, | - | ||||||||||||||||||
486 | .templates = X509_CRL_seq_tt, | - | ||||||||||||||||||
487 | .tcount = sizeof(X509_CRL_seq_tt) / sizeof(ASN1_TEMPLATE), | - | ||||||||||||||||||
488 | .funcs = &X509_CRL_aux, | - | ||||||||||||||||||
489 | .size = sizeof(X509_CRL), | - | ||||||||||||||||||
490 | .sname = "X509_CRL", | - | ||||||||||||||||||
491 | }; | - | ||||||||||||||||||
492 | - | |||||||||||||||||||
493 | - | |||||||||||||||||||
494 | X509_REVOKED * | - | ||||||||||||||||||
495 | d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len) | - | ||||||||||||||||||
496 | { | - | ||||||||||||||||||
497 | return never executed: (X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_REVOKED_it); never executed: return (X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_REVOKED_it); | 0 | ||||||||||||||||||
498 | &X509_REVOKED_it); never executed: return (X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_REVOKED_it); | 0 | ||||||||||||||||||
499 | } | - | ||||||||||||||||||
500 | - | |||||||||||||||||||
501 | int | - | ||||||||||||||||||
502 | i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out) | - | ||||||||||||||||||
503 | { | - | ||||||||||||||||||
504 | return never executed: ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REVOKED_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REVOKED_it); never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REVOKED_it); | 0 | ||||||||||||||||||
505 | } | - | ||||||||||||||||||
506 | - | |||||||||||||||||||
507 | X509_REVOKED * | - | ||||||||||||||||||
508 | X509_REVOKED_new(void) | - | ||||||||||||||||||
509 | { | - | ||||||||||||||||||
510 | return never executed: (X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it);return (X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it); never executed: return (X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it); | 0 | ||||||||||||||||||
511 | } | - | ||||||||||||||||||
512 | - | |||||||||||||||||||
513 | void | - | ||||||||||||||||||
514 | X509_REVOKED_free(X509_REVOKED *a) | - | ||||||||||||||||||
515 | { | - | ||||||||||||||||||
516 | ASN1_item_free((ASN1_VALUE *)a, &X509_REVOKED_it); | - | ||||||||||||||||||
517 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||||||||
518 | - | |||||||||||||||||||
519 | X509_REVOKED * | - | ||||||||||||||||||
520 | X509_REVOKED_dup(X509_REVOKED *a) | - | ||||||||||||||||||
521 | { | - | ||||||||||||||||||
522 | return never executed: ASN1_item_dup(&X509_REVOKED_it, a);return ASN1_item_dup(&X509_REVOKED_it, a); never executed: return ASN1_item_dup(&X509_REVOKED_it, a); | 0 | ||||||||||||||||||
523 | } | - | ||||||||||||||||||
524 | - | |||||||||||||||||||
525 | X509_CRL_INFO * | - | ||||||||||||||||||
526 | d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len) | - | ||||||||||||||||||
527 | { | - | ||||||||||||||||||
528 | return never executed: (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_INFO_it); never executed: return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_INFO_it); | 0 | ||||||||||||||||||
529 | &X509_CRL_INFO_it); never executed: return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_INFO_it); | 0 | ||||||||||||||||||
530 | } | - | ||||||||||||||||||
531 | - | |||||||||||||||||||
532 | int | - | ||||||||||||||||||
533 | i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out) | - | ||||||||||||||||||
534 | { | - | ||||||||||||||||||
535 | return never executed: ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_INFO_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_INFO_it); never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_INFO_it); | 0 | ||||||||||||||||||
536 | } | - | ||||||||||||||||||
537 | - | |||||||||||||||||||
538 | X509_CRL_INFO * | - | ||||||||||||||||||
539 | X509_CRL_INFO_new(void) | - | ||||||||||||||||||
540 | { | - | ||||||||||||||||||
541 | return never executed: (X509_CRL_INFO *)ASN1_item_new(&X509_CRL_INFO_it);return (X509_CRL_INFO *)ASN1_item_new(&X509_CRL_INFO_it); never executed: return (X509_CRL_INFO *)ASN1_item_new(&X509_CRL_INFO_it); | 0 | ||||||||||||||||||
542 | } | - | ||||||||||||||||||
543 | - | |||||||||||||||||||
544 | void | - | ||||||||||||||||||
545 | X509_CRL_INFO_free(X509_CRL_INFO *a) | - | ||||||||||||||||||
546 | { | - | ||||||||||||||||||
547 | ASN1_item_free((ASN1_VALUE *)a, &X509_CRL_INFO_it); | - | ||||||||||||||||||
548 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||||||||
549 | - | |||||||||||||||||||
550 | X509_CRL * | - | ||||||||||||||||||
551 | d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len) | - | ||||||||||||||||||
552 | { | - | ||||||||||||||||||
553 | return never executed: (X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_it); never executed: return (X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_it); | 0 | ||||||||||||||||||
554 | &X509_CRL_it); never executed: return (X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_it); | 0 | ||||||||||||||||||
555 | } | - | ||||||||||||||||||
556 | - | |||||||||||||||||||
557 | int | - | ||||||||||||||||||
558 | i2d_X509_CRL(X509_CRL *a, unsigned char **out) | - | ||||||||||||||||||
559 | { | - | ||||||||||||||||||
560 | return never executed: ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_it); never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_it); | 0 | ||||||||||||||||||
561 | } | - | ||||||||||||||||||
562 | - | |||||||||||||||||||
563 | X509_CRL * | - | ||||||||||||||||||
564 | X509_CRL_new(void) | - | ||||||||||||||||||
565 | { | - | ||||||||||||||||||
566 | return never executed: (X509_CRL *)ASN1_item_new(&X509_CRL_it);return (X509_CRL *)ASN1_item_new(&X509_CRL_it); never executed: return (X509_CRL *)ASN1_item_new(&X509_CRL_it); | 0 | ||||||||||||||||||
567 | } | - | ||||||||||||||||||
568 | - | |||||||||||||||||||
569 | void | - | ||||||||||||||||||
570 | X509_CRL_free(X509_CRL *a) | - | ||||||||||||||||||
571 | { | - | ||||||||||||||||||
572 | ASN1_item_free((ASN1_VALUE *)a, &X509_CRL_it); | - | ||||||||||||||||||
573 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||||||||
574 | - | |||||||||||||||||||
575 | X509_CRL * | - | ||||||||||||||||||
576 | X509_CRL_dup(X509_CRL *x) | - | ||||||||||||||||||
577 | { | - | ||||||||||||||||||
578 | return never executed: ASN1_item_dup(&X509_CRL_it, x);return ASN1_item_dup(&X509_CRL_it, x); never executed: return ASN1_item_dup(&X509_CRL_it, x); | 0 | ||||||||||||||||||
579 | } | - | ||||||||||||||||||
580 | - | |||||||||||||||||||
581 | static int | - | ||||||||||||||||||
582 | X509_REVOKED_cmp(const X509_REVOKED * const *a, const X509_REVOKED * const *b) | - | ||||||||||||||||||
583 | { | - | ||||||||||||||||||
584 | return never executed: (ASN1_STRING_cmp(return(ASN1_STRING_cmp( (ASN1_STRING *)(*a)->serialNumber, (ASN1_STRING *)(*b)->serialNumber)); never executed: return(ASN1_STRING_cmp( (ASN1_STRING *)(*a)->serialNumber, (ASN1_STRING *)(*b)->serialNumber)); | 0 | ||||||||||||||||||
585 | (ASN1_STRING *)(*a)->serialNumber, never executed: return(ASN1_STRING_cmp( (ASN1_STRING *)(*a)->serialNumber, (ASN1_STRING *)(*b)->serialNumber)); | 0 | ||||||||||||||||||
586 | (ASN1_STRING *)(*b)->serialNumber)); never executed: return(ASN1_STRING_cmp( (ASN1_STRING *)(*a)->serialNumber, (ASN1_STRING *)(*b)->serialNumber)); | 0 | ||||||||||||||||||
587 | } | - | ||||||||||||||||||
588 | - | |||||||||||||||||||
589 | int | - | ||||||||||||||||||
590 | X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev) | - | ||||||||||||||||||
591 | { | - | ||||||||||||||||||
592 | X509_CRL_INFO *inf; | - | ||||||||||||||||||
593 | - | |||||||||||||||||||
594 | inf = crl->crl; | - | ||||||||||||||||||
595 | if (!inf->revoked
| 0 | ||||||||||||||||||
596 | inf->revoked = ((struct stack_st_X509_REVOKED *)sk_new(((int (*)(const void *, const void *)) ((1 ? (X509_REVOKED_cmp) : (int (*)(const X509_REVOKED * const *, const X509_REVOKED * const *))0))))); never executed: inf->revoked = ((struct stack_st_X509_REVOKED *)sk_new(((int (*)(const void *, const void *)) ((1 ? (X509_REVOKED_cmp) : (int (*)(const X509_REVOKED * const *, const X509_REVOKED * const *))0))))); | 0 | ||||||||||||||||||
597 | if (!inf->revoked
| 0 | ||||||||||||||||||
598 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,544); | - | ||||||||||||||||||
599 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
600 | } | - | ||||||||||||||||||
601 | inf->enc.modified = 1; | - | ||||||||||||||||||
602 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
603 | } | - | ||||||||||||||||||
604 | - | |||||||||||||||||||
605 | int | - | ||||||||||||||||||
606 | X509_CRL_verify(X509_CRL *crl, EVP_PKEY *r) | - | ||||||||||||||||||
607 | { | - | ||||||||||||||||||
608 | if (crl->meth->crl_verify
| 0 | ||||||||||||||||||
609 | return never executed: crl->meth->crl_verify(crl, r);return crl->meth->crl_verify(crl, r); never executed: return crl->meth->crl_verify(crl, r); | 0 | ||||||||||||||||||
610 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
611 | } | - | ||||||||||||||||||
612 | - | |||||||||||||||||||
613 | int | - | ||||||||||||||||||
614 | X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret, | - | ||||||||||||||||||
615 | ASN1_INTEGER *serial) | - | ||||||||||||||||||
616 | { | - | ||||||||||||||||||
617 | if (crl->meth->crl_lookup
| 0 | ||||||||||||||||||
618 | return never executed: crl->meth->crl_lookup(crl, ret, serial, return crl->meth->crl_lookup(crl, ret, serial, ((void *)0) ); never executed: return crl->meth->crl_lookup(crl, ret, serial, ((void *)0) ); | 0 | ||||||||||||||||||
619 | ((void *)0) never executed: return crl->meth->crl_lookup(crl, ret, serial, ((void *)0) ); | 0 | ||||||||||||||||||
620 | ); never executed: return crl->meth->crl_lookup(crl, ret, serial, ((void *)0) ); | 0 | ||||||||||||||||||
621 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
622 | } | - | ||||||||||||||||||
623 | - | |||||||||||||||||||
624 | int | - | ||||||||||||||||||
625 | X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x) | - | ||||||||||||||||||
626 | { | - | ||||||||||||||||||
627 | if (crl->meth->crl_lookup
| 0 | ||||||||||||||||||
628 | return never executed: crl->meth->crl_lookup(crl, ret,return crl->meth->crl_lookup(crl, ret, X509_get_serialNumber(x), X509_get_issuer_name(x)); never executed: return crl->meth->crl_lookup(crl, ret, X509_get_serialNumber(x), X509_get_issuer_name(x)); | 0 | ||||||||||||||||||
629 | X509_get_serialNumber(x), X509_get_issuer_name(x)); never executed: return crl->meth->crl_lookup(crl, ret, X509_get_serialNumber(x), X509_get_issuer_name(x)); | 0 | ||||||||||||||||||
630 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
631 | } | - | ||||||||||||||||||
632 | - | |||||||||||||||||||
633 | static int | - | ||||||||||||||||||
634 | def_crl_verify(X509_CRL *crl, EVP_PKEY *r) | - | ||||||||||||||||||
635 | { | - | ||||||||||||||||||
636 | return never executed: (ASN1_item_verify(&X509_CRL_INFO_it,return(ASN1_item_verify(&X509_CRL_INFO_it, crl->sig_alg, crl->signature, crl->crl, r)); never executed: return(ASN1_item_verify(&X509_CRL_INFO_it, crl->sig_alg, crl->signature, crl->crl, r)); | 0 | ||||||||||||||||||
637 | crl->sig_alg, crl->signature, crl->crl, r)); never executed: return(ASN1_item_verify(&X509_CRL_INFO_it, crl->sig_alg, crl->signature, crl->crl, r)); | 0 | ||||||||||||||||||
638 | } | - | ||||||||||||||||||
639 | - | |||||||||||||||||||
640 | static int | - | ||||||||||||||||||
641 | crl_revoked_issuer_match(X509_CRL *crl, X509_NAME *nm, X509_REVOKED *rev) | - | ||||||||||||||||||
642 | { | - | ||||||||||||||||||
643 | int i; | - | ||||||||||||||||||
644 | - | |||||||||||||||||||
645 | if (!rev->issuer
| 0 | ||||||||||||||||||
646 | if (!nm
| 0 | ||||||||||||||||||
647 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
648 | if (!X509_NAME_cmp(nm, X509_CRL_get_issuer(crl))
| 0 | ||||||||||||||||||
649 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
650 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
651 | } | - | ||||||||||||||||||
652 | - | |||||||||||||||||||
653 | if (!nm
| 0 | ||||||||||||||||||
654 | nm = X509_CRL_get_issuer(crl); never executed: nm = X509_CRL_get_issuer(crl); | 0 | ||||||||||||||||||
655 | - | |||||||||||||||||||
656 | for (i = 0; i < sk_num(((_STACK*) (1 ? (rev->issuer) : (struct stack_st_GENERAL_NAME*)0)))
| 0 | ||||||||||||||||||
657 | GENERAL_NAME *gen = ((GENERAL_NAME *)sk_value(((_STACK*) (1 ? (rev->issuer) : (struct stack_st_GENERAL_NAME*)0)), (i))); | - | ||||||||||||||||||
658 | if (gen->type != 4
| 0 | ||||||||||||||||||
659 | continue; never executed: continue; | 0 | ||||||||||||||||||
660 | if (!X509_NAME_cmp(nm, gen->d.directoryName)
| 0 | ||||||||||||||||||
661 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
662 | } never executed: end of block | 0 | ||||||||||||||||||
663 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
664 | - | |||||||||||||||||||
665 | } | - | ||||||||||||||||||
666 | - | |||||||||||||||||||
667 | static int | - | ||||||||||||||||||
668 | def_crl_lookup(X509_CRL *crl, X509_REVOKED **ret, ASN1_INTEGER *serial, | - | ||||||||||||||||||
669 | X509_NAME *issuer) | - | ||||||||||||||||||
670 | { | - | ||||||||||||||||||
671 | X509_REVOKED rtmp, *rev; | - | ||||||||||||||||||
672 | int idx; | - | ||||||||||||||||||
673 | - | |||||||||||||||||||
674 | rtmp.serialNumber = serial; | - | ||||||||||||||||||
675 | - | |||||||||||||||||||
676 | - | |||||||||||||||||||
677 | - | |||||||||||||||||||
678 | if (!sk_is_sorted(((_STACK*) (1 ? (crl->crl->revoked) : (struct stack_st_X509_REVOKED*)0)))
| 0 | ||||||||||||||||||
679 | CRYPTO_lock(1|8,6,__FILE__,623); | - | ||||||||||||||||||
680 | sk_sort(((_STACK*) (1 ? (crl->crl->revoked) : (struct stack_st_X509_REVOKED*)0))); | - | ||||||||||||||||||
681 | CRYPTO_lock(2|8,6,__FILE__,625); | - | ||||||||||||||||||
682 | } never executed: end of block | 0 | ||||||||||||||||||
683 | idx = sk_find(((_STACK*) (1 ? (crl->crl->revoked) : (struct stack_st_X509_REVOKED*)0)), ((void*) (1 ? (&rtmp) : (X509_REVOKED*)0))); | - | ||||||||||||||||||
684 | if (idx < 0
| 0 | ||||||||||||||||||
685 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
686 | - | |||||||||||||||||||
687 | for (; idx < sk_num(((_STACK*) (1 ? (crl->crl->revoked) : (struct stack_st_X509_REVOKED*)0)))
| 0 | ||||||||||||||||||
688 | rev = ((X509_REVOKED *)sk_value(((_STACK*) (1 ? (crl->crl->revoked) : (struct stack_st_X509_REVOKED*)0)), (idx))); | - | ||||||||||||||||||
689 | if (ASN1_INTEGER_cmp(rev->serialNumber, serial)
| 0 | ||||||||||||||||||
690 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
691 | if (crl_revoked_issuer_match(crl, issuer, rev)
| 0 | ||||||||||||||||||
692 | if (ret
| 0 | ||||||||||||||||||
693 | * never executed: ret = rev;*ret = rev; never executed: *ret = rev; | 0 | ||||||||||||||||||
694 | if (rev->reason == 8
| 0 | ||||||||||||||||||
695 | return never executed: 2;return 2; never executed: return 2; | 0 | ||||||||||||||||||
696 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||
697 | } | - | ||||||||||||||||||
698 | } never executed: end of block | 0 | ||||||||||||||||||
699 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
700 | } | - | ||||||||||||||||||
701 | - | |||||||||||||||||||
702 | void | - | ||||||||||||||||||
703 | X509_CRL_set_default_method(const X509_CRL_METHOD *meth) | - | ||||||||||||||||||
704 | { | - | ||||||||||||||||||
705 | if (meth ==
| 0 | ||||||||||||||||||
706 | ((void *)0)
| 0 | ||||||||||||||||||
707 | ) | - | ||||||||||||||||||
708 | default_crl_method = &int_crl_meth; never executed: default_crl_method = &int_crl_meth; | 0 | ||||||||||||||||||
709 | else | - | ||||||||||||||||||
710 | default_crl_method = meth; never executed: default_crl_method = meth; | 0 | ||||||||||||||||||
711 | } | - | ||||||||||||||||||
712 | - | |||||||||||||||||||
713 | X509_CRL_METHOD * | - | ||||||||||||||||||
714 | X509_CRL_METHOD_new(int (*crl_init)(X509_CRL *crl), | - | ||||||||||||||||||
715 | int (*crl_free)(X509_CRL *crl), | - | ||||||||||||||||||
716 | int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret, | - | ||||||||||||||||||
717 | ASN1_INTEGER *ser, X509_NAME *issuer), | - | ||||||||||||||||||
718 | int (*crl_verify)(X509_CRL *crl, EVP_PKEY *pk)) | - | ||||||||||||||||||
719 | { | - | ||||||||||||||||||
720 | X509_CRL_METHOD *m; | - | ||||||||||||||||||
721 | - | |||||||||||||||||||
722 | m = malloc(sizeof(X509_CRL_METHOD)); | - | ||||||||||||||||||
723 | if (!m
| 0 | ||||||||||||||||||
724 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
725 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
726 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||
727 | m->crl_init = crl_init; | - | ||||||||||||||||||
728 | m->crl_free = crl_free; | - | ||||||||||||||||||
729 | m->crl_lookup = crl_lookup; | - | ||||||||||||||||||
730 | m->crl_verify = crl_verify; | - | ||||||||||||||||||
731 | m->flags = 1; | - | ||||||||||||||||||
732 | return never executed: m;return m; never executed: return m; | 0 | ||||||||||||||||||
733 | } | - | ||||||||||||||||||
734 | - | |||||||||||||||||||
735 | void | - | ||||||||||||||||||
736 | X509_CRL_METHOD_free(X509_CRL_METHOD *m) | - | ||||||||||||||||||
737 | { | - | ||||||||||||||||||
738 | if (m ==
| 0-1 | ||||||||||||||||||
739 | ((void *)0)
| 0-1 | ||||||||||||||||||
740 | ) | - | ||||||||||||||||||
741 | return; executed 1 time by 1 test: return; Executed by:
| 1 | ||||||||||||||||||
742 | if (!(m->flags & 1)
| 0 | ||||||||||||||||||
743 | return; never executed: return; | 0 | ||||||||||||||||||
744 | free(m); | - | ||||||||||||||||||
745 | } never executed: end of block | 0 | ||||||||||||||||||
746 | - | |||||||||||||||||||
747 | void | - | ||||||||||||||||||
748 | X509_CRL_set_meth_data(X509_CRL *crl, void *dat) | - | ||||||||||||||||||
749 | { | - | ||||||||||||||||||
750 | crl->meth_data = dat; | - | ||||||||||||||||||
751 | } never executed: end of block | 0 | ||||||||||||||||||
752 | - | |||||||||||||||||||
753 | void * | - | ||||||||||||||||||
754 | X509_CRL_get_meth_data(X509_CRL *crl) | - | ||||||||||||||||||
755 | { | - | ||||||||||||||||||
756 | return never executed: crl->meth_data;return crl->meth_data; never executed: return crl->meth_data; | 0 | ||||||||||||||||||
757 | } | - | ||||||||||||||||||
758 | - | |||||||||||||||||||
759 | int | - | ||||||||||||||||||
760 | X509_CRL_get_signature_nid(const X509_CRL *crl) | - | ||||||||||||||||||
761 | { | - | ||||||||||||||||||
762 | return never executed: OBJ_obj2nid(crl->sig_alg->algorithm);return OBJ_obj2nid(crl->sig_alg->algorithm); never executed: return OBJ_obj2nid(crl->sig_alg->algorithm); | 0 | ||||||||||||||||||
763 | } | - | ||||||||||||||||||
764 | - | |||||||||||||||||||
765 | const struct stack_st_X509_EXTENSION * | - | ||||||||||||||||||
766 | X509_CRL_get0_extensions(const X509_CRL *crl) | - | ||||||||||||||||||
767 | { | - | ||||||||||||||||||
768 | return never executed: crl->crl->extensions;return crl->crl->extensions; never executed: return crl->crl->extensions; | 0 | ||||||||||||||||||
769 | } | - | ||||||||||||||||||
770 | - | |||||||||||||||||||
771 | long | - | ||||||||||||||||||
772 | X509_CRL_get_version(const X509_CRL *crl) | - | ||||||||||||||||||
773 | { | - | ||||||||||||||||||
774 | return never executed: ASN1_INTEGER_get(crl->crl->version);return ASN1_INTEGER_get(crl->crl->version); never executed: return ASN1_INTEGER_get(crl->crl->version); | 0 | ||||||||||||||||||
775 | } | - | ||||||||||||||||||
776 | - | |||||||||||||||||||
777 | const ASN1_TIME * | - | ||||||||||||||||||
778 | X509_CRL_get0_lastUpdate(const X509_CRL *crl) | - | ||||||||||||||||||
779 | { | - | ||||||||||||||||||
780 | return never executed: crl->crl->lastUpdate;return crl->crl->lastUpdate; never executed: return crl->crl->lastUpdate; | 0 | ||||||||||||||||||
781 | } | - | ||||||||||||||||||
782 | - | |||||||||||||||||||
783 | ASN1_TIME * | - | ||||||||||||||||||
784 | X509_CRL_get_lastUpdate(X509_CRL *crl) | - | ||||||||||||||||||
785 | { | - | ||||||||||||||||||
786 | return never executed: crl->crl->lastUpdate;return crl->crl->lastUpdate; never executed: return crl->crl->lastUpdate; | 0 | ||||||||||||||||||
787 | } | - | ||||||||||||||||||
788 | - | |||||||||||||||||||
789 | const ASN1_TIME * | - | ||||||||||||||||||
790 | X509_CRL_get0_nextUpdate(const X509_CRL *crl) | - | ||||||||||||||||||
791 | { | - | ||||||||||||||||||
792 | return never executed: crl->crl->nextUpdate;return crl->crl->nextUpdate; never executed: return crl->crl->nextUpdate; | 0 | ||||||||||||||||||
793 | } | - | ||||||||||||||||||
794 | - | |||||||||||||||||||
795 | ASN1_TIME * | - | ||||||||||||||||||
796 | X509_CRL_get_nextUpdate(X509_CRL *crl) | - | ||||||||||||||||||
797 | { | - | ||||||||||||||||||
798 | return never executed: crl->crl->nextUpdate;return crl->crl->nextUpdate; never executed: return crl->crl->nextUpdate; | 0 | ||||||||||||||||||
799 | } | - | ||||||||||||||||||
800 | - | |||||||||||||||||||
801 | X509_NAME * | - | ||||||||||||||||||
802 | X509_CRL_get_issuer(const X509_CRL *crl) | - | ||||||||||||||||||
803 | { | - | ||||||||||||||||||
804 | return never executed: crl->crl->issuer;return crl->crl->issuer; never executed: return crl->crl->issuer; | 0 | ||||||||||||||||||
805 | } | - | ||||||||||||||||||
806 | - | |||||||||||||||||||
807 | struct stack_st_X509_REVOKED * | - | ||||||||||||||||||
808 | X509_CRL_get_REVOKED(X509_CRL *crl) | - | ||||||||||||||||||
809 | { | - | ||||||||||||||||||
810 | return never executed: crl->crl->revoked;return crl->crl->revoked; never executed: return crl->crl->revoked; | 0 | ||||||||||||||||||
811 | } | - | ||||||||||||||||||
812 | - | |||||||||||||||||||
813 | void | - | ||||||||||||||||||
814 | X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, | - | ||||||||||||||||||
815 | const X509_ALGOR **palg) | - | ||||||||||||||||||
816 | { | - | ||||||||||||||||||
817 | if (psig !=
| 0 | ||||||||||||||||||
818 | ((void *)0)
| 0 | ||||||||||||||||||
819 | ) | - | ||||||||||||||||||
820 | * never executed: psig = crl->signature;*psig = crl->signature; never executed: *psig = crl->signature; | 0 | ||||||||||||||||||
821 | if (palg !=
| 0 | ||||||||||||||||||
822 | ((void *)0)
| 0 | ||||||||||||||||||
823 | ) | - | ||||||||||||||||||
824 | * never executed: palg = crl->sig_alg;*palg = crl->sig_alg; never executed: *palg = crl->sig_alg; | 0 | ||||||||||||||||||
825 | } never executed: end of block | 0 | ||||||||||||||||||
Switch to Source code | Preprocessed file |