OpenCoverage

x_crl.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/x_crl.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5static int X509_REVOKED_cmp(const X509_REVOKED * const *a,-
6 const X509_REVOKED * const *b);-
7static void setup_idp(X509_CRL *crl, ISSUING_DIST_POINT *idp);-
8-
9static 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-
46const 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-
55static int def_crl_verify(X509_CRL *crl, EVP_PKEY *r);-
56static int def_crl_lookup(X509_CRL *crl, X509_REVOKED **ret,-
57 ASN1_INTEGER *serial, X509_NAME *issuer);-
58-
59static X509_CRL_METHOD int_crl_meth = {-
60 .crl_lookup = def_crl_lookup,-
61 .crl_verify = def_crl_verify-
62};-
63-
64static const X509_CRL_METHOD *default_crl_method = &int_crl_meth;-
65-
66-
67-
68-
69-
70static int-
71crl_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
!aDescription
TRUEnever evaluated
FALSEnever evaluated
|| !a->revoked
!a->revokedDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
76 return
never executed: return 1;
1;
never executed: return 1;
0
77 switch (operation) {-
78-
79-
80-
81 case
never executed: case 5:
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: return 1;
1;
never executed: return 1;
0
86}-
87-
88-
89static 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};-
100static 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-
184const 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-
198static int-
199crl_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)))
i < sk_num(((_..._REVOKED*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
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
!gtmpDescription
TRUEnever evaluated
FALSEnever evaluated
&& (
(j != -1)Description
TRUEnever evaluated
FALSEnever evaluated
j != -1)
(j != -1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
220 crl->flags |= 0x0080;-
221 return
never executed: return 1;
1;
never executed: return 1;
0
222 }-
223-
224 if (gtmp
gtmpDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
225 gens = gtmp;-
226 if (!crl->issuers
!crl->issuersDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
227 crl->issuers = ((struct stack_st_GENERAL_NAMES *)sk_new_null());-
228 if (!crl->issuers
!crl->issuersDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
229 return
never executed: return 0;
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)))
!sk_push(((_ST...AL_NAMES*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
232 return
never executed: return 0;
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
!reasonDescription
TRUEnever evaluated
FALSEnever evaluated
&& (
(j != -1)Description
TRUEnever evaluated
FALSEnever evaluated
j != -1)
(j != -1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
241 crl->flags |= 0x0080;-
242 return
never executed: return 1;
1;
never executed: return 1;
0
243 }-
244-
245 if (reason
reasonDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
246 rev->reason = ASN1_ENUMERATED_get(reason);-
247 ASN1_ENUMERATED_free(reason);-
248 }
never executed: end of block
else
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)))
j < sk_num(((_...XTENSION*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; j++) {
0
256 ext = ((X509_EXTENSION *)sk_value(((_STACK*) (1 ? (exts) : (struct stack_st_X509_EXTENSION*)0)), (j)));-
257 if (ext->critical > 0
ext->critical > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
258 if (OBJ_obj2nid(ext->object) ==
OBJ_obj2nid(ex...object) == 771Description
TRUEnever evaluated
FALSEnever evaluated
0
259 771
OBJ_obj2nid(ex...object) == 771Description
TRUEnever evaluated
FALSEnever evaluated
)
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: return 1;
1;
never executed: return 1;
0
268}-
269-
270-
271-
272-
273static int-
274crl_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: case 1:
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: case 5:
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
crl->idpDescription
TRUEnever evaluated
FALSEnever evaluated
)
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
crl->base_crl_numberDescription
TRUEnever evaluated
FALSEnever evaluated
&& !crl->crl_number
!crl->crl_numberDescription
TRUEnever evaluated
FALSEnever evaluated
)
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)))
idx < sk_num((...XTENSION*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; idx++) {
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
nid == 857Description
TRUEnever evaluated
FALSEnever evaluated
)
0
353 crl->flags |= 0x1000;
never executed: crl->flags |= 0x1000;
0
354 if (ext->critical > 0
ext->critical > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
355-
356 if (nid == 770
nid == 770Description
TRUEnever evaluated
FALSEnever evaluated
||
0
357 nid == 90
nid == 90Description
TRUEnever evaluated
FALSEnever evaluated
||
0
358 nid == 140
nid == 140Description
TRUEnever evaluated
FALSEnever evaluated
)
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)
!crl_set_issuers(crl)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
366 return
never executed: return 0;
0;
never executed: return 0;
0
367-
368 if (crl->meth->crl_init
crl->meth->crl_initDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
369 if (crl->meth->crl_init(crl) == 0
crl->meth->crl_init(crl) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
370 return
never executed: return 0;
0;
never executed: return 0;
0
371 }
never executed: end of block
0
372 break;
never executed: break;
0
373-
374 case
never executed: case 3:
3:
never executed: case 3:
0
375 if (crl->meth->crl_free
crl->meth->crl_freeDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
376 if (!crl->meth->crl_free(crl)
!crl->meth->crl_free(crl)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
377 rc = 0;
never executed: rc = 0;
0
378 }
never executed: end of block
0
379 if (crl->akid
crl->akidDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
380 AUTHORITY_KEYID_free(crl->akid);
never executed: AUTHORITY_KEYID_free(crl->akid);
0
381 if (crl->idp
crl->idpDescription
TRUEnever evaluated
FALSEnever evaluated
)
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: return rc;
rc;
never executed: return rc;
0
389}-
390-
391-
392-
393static void-
394setup_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
idp->onlyuser > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
401 idp_only++;-
402 crl->idp_flags |= 0x4;-
403 }
never executed: end of block
0
404 if (idp->onlyCA > 0
idp->onlyCA > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
405 idp_only++;-
406 crl->idp_flags |= 0x8;-
407 }
never executed: end of block
0
408 if (idp->onlyattr > 0
idp->onlyattr > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
409 idp_only++;-
410 crl->idp_flags |= 0x10;-
411 }
never executed: end of block
0
412-
413 if (idp_only > 1
idp_only > 1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
414 crl->idp_flags |= 0x2;
never executed: crl->idp_flags |= 0x2;
0
415-
416 if (idp->indirectCRL > 0
idp->indirectCRL > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
417 crl->idp_flags |= 0x20;
never executed: crl->idp_flags |= 0x20;
0
418-
419 if (idp->onlysomereasons
idp->onlysomereasonsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
420 crl->idp_flags |= 0x40;-
421 if (idp->onlysomereasons->length > 0
idp->onlysomer...ns->length > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
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
idp->onlysomer...ns->length > 1Description
TRUEnever evaluated
FALSEnever evaluated
)
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-
432static 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};-
447static 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-
483const 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-
494X509_REVOKED *-
495d2i_X509_REVOKED(X509_REVOKED **a, const unsigned char **in, long len)-
496{-
497 return
never executed: return (X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_REVOKED_it);
(X509_REVOKED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
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-
501int-
502i2d_X509_REVOKED(X509_REVOKED *a, unsigned char **out)-
503{-
504 return
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_REVOKED_it);
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-
507X509_REVOKED *-
508X509_REVOKED_new(void)-
509{-
510 return
never executed: return (X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it);
(X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it);
never executed: return (X509_REVOKED *)ASN1_item_new(&X509_REVOKED_it);
0
511}-
512-
513void-
514X509_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:
  • freenull
1
518-
519X509_REVOKED *-
520X509_REVOKED_dup(X509_REVOKED *a)-
521{-
522 return
never executed: return ASN1_item_dup(&X509_REVOKED_it, a);
ASN1_item_dup(&X509_REVOKED_it, a);
never executed: return ASN1_item_dup(&X509_REVOKED_it, a);
0
523}-
524-
525X509_CRL_INFO *-
526d2i_X509_CRL_INFO(X509_CRL_INFO **a, const unsigned char **in, long len)-
527{-
528 return
never executed: return (X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_INFO_it);
(X509_CRL_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
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-
532int-
533i2d_X509_CRL_INFO(X509_CRL_INFO *a, unsigned char **out)-
534{-
535 return
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_INFO_it);
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-
538X509_CRL_INFO *-
539X509_CRL_INFO_new(void)-
540{-
541 return
never executed: return (X509_CRL_INFO *)ASN1_item_new(&X509_CRL_INFO_it);
(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-
544void-
545X509_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:
  • freenull
1
549-
550X509_CRL *-
551d2i_X509_CRL(X509_CRL **a, const unsigned char **in, long len)-
552{-
553 return
never executed: return (X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &X509_CRL_it);
(X509_CRL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
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-
557int-
558i2d_X509_CRL(X509_CRL *a, unsigned char **out)-
559{-
560 return
never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &X509_CRL_it);
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-
563X509_CRL *-
564X509_CRL_new(void)-
565{-
566 return
never executed: return (X509_CRL *)ASN1_item_new(&X509_CRL_it);
(X509_CRL *)ASN1_item_new(&X509_CRL_it);
never executed: return (X509_CRL *)ASN1_item_new(&X509_CRL_it);
0
567}-
568-
569void-
570X509_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:
  • freenull
1
574-
575X509_CRL *-
576X509_CRL_dup(X509_CRL *x)-
577{-
578 return
never executed: return ASN1_item_dup(&X509_CRL_it, x);
ASN1_item_dup(&X509_CRL_it, x);
never executed: return ASN1_item_dup(&X509_CRL_it, x);
0
579}-
580-
581static int-
582X509_REVOKED_cmp(const X509_REVOKED * const *a, const X509_REVOKED * const *b)-
583{-
584 return
never executed: return(ASN1_STRING_cmp( (ASN1_STRING *)(*a)->serialNumber, (ASN1_STRING *)(*b)->serialNumber));
(ASN1_STRING_cmp(
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-
589int-
590X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev)-
591{-
592 X509_CRL_INFO *inf;-
593-
594 inf = crl->crl;-
595 if (!inf->revoked
!inf->revokedDescription
TRUEnever evaluated
FALSEnever evaluated
)
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
!inf->revokedDescription
TRUEnever evaluated
FALSEnever evaluated
|| !sk_push(((_STACK*) (1 ? (inf->revoked) : (struct stack_st_X509_REVOKED*)0)), ((void*) (1 ? (rev) : (X509_REVOKED*)0)))
!sk_push(((_ST..._REVOKED*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
598 ERR_put_error(13,(0xfff),((1|64)),__FILE__,544);-
599 return
never executed: return 0;
0;
never executed: return 0;
0
600 }-
601 inf->enc.modified = 1;-
602 return
never executed: return 1;
1;
never executed: return 1;
0
603}-
604-
605int-
606X509_CRL_verify(X509_CRL *crl, EVP_PKEY *r)-
607{-
608 if (crl->meth->crl_verify
crl->meth->crl_verifyDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
609 return
never executed: return crl->meth->crl_verify(crl, r);
crl->meth->crl_verify(crl, r);
never executed: return crl->meth->crl_verify(crl, r);
0
610 return
never executed: return 0;
0;
never executed: return 0;
0
611}-
612-
613int-
614X509_CRL_get0_by_serial(X509_CRL *crl, X509_REVOKED **ret,-
615 ASN1_INTEGER *serial)-
616{-
617 if (crl->meth->crl_lookup
crl->meth->crl_lookupDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
618 return
never executed: return crl->meth->crl_lookup(crl, ret, serial, ((void *)0) );
crl->meth->crl_lookup(crl, ret, serial,
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: return 0;
0;
never executed: return 0;
0
622}-
623-
624int-
625X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x)-
626{-
627 if (crl->meth->crl_lookup
crl->meth->crl_lookupDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
628 return
never executed: return crl->meth->crl_lookup(crl, ret, X509_get_serialNumber(x), X509_get_issuer_name(x));
crl->meth->crl_lookup(crl, ret,
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: return 0;
0;
never executed: return 0;
0
631}-
632-
633static int-
634def_crl_verify(X509_CRL *crl, EVP_PKEY *r)-
635{-
636 return
never executed: return(ASN1_item_verify(&X509_CRL_INFO_it, crl->sig_alg, crl->signature, crl->crl, r));
(ASN1_item_verify(&X509_CRL_INFO_it,
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-
640static int-
641crl_revoked_issuer_match(X509_CRL *crl, X509_NAME *nm, X509_REVOKED *rev)-
642{-
643 int i;-
644-
645 if (!rev->issuer
!rev->issuerDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
646 if (!nm
!nmDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
647 return
never executed: return 1;
1;
never executed: return 1;
0
648 if (!X509_NAME_cmp(nm, X509_CRL_get_issuer(crl))
!X509_NAME_cmp...t_issuer(crl))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
649 return
never executed: return 1;
1;
never executed: return 1;
0
650 return
never executed: return 0;
0;
never executed: return 0;
0
651 }-
652-
653 if (!nm
!nmDescription
TRUEnever evaluated
FALSEnever evaluated
)
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)))
i < sk_num(((_...RAL_NAME*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
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
gen->type != 4Description
TRUEnever evaluated
FALSEnever evaluated
)
0
659 continue;
never executed: continue;
0
660 if (!X509_NAME_cmp(nm, gen->d.directoryName)
!X509_NAME_cmp...directoryName)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
661 return
never executed: return 1;
1;
never executed: return 1;
0
662 }
never executed: end of block
0
663 return
never executed: return 0;
0;
never executed: return 0;
0
664-
665}-
666-
667static int-
668def_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)))
!sk_is_sorted(..._REVOKED*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
) {
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
idx < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
685 return
never executed: return 0;
0;
never executed: return 0;
0
686-
687 for (; idx < sk_num(((_STACK*) (1 ? (crl->crl->revoked) : (struct stack_st_X509_REVOKED*)0)))
idx < sk_num((..._REVOKED*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
; idx++) {
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)
ASN1_INTEGER_c...umber, serial)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
690 return
never executed: return 0;
0;
never executed: return 0;
0
691 if (crl_revoked_issuer_match(crl, issuer, rev)
crl_revoked_is..., issuer, rev)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
692 if (ret
retDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
693 *
never executed: *ret = rev;
ret = rev;
never executed: *ret = rev;
0
694 if (rev->reason == 8
rev->reason == 8Description
TRUEnever evaluated
FALSEnever evaluated
)
0
695 return
never executed: return 2;
2;
never executed: return 2;
0
696 return
never executed: return 1;
1;
never executed: return 1;
0
697 }-
698 }
never executed: end of block
0
699 return
never executed: return 0;
0;
never executed: return 0;
0
700}-
701-
702void-
703X509_CRL_set_default_method(const X509_CRL_METHOD *meth)-
704{-
705 if (meth ==
meth == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
706 ((void *)0)
meth == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
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-
713X509_CRL_METHOD *-
714X509_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
!mDescription
TRUEnever evaluated
FALSEnever evaluated
)
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: return m;
m;
never executed: return m;
0
733}-
734-
735void-
736X509_CRL_METHOD_free(X509_CRL_METHOD *m)-
737{-
738 if (m ==
m == ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • freenull
FALSEnever evaluated
0-1
739 ((void *)0)
m == ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • freenull
FALSEnever evaluated
0-1
740 )-
741 return;
executed 1 time by 1 test: return;
Executed by:
  • freenull
1
742 if (!(m->flags & 1)
!(m->flags & 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
743 return;
never executed: return;
0
744 free(m);-
745}
never executed: end of block
0
746-
747void-
748X509_CRL_set_meth_data(X509_CRL *crl, void *dat)-
749{-
750 crl->meth_data = dat;-
751}
never executed: end of block
0
752-
753void *-
754X509_CRL_get_meth_data(X509_CRL *crl)-
755{-
756 return
never executed: return crl->meth_data;
crl->meth_data;
never executed: return crl->meth_data;
0
757}-
758-
759int-
760X509_CRL_get_signature_nid(const X509_CRL *crl)-
761{-
762 return
never executed: return OBJ_obj2nid(crl->sig_alg->algorithm);
OBJ_obj2nid(crl->sig_alg->algorithm);
never executed: return OBJ_obj2nid(crl->sig_alg->algorithm);
0
763}-
764-
765const struct stack_st_X509_EXTENSION *-
766X509_CRL_get0_extensions(const X509_CRL *crl)-
767{-
768 return
never executed: return crl->crl->extensions;
crl->crl->extensions;
never executed: return crl->crl->extensions;
0
769}-
770-
771long-
772X509_CRL_get_version(const X509_CRL *crl)-
773{-
774 return
never executed: return ASN1_INTEGER_get(crl->crl->version);
ASN1_INTEGER_get(crl->crl->version);
never executed: return ASN1_INTEGER_get(crl->crl->version);
0
775}-
776-
777const ASN1_TIME *-
778X509_CRL_get0_lastUpdate(const X509_CRL *crl)-
779{-
780 return
never executed: return crl->crl->lastUpdate;
crl->crl->lastUpdate;
never executed: return crl->crl->lastUpdate;
0
781}-
782-
783ASN1_TIME *-
784X509_CRL_get_lastUpdate(X509_CRL *crl)-
785{-
786 return
never executed: return crl->crl->lastUpdate;
crl->crl->lastUpdate;
never executed: return crl->crl->lastUpdate;
0
787}-
788-
789const ASN1_TIME *-
790X509_CRL_get0_nextUpdate(const X509_CRL *crl)-
791{-
792 return
never executed: return crl->crl->nextUpdate;
crl->crl->nextUpdate;
never executed: return crl->crl->nextUpdate;
0
793}-
794-
795ASN1_TIME *-
796X509_CRL_get_nextUpdate(X509_CRL *crl)-
797{-
798 return
never executed: return crl->crl->nextUpdate;
crl->crl->nextUpdate;
never executed: return crl->crl->nextUpdate;
0
799}-
800-
801X509_NAME *-
802X509_CRL_get_issuer(const X509_CRL *crl)-
803{-
804 return
never executed: return crl->crl->issuer;
crl->crl->issuer;
never executed: return crl->crl->issuer;
0
805}-
806-
807struct stack_st_X509_REVOKED *-
808X509_CRL_get_REVOKED(X509_CRL *crl)-
809{-
810 return
never executed: return crl->crl->revoked;
crl->crl->revoked;
never executed: return crl->crl->revoked;
0
811}-
812-
813void-
814X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig,-
815 const X509_ALGOR **palg)-
816{-
817 if (psig !=
psig != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
818 ((void *)0)
psig != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
819 )-
820 *
never executed: *psig = crl->signature;
psig = crl->signature;
never executed: *psig = crl->signature;
0
821 if (palg !=
palg != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
822 ((void *)0)
palg != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
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 codePreprocessed file

Generated by Squish Coco 4.2.2