Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | static const ASN1_TEMPLATE ASRange_seq_tt[] = { | - |
11 | { (0), (0), | - |
12 | __builtin_offsetof ( | - |
13 | ASRange | - |
14 | , | - |
15 | min | - |
16 | ) | - |
17 | , "min", (&(ASN1_INTEGER_it)) }, | - |
18 | { (0), (0), | - |
19 | __builtin_offsetof ( | - |
20 | ASRange | - |
21 | , | - |
22 | max | - |
23 | ) | - |
24 | , "max", (&(ASN1_INTEGER_it)) } | - |
25 | } ; const ASN1_ITEM ASRange_it = { 0x1, 16, ASRange_seq_tt, sizeof(ASRange_seq_tt) / sizeof(ASN1_TEMPLATE), | - |
26 | ((void *)0) | - |
27 | , sizeof(ASRange), "ASRange" }; | - |
28 | | - |
29 | static const ASN1_TEMPLATE ASIdOrRange_ch_tt[] = { | - |
30 | { (0), (0), | - |
31 | __builtin_offsetof ( | - |
32 | ASIdOrRange | - |
33 | , | - |
34 | u.id | - |
35 | ) | - |
36 | , "u.id", (&(ASN1_INTEGER_it)) }, | - |
37 | { (0), (0), | - |
38 | __builtin_offsetof ( | - |
39 | ASIdOrRange | - |
40 | , | - |
41 | u.range | - |
42 | ) | - |
43 | , "u.range", (&(ASRange_it)) } | - |
44 | } ; const ASN1_ITEM ASIdOrRange_it = { 0x2, | - |
45 | __builtin_offsetof ( | - |
46 | ASIdOrRange | - |
47 | , | - |
48 | type | - |
49 | ) | - |
50 | , ASIdOrRange_ch_tt, sizeof(ASIdOrRange_ch_tt) / sizeof(ASN1_TEMPLATE), | - |
51 | ((void *)0) | - |
52 | , sizeof(ASIdOrRange), "ASIdOrRange" }; | - |
53 | | - |
54 | static const ASN1_TEMPLATE ASIdentifierChoice_ch_tt[] = { | - |
55 | { (0), (0), | - |
56 | __builtin_offsetof ( | - |
57 | ASIdentifierChoice | - |
58 | , | - |
59 | u.inherit | - |
60 | ) | - |
61 | , "u.inherit", (&(ASN1_NULL_it)) }, | - |
62 | { ((0x2 << 1)), (0), | - |
63 | __builtin_offsetof ( | - |
64 | ASIdentifierChoice | - |
65 | , | - |
66 | u.asIdsOrRanges | - |
67 | ) | - |
68 | , "u.asIdsOrRanges", (&(ASIdOrRange_it)) } | - |
69 | } ; const ASN1_ITEM ASIdentifierChoice_it = { 0x2, | - |
70 | __builtin_offsetof ( | - |
71 | ASIdentifierChoice | - |
72 | , | - |
73 | type | - |
74 | ) | - |
75 | , ASIdentifierChoice_ch_tt, sizeof(ASIdentifierChoice_ch_tt) / sizeof(ASN1_TEMPLATE), | - |
76 | ((void *)0) | - |
77 | , sizeof(ASIdentifierChoice), "ASIdentifierChoice" }; | - |
78 | | - |
79 | static const ASN1_TEMPLATE ASIdentifiers_seq_tt[] = { | - |
80 | { (((0x2 << 3)|(0x2<<6)) | ((0x1))), (0), | - |
81 | __builtin_offsetof ( | - |
82 | ASIdentifiers | - |
83 | , | - |
84 | asnum | - |
85 | ) | - |
86 | , "asnum", (&(ASIdentifierChoice_it)) }, | - |
87 | { (((0x2 << 3)|(0x2<<6)) | ((0x1))), (1), | - |
88 | __builtin_offsetof ( | - |
89 | ASIdentifiers | - |
90 | , | - |
91 | rdi | - |
92 | ) | - |
93 | , "rdi", (&(ASIdentifierChoice_it)) } | - |
94 | } ; const ASN1_ITEM ASIdentifiers_it = { 0x1, 16, ASIdentifiers_seq_tt, sizeof(ASIdentifiers_seq_tt) / sizeof(ASN1_TEMPLATE), | - |
95 | ((void *)0) | - |
96 | , sizeof(ASIdentifiers), "ASIdentifiers" }; | - |
97 | | - |
98 | ASRange *d2i_ASRange(ASRange **a, const unsigned char **in, long len) { return never executed: return (ASRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASRange_it))); (ASRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASRange_it)));never executed: return (ASRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASRange_it))); } int i2d_ASRange(ASRange *a, unsigned char **out) { returnnever executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASRange_it))); ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASRange_it)));never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASRange_it))); } ASRange *ASRange_new(void) { returnnever executed: return (ASRange *)ASN1_item_new((&(ASRange_it))); (ASRange *)ASN1_item_new((&(ASRange_it)));never executed: return (ASRange *)ASN1_item_new((&(ASRange_it))); } void ASRange_free(ASRange *a) { ASN1_item_free((ASN1_VALUE *)a, (&(ASRange_it))); }never executed: end of block | 0 |
99 | ASIdOrRange *d2i_ASIdOrRange(ASIdOrRange **a, const unsigned char **in, long len) { return never executed: return (ASIdOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdOrRange_it))); (ASIdOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdOrRange_it)));never executed: return (ASIdOrRange *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdOrRange_it))); } int i2d_ASIdOrRange(ASIdOrRange *a, unsigned char **out) { returnnever executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdOrRange_it))); ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdOrRange_it)));never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdOrRange_it))); } ASIdOrRange *ASIdOrRange_new(void) { returnnever executed: return (ASIdOrRange *)ASN1_item_new((&(ASIdOrRange_it))); (ASIdOrRange *)ASN1_item_new((&(ASIdOrRange_it)));never executed: return (ASIdOrRange *)ASN1_item_new((&(ASIdOrRange_it))); } void ASIdOrRange_free(ASIdOrRange *a) { ASN1_item_free((ASN1_VALUE *)a, (&(ASIdOrRange_it))); }never executed: end of block | 0 |
100 | ASIdentifierChoice *d2i_ASIdentifierChoice(ASIdentifierChoice **a, const unsigned char **in, long len) { return never executed: return (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdentifierChoice_it))); (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdentifierChoice_it)));never executed: return (ASIdentifierChoice *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdentifierChoice_it))); } int i2d_ASIdentifierChoice(ASIdentifierChoice *a, unsigned char **out) { returnnever executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifierChoice_it))); ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifierChoice_it)));never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifierChoice_it))); } ASIdentifierChoice *ASIdentifierChoice_new(void) { returnnever executed: return (ASIdentifierChoice *)ASN1_item_new((&(ASIdentifierChoice_it))); (ASIdentifierChoice *)ASN1_item_new((&(ASIdentifierChoice_it)));never executed: return (ASIdentifierChoice *)ASN1_item_new((&(ASIdentifierChoice_it))); } void ASIdentifierChoice_free(ASIdentifierChoice *a) { ASN1_item_free((ASN1_VALUE *)a, (&(ASIdentifierChoice_it))); }never executed: end of block | 0 |
101 | ASIdentifiers *d2i_ASIdentifiers(ASIdentifiers **a, const unsigned char **in, long len) { return never executed: return (ASIdentifiers *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdentifiers_it))); (ASIdentifiers *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdentifiers_it)));never executed: return (ASIdentifiers *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, (&(ASIdentifiers_it))); } int i2d_ASIdentifiers(ASIdentifiers *a, unsigned char **out) { returnnever executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifiers_it))); ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifiers_it)));never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, (&(ASIdentifiers_it))); } ASIdentifiers *ASIdentifiers_new(void) { returnnever executed: return (ASIdentifiers *)ASN1_item_new((&(ASIdentifiers_it))); (ASIdentifiers *)ASN1_item_new((&(ASIdentifiers_it)));never executed: return (ASIdentifiers *)ASN1_item_new((&(ASIdentifiers_it))); } void ASIdentifiers_free(ASIdentifiers *a) { ASN1_item_free((ASN1_VALUE *)a, (&(ASIdentifiers_it))); }executed 39780 times by 1 test: end of block | 0-39780 |
102 | | - |
103 | | - |
104 | | - |
105 | | - |
106 | static int i2r_ASIdentifierChoice(BIO *out, | - |
107 | ASIdentifierChoice *choice, | - |
108 | int indent, const char *msg) | - |
109 | { | - |
110 | int i; | - |
111 | char *s; | - |
112 | if (choice == TRUE | evaluated 10 times by 1 test | FALSE | never evaluated |
| 0-10 |
113 | ((void *)0)TRUE | evaluated 10 times by 1 test | FALSE | never evaluated |
| 0-10 |
114 | ) | - |
115 | returnexecuted 10 times by 1 test: return 1; 1;executed 10 times by 1 test: return 1; | 10 |
116 | BIO_printf(out, "%*s%s:\n", indent, "", msg); | - |
117 | switch (choice->type) { | - |
118 | case never executed: case 0: 0:never executed: case 0: | 0 |
119 | BIO_printf(out, "%*sinherit\n", indent + 2, ""); | - |
120 | break; never executed: break; | 0 |
121 | case never executed: case 1: 1:never executed: case 1: | 0 |
122 | for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges)TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
123 | ASIdOrRange *aor = | - |
124 | sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i); | - |
125 | switch (aor->type) { | - |
126 | case never executed: case 0: 0:never executed: case 0: | 0 |
127 | if ((TRUE | never evaluated | FALSE | never evaluated |
s = i2s_ASN1_INTEGER(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
128 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
129 | , aor->u.id)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
130 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
131 | ) | - |
132 | return never executed: return 0; 0;never executed: return 0; | 0 |
133 | BIO_printf(out, "%*s%s\n", indent + 2, "", s); | - |
134 | CRYPTO_free(s, __FILE__, 83); | - |
135 | break; never executed: break; | 0 |
136 | case never executed: case 1: 1:never executed: case 1: | 0 |
137 | if ((TRUE | never evaluated | FALSE | never evaluated |
s = i2s_ASN1_INTEGER(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
138 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
139 | , aor->u.range->min)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
140 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
141 | ) | - |
142 | return never executed: return 0; 0;never executed: return 0; | 0 |
143 | BIO_printf(out, "%*s%s-", indent + 2, "", s); | - |
144 | CRYPTO_free(s, __FILE__, 89); | - |
145 | if ((TRUE | never evaluated | FALSE | never evaluated |
s = i2s_ASN1_INTEGER(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
146 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
147 | , aor->u.range->max)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
148 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
149 | ) | - |
150 | return never executed: return 0; 0;never executed: return 0; | 0 |
151 | BIO_printf(out, "%s\n", s); | - |
152 | CRYPTO_free(s, __FILE__, 93); | - |
153 | break; never executed: break; | 0 |
154 | default never executed: default: :never executed: default: | 0 |
155 | return never executed: return 0; 0;never executed: return 0; | 0 |
156 | } | - |
157 | } | - |
158 | break; never executed: break; | 0 |
159 | default never executed: default: :never executed: default: | 0 |
160 | return never executed: return 0; 0;never executed: return 0; | 0 |
161 | } | - |
162 | return never executed: return 1; 1;never executed: return 1; | 0 |
163 | } | - |
164 | | - |
165 | | - |
166 | | - |
167 | | - |
168 | static int i2r_ASIdentifiers(const X509V3_EXT_METHOD *method, | - |
169 | void *ext, BIO *out, int indent) | - |
170 | { | - |
171 | ASIdentifiers *asid = ext; | - |
172 | returnexecuted 5 times by 1 test: return (i2r_ASIdentifierChoice(out, asid->asnum, indent, "Autonomous System Numbers") && i2r_ASIdentifierChoice(out, asid->rdi, indent, "Routing Domain Identifiers")); (i2r_ASIdentifierChoice(out, asid->asnum, indent,TRUE | evaluated 5 times by 1 test | FALSE | never evaluated |
executed 5 times by 1 test: return (i2r_ASIdentifierChoice(out, asid->asnum, indent, "Autonomous System Numbers") && i2r_ASIdentifierChoice(out, asid->rdi, indent, "Routing Domain Identifiers")); | 0-5 |
173 | "Autonomous System Numbers")TRUE | evaluated 5 times by 1 test | FALSE | never evaluated |
&&executed 5 times by 1 test: return (i2r_ASIdentifierChoice(out, asid->asnum, indent, "Autonomous System Numbers") && i2r_ASIdentifierChoice(out, asid->rdi, indent, "Routing Domain Identifiers")); | 0-5 |
174 | i2r_ASIdentifierChoice(out, asid->rdi, indent,TRUE | evaluated 5 times by 1 test | FALSE | never evaluated |
executed 5 times by 1 test: return (i2r_ASIdentifierChoice(out, asid->asnum, indent, "Autonomous System Numbers") && i2r_ASIdentifierChoice(out, asid->rdi, indent, "Routing Domain Identifiers")); | 0-5 |
175 | "Routing Domain Identifiers")TRUE | evaluated 5 times by 1 test | FALSE | never evaluated |
);executed 5 times by 1 test: return (i2r_ASIdentifierChoice(out, asid->asnum, indent, "Autonomous System Numbers") && i2r_ASIdentifierChoice(out, asid->rdi, indent, "Routing Domain Identifiers")); | 0-5 |
176 | } | - |
177 | | - |
178 | | - |
179 | | - |
180 | | - |
181 | static int ASIdOrRange_cmp(const ASIdOrRange *const *a_, | - |
182 | const ASIdOrRange *const *b_) | - |
183 | { | - |
184 | const ASIdOrRange *a = *a_, *b = *b_; | - |
185 | | - |
186 | | - |
187 | ((void) (0)) | - |
188 | | - |
189 | | - |
190 | ; | - |
191 | | - |
192 | | - |
193 | ((void) (0)) | - |
194 | | - |
195 | | - |
196 | ; | - |
197 | | - |
198 | if (a->type == 0TRUE | never evaluated | FALSE | never evaluated |
&& b->type == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
199 | return never executed: return ASN1_INTEGER_cmp(a->u.id, b->u.id); ASN1_INTEGER_cmp(a->u.id, b->u.id);never executed: return ASN1_INTEGER_cmp(a->u.id, b->u.id); | 0 |
200 | | - |
201 | if (a->type == 1TRUE | never evaluated | FALSE | never evaluated |
&& b->type == 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
202 | int r = ASN1_INTEGER_cmp(a->u.range->min, b->u.range->min); | - |
203 | return never executed: return r != 0 ? r : ASN1_INTEGER_cmp(a->u.range->max, b->u.range->max); r != 0TRUE | never evaluated | FALSE | never evaluated |
? r : ASN1_INTEGER_cmp(a->u.range->max,never executed: return r != 0 ? r : ASN1_INTEGER_cmp(a->u.range->max, b->u.range->max); | 0 |
204 | b->u.range->max); never executed: return r != 0 ? r : ASN1_INTEGER_cmp(a->u.range->max, b->u.range->max); | 0 |
205 | } | - |
206 | | - |
207 | if (a->type == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
208 | return never executed: return ASN1_INTEGER_cmp(a->u.id, b->u.range->min); ASN1_INTEGER_cmp(a->u.id, b->u.range->min);never executed: return ASN1_INTEGER_cmp(a->u.id, b->u.range->min); | 0 |
209 | else | - |
210 | return never executed: return ASN1_INTEGER_cmp(a->u.range->min, b->u.id); ASN1_INTEGER_cmp(a->u.range->min, b->u.id);never executed: return ASN1_INTEGER_cmp(a->u.range->min, b->u.id); | 0 |
211 | } | - |
212 | | - |
213 | | - |
214 | | - |
215 | | - |
216 | int X509v3_asid_add_inherit(ASIdentifiers *asid, int which) | - |
217 | { | - |
218 | ASIdentifierChoice **choice; | - |
219 | if (asid == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
220 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
221 | ) | - |
222 | return never executed: return 0; 0;never executed: return 0; | 0 |
223 | switch (which) { | - |
224 | case never executed: case 0: 0:never executed: case 0: | 0 |
225 | choice = &asid->asnum; | - |
226 | break; never executed: break; | 0 |
227 | case never executed: case 1: 1:never executed: case 1: | 0 |
228 | choice = &asid->rdi; | - |
229 | break; never executed: break; | 0 |
230 | default never executed: default: :never executed: default: | 0 |
231 | return never executed: return 0; 0;never executed: return 0; | 0 |
232 | } | - |
233 | if (*TRUE | never evaluated | FALSE | never evaluated |
choice == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
234 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
235 | ) { | - |
236 | if ((*TRUE | never evaluated | FALSE | never evaluated |
choice = ASIdentifierChoice_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
237 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
238 | ) | - |
239 | return never executed: return 0; 0;never executed: return 0; | 0 |
240 | if (((*TRUE | never evaluated | FALSE | never evaluated |
choice)->u.inherit = ASN1_NULL_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
241 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
242 | ) | - |
243 | return never executed: return 0; 0;never executed: return 0; | 0 |
244 | (*choice)->type = 0; | - |
245 | } never executed: end of block | 0 |
246 | return never executed: return (*choice)->type == 0; (*choice)->type == 0;never executed: return (*choice)->type == 0; | 0 |
247 | } | - |
248 | | - |
249 | | - |
250 | | - |
251 | | - |
252 | int X509v3_asid_add_id_or_range(ASIdentifiers *asid, | - |
253 | int which, ASN1_INTEGER *min, ASN1_INTEGER *max) | - |
254 | { | - |
255 | ASIdentifierChoice **choice; | - |
256 | ASIdOrRange *aor; | - |
257 | if (asid == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
258 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
259 | ) | - |
260 | return never executed: return 0; 0;never executed: return 0; | 0 |
261 | switch (which) { | - |
262 | case never executed: case 0: 0:never executed: case 0: | 0 |
263 | choice = &asid->asnum; | - |
264 | break; never executed: break; | 0 |
265 | case never executed: case 1: 1:never executed: case 1: | 0 |
266 | choice = &asid->rdi; | - |
267 | break; never executed: break; | 0 |
268 | default never executed: default: :never executed: default: | 0 |
269 | return never executed: return 0; 0;never executed: return 0; | 0 |
270 | } | - |
271 | if (*TRUE | never evaluated | FALSE | never evaluated |
choice != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
272 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
273 | && (*TRUE | never evaluated | FALSE | never evaluated |
choice)->type == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
274 | return never executed: return 0; 0;never executed: return 0; | 0 |
275 | if (*TRUE | never evaluated | FALSE | never evaluated |
choice == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
276 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
277 | ) { | - |
278 | if ((*TRUE | never evaluated | FALSE | never evaluated |
choice = ASIdentifierChoice_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
279 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
280 | ) | - |
281 | return never executed: return 0; 0;never executed: return 0; | 0 |
282 | (*choice)->u.asIdsOrRanges = sk_ASIdOrRange_new(ASIdOrRange_cmp); | - |
283 | if ((*TRUE | never evaluated | FALSE | never evaluated |
choice)->u.asIdsOrRanges == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
284 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
285 | ) | - |
286 | return never executed: return 0; 0;never executed: return 0; | 0 |
287 | (*choice)->type = 1; | - |
288 | } never executed: end of block | 0 |
289 | if ((TRUE | never evaluated | FALSE | never evaluated |
aor = ASIdOrRange_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
290 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
291 | ) | - |
292 | return never executed: return 0; 0;never executed: return 0; | 0 |
293 | if (max == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
294 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
295 | ) { | - |
296 | aor->type = 0; | - |
297 | aor->u.id = min; | - |
298 | } never executed: end of block else { | 0 |
299 | aor->type = 1; | - |
300 | if ((TRUE | never evaluated | FALSE | never evaluated |
aor->u.range = ASRange_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
301 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
302 | ) | - |
303 | goto never executed: goto err; err;never executed: goto err; | 0 |
304 | ASN1_INTEGER_free(aor->u.range->min); | - |
305 | aor->u.range->min = min; | - |
306 | ASN1_INTEGER_free(aor->u.range->max); | - |
307 | aor->u.range->max = max; | - |
308 | } never executed: end of block | 0 |
309 | if (!(sk_ASIdOrRange_push((*choice)->u.asIdsOrRanges, aor))TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
310 | goto never executed: goto err; err;never executed: goto err; | 0 |
311 | return never executed: return 1; 1;never executed: return 1; | 0 |
312 | | - |
313 | err: | - |
314 | ASIdOrRange_free(aor); | - |
315 | return never executed: return 0; 0;never executed: return 0; | 0 |
316 | } | - |
317 | | - |
318 | | - |
319 | | - |
320 | | - |
321 | static int extract_min_max(ASIdOrRange *aor, | - |
322 | ASN1_INTEGER **min, ASN1_INTEGER **max) | - |
323 | { | - |
324 | if (!((aor != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
325 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
326 | ) != 0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
327 | return never executed: return 0; 0;never executed: return 0; | 0 |
328 | switch (aor->type) { | - |
329 | case never executed: case 0: 0:never executed: case 0: | 0 |
330 | *min = aor->u.id; | - |
331 | *max = aor->u.id; | - |
332 | return never executed: return 1; 1;never executed: return 1; | 0 |
333 | case never executed: case 1: 1:never executed: case 1: | 0 |
334 | *min = aor->u.range->min; | - |
335 | *max = aor->u.range->max; | - |
336 | return never executed: return 1; 1;never executed: return 1; | 0 |
337 | } | - |
338 | | - |
339 | return never executed: return 0; 0;never executed: return 0; | 0 |
340 | } | - |
341 | | - |
342 | | - |
343 | | - |
344 | | - |
345 | static int ASIdentifierChoice_is_canonical(ASIdentifierChoice *choice) | - |
346 | { | - |
347 | ASN1_INTEGER *a_max_plus_one = | - |
348 | ((void *)0) | - |
349 | ; | - |
350 | BIGNUM *bn = | - |
351 | ((void *)0) | - |
352 | ; | - |
353 | int i, ret = 0; | - |
354 | | - |
355 | | - |
356 | | - |
357 | | - |
358 | if (choice == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
359 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
360 | || choice->type == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
361 | return never executed: return 1; 1;never executed: return 1; | 0 |
362 | | - |
363 | | - |
364 | | - |
365 | | - |
366 | if (choice->type != 1TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
367 | sk_ASIdOrRange_num(choice->u.asIdsOrRanges) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
368 | return never executed: return 0; 0;never executed: return 0; | 0 |
369 | | - |
370 | | - |
371 | | - |
372 | | - |
373 | for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
374 | ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i); | - |
375 | ASIdOrRange *b = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i + 1); | - |
376 | ASN1_INTEGER *a_min = | - |
377 | ((void *)0) | - |
378 | , *a_max = | - |
379 | ((void *)0) | - |
380 | , *b_min = | - |
381 | ((void *)0) | - |
382 | , *b_max = | - |
383 | | - |
384 | ((void *)0) | - |
385 | ; | - |
386 | | - |
387 | if (!extract_min_max(a, &a_min, &a_max)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
388 | || !extract_min_max(b, &b_min, &b_max)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
389 | goto never executed: goto done; done;never executed: goto done; | 0 |
390 | | - |
391 | | - |
392 | | - |
393 | | - |
394 | if (ASN1_INTEGER_cmp(a_min, b_min) >= 0TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
395 | ASN1_INTEGER_cmp(a_min, a_max) > 0TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
396 | ASN1_INTEGER_cmp(b_min, b_max) > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
397 | goto never executed: goto done; done;never executed: goto done; | 0 |
398 | | - |
399 | | - |
400 | | - |
401 | | - |
402 | if ((bn == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
403 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
404 | && (TRUE | never evaluated | FALSE | never evaluated |
bn = BN_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
405 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
406 | ) || | - |
407 | ASN1_INTEGER_to_BN(a_max, bn) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
408 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
409 | || | - |
410 | !BN_add_word(bn, 1)TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
411 | (TRUE | never evaluated | FALSE | never evaluated |
a_max_plus_one =TRUE | never evaluated | FALSE | never evaluated |
| 0 |
412 | BN_to_ASN1_INTEGER(bn, a_max_plus_one)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
413 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
414 | ) { | - |
415 | ERR_put_error(34,(162),((1|64)),__FILE__,305) | - |
416 | ; | - |
417 | goto never executed: goto done; done;never executed: goto done; | 0 |
418 | } | - |
419 | | - |
420 | | - |
421 | | - |
422 | | - |
423 | if (ASN1_INTEGER_cmp(a_max_plus_one, b_min) >= 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
424 | goto never executed: goto done; done;never executed: goto done; | 0 |
425 | } never executed: end of block | 0 |
426 | | - |
427 | | - |
428 | | - |
429 | | - |
430 | i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1; | - |
431 | { | - |
432 | ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i); | - |
433 | ASN1_INTEGER *a_min, *a_max; | - |
434 | if (a != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
435 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
436 | && a->type == 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
437 | if (!extract_min_max(a, &a_min, &a_max)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
438 | || ASN1_INTEGER_cmp(a_min, a_max) > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
439 | goto never executed: goto done; done;never executed: goto done; | 0 |
440 | } never executed: end of block | 0 |
441 | } | - |
442 | | - |
443 | ret = 1; | - |
444 | | - |
445 | done: code before this statement never executed: done: | 0 |
446 | ASN1_INTEGER_free(a_max_plus_one); | - |
447 | BN_free(bn); | - |
448 | return never executed: return ret; ret;never executed: return ret; | 0 |
449 | } | - |
450 | | - |
451 | | - |
452 | | - |
453 | | - |
454 | int X509v3_asid_is_canonical(ASIdentifiers *asid) | - |
455 | { | - |
456 | return never executed: return (asid == ((void *)0) || (ASIdentifierChoice_is_canonical(asid->asnum) && ASIdentifierChoice_is_canonical(asid->rdi))); (asid == TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid == ((void *)0) || (ASIdentifierChoice_is_canonical(asid->asnum) && ASIdentifierChoice_is_canonical(asid->rdi))); | 0 |
457 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid == ((void *)0) || (ASIdentifierChoice_is_canonical(asid->asnum) && ASIdentifierChoice_is_canonical(asid->rdi))); | 0 |
458 | || never executed: return (asid == ((void *)0) || (ASIdentifierChoice_is_canonical(asid->asnum) && ASIdentifierChoice_is_canonical(asid->rdi))); | 0 |
459 | (ASIdentifierChoice_is_canonical(asid->asnum)TRUE | never evaluated | FALSE | never evaluated |
&&never executed: return (asid == ((void *)0) || (ASIdentifierChoice_is_canonical(asid->asnum) && ASIdentifierChoice_is_canonical(asid->rdi))); | 0 |
460 | ASIdentifierChoice_is_canonical(asid->rdi)TRUE | never evaluated | FALSE | never evaluated |
));never executed: return (asid == ((void *)0) || (ASIdentifierChoice_is_canonical(asid->asnum) && ASIdentifierChoice_is_canonical(asid->rdi))); | 0 |
461 | } | - |
462 | | - |
463 | | - |
464 | | - |
465 | | - |
466 | static int ASIdentifierChoice_canonize(ASIdentifierChoice *choice) | - |
467 | { | - |
468 | ASN1_INTEGER *a_max_plus_one = | - |
469 | ((void *)0) | - |
470 | ; | - |
471 | BIGNUM *bn = | - |
472 | ((void *)0) | - |
473 | ; | - |
474 | int i, ret = 0; | - |
475 | | - |
476 | | - |
477 | | - |
478 | | - |
479 | if (choice == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
480 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
481 | || choice->type == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
482 | return never executed: return 1; 1;never executed: return 1; | 0 |
483 | | - |
484 | | - |
485 | | - |
486 | | - |
487 | if (choice->type != 1TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
488 | sk_ASIdOrRange_num(choice->u.asIdsOrRanges) == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
489 | ERR_put_error(34,(161),(116),__FILE__,369) | - |
490 | ; | - |
491 | return never executed: return 0; 0;never executed: return 0; | 0 |
492 | } | - |
493 | | - |
494 | | - |
495 | | - |
496 | | - |
497 | sk_ASIdOrRange_sort(choice->u.asIdsOrRanges); | - |
498 | | - |
499 | | - |
500 | | - |
501 | | - |
502 | | - |
503 | for (i = 0; i < sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
504 | ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i); | - |
505 | ASIdOrRange *b = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i + 1); | - |
506 | ASN1_INTEGER *a_min = | - |
507 | ((void *)0) | - |
508 | , *a_max = | - |
509 | ((void *)0) | - |
510 | , *b_min = | - |
511 | ((void *)0) | - |
512 | , *b_max = | - |
513 | | - |
514 | ((void *)0) | - |
515 | ; | - |
516 | | - |
517 | if (!extract_min_max(a, &a_min, &a_max)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
518 | || !extract_min_max(b, &b_min, &b_max)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
519 | goto never executed: goto done; done;never executed: goto done; | 0 |
520 | | - |
521 | | - |
522 | | - |
523 | | - |
524 | if (!((ASN1_INTEGER_cmp(a_min, b_min) <= 0) != 0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
525 | goto never executed: goto done; done;never executed: goto done; | 0 |
526 | | - |
527 | | - |
528 | | - |
529 | | - |
530 | if (ASN1_INTEGER_cmp(a_min, a_max) > 0TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
531 | ASN1_INTEGER_cmp(b_min, b_max) > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
532 | goto never executed: goto done; done;never executed: goto done; | 0 |
533 | | - |
534 | | - |
535 | | - |
536 | | - |
537 | if (ASN1_INTEGER_cmp(a_max, b_min) >= 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
538 | ERR_put_error(34,(161),(116),__FILE__,410) | - |
539 | ; | - |
540 | goto never executed: goto done; done;never executed: goto done; | 0 |
541 | } | - |
542 | | - |
543 | | - |
544 | | - |
545 | | - |
546 | if ((bn == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
547 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
548 | && (TRUE | never evaluated | FALSE | never evaluated |
bn = BN_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
549 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
550 | ) || | - |
551 | ASN1_INTEGER_to_BN(a_max, bn) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
552 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
553 | || | - |
554 | !BN_add_word(bn, 1)TRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
555 | (TRUE | never evaluated | FALSE | never evaluated |
a_max_plus_one =TRUE | never evaluated | FALSE | never evaluated |
| 0 |
556 | BN_to_ASN1_INTEGER(bn, a_max_plus_one)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
557 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
558 | ) { | - |
559 | ERR_put_error(34,(161),((1|64)),__FILE__,423) | - |
560 | ; | - |
561 | goto never executed: goto done; done;never executed: goto done; | 0 |
562 | } | - |
563 | | - |
564 | | - |
565 | | - |
566 | | - |
567 | if (ASN1_INTEGER_cmp(a_max_plus_one, b_min) == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
568 | ASRange *r; | - |
569 | switch (a->type) { | - |
570 | case never executed: case 0: 0:never executed: case 0: | 0 |
571 | if ((TRUE | never evaluated | FALSE | never evaluated |
r = CRYPTO_malloc(sizeof(*r), __FILE__, 434)) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
572 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
573 | ) { | - |
574 | ERR_put_error(34,(161),((1|64)),__FILE__,436) | - |
575 | ; | - |
576 | goto never executed: goto done; done;never executed: goto done; | 0 |
577 | } | - |
578 | r->min = a_min; | - |
579 | r->max = b_max; | - |
580 | a->type = 1; | - |
581 | a->u.range = r; | - |
582 | break; never executed: break; | 0 |
583 | case never executed: case 1: 1:never executed: case 1: | 0 |
584 | ASN1_INTEGER_free(a->u.range->max); | - |
585 | a->u.range->max = b_max; | - |
586 | break; never executed: break; | 0 |
587 | } | - |
588 | switch (b->type) { | - |
589 | case never executed: case 0: 0:never executed: case 0: | 0 |
590 | b->u.id = | - |
591 | ((void *)0) | - |
592 | ; | - |
593 | break; never executed: break; | 0 |
594 | case never executed: case 1: 1:never executed: case 1: | 0 |
595 | b->u.range->max = | - |
596 | ((void *)0) | - |
597 | ; | - |
598 | break; never executed: break; | 0 |
599 | } | - |
600 | ASIdOrRange_free(b); | - |
601 | (void)sk_ASIdOrRange_delete(choice->u.asIdsOrRanges, i + 1); | - |
602 | i--; | - |
603 | continue; never executed: continue; | 0 |
604 | } | - |
605 | } never executed: end of block | 0 |
606 | | - |
607 | | - |
608 | | - |
609 | | - |
610 | i = sk_ASIdOrRange_num(choice->u.asIdsOrRanges) - 1; | - |
611 | { | - |
612 | ASIdOrRange *a = sk_ASIdOrRange_value(choice->u.asIdsOrRanges, i); | - |
613 | ASN1_INTEGER *a_min, *a_max; | - |
614 | if (a != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
615 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
616 | && a->type == 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
617 | if (!extract_min_max(a, &a_min, &a_max)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
618 | || ASN1_INTEGER_cmp(a_min, a_max) > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
619 | goto never executed: goto done; done;never executed: goto done; | 0 |
620 | } never executed: end of block | 0 |
621 | } | - |
622 | | - |
623 | | - |
624 | if (!((ASIdentifierChoice_is_canonical(choice)) != 0)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
625 | goto never executed: goto done; done;never executed: goto done; | 0 |
626 | | - |
627 | ret = 1; | - |
628 | | - |
629 | done: code before this statement never executed: done: | 0 |
630 | ASN1_INTEGER_free(a_max_plus_one); | - |
631 | BN_free(bn); | - |
632 | return never executed: return ret; ret;never executed: return ret; | 0 |
633 | } | - |
634 | | - |
635 | | - |
636 | | - |
637 | | - |
638 | int X509v3_asid_canonize(ASIdentifiers *asid) | - |
639 | { | - |
640 | return never executed: return (asid == ((void *)0) || (ASIdentifierChoice_canonize(asid->asnum) && ASIdentifierChoice_canonize(asid->rdi))); (asid == TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid == ((void *)0) || (ASIdentifierChoice_canonize(asid->asnum) && ASIdentifierChoice_canonize(asid->rdi))); | 0 |
641 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid == ((void *)0) || (ASIdentifierChoice_canonize(asid->asnum) && ASIdentifierChoice_canonize(asid->rdi))); | 0 |
642 | || never executed: return (asid == ((void *)0) || (ASIdentifierChoice_canonize(asid->asnum) && ASIdentifierChoice_canonize(asid->rdi))); | 0 |
643 | (ASIdentifierChoice_canonize(asid->asnum)TRUE | never evaluated | FALSE | never evaluated |
&&never executed: return (asid == ((void *)0) || (ASIdentifierChoice_canonize(asid->asnum) && ASIdentifierChoice_canonize(asid->rdi))); | 0 |
644 | ASIdentifierChoice_canonize(asid->rdi)TRUE | never evaluated | FALSE | never evaluated |
));never executed: return (asid == ((void *)0) || (ASIdentifierChoice_canonize(asid->asnum) && ASIdentifierChoice_canonize(asid->rdi))); | 0 |
645 | } | - |
646 | | - |
647 | | - |
648 | | - |
649 | | - |
650 | static void *v2i_ASIdentifiers(const struct v3_ext_method *method, | - |
651 | struct v3_ext_ctx *ctx, | - |
652 | struct stack_st_CONF_VALUE *values) | - |
653 | { | - |
654 | ASN1_INTEGER *min = | - |
655 | ((void *)0) | - |
656 | , *max = | - |
657 | ((void *)0) | - |
658 | ; | - |
659 | ASIdentifiers *asid = | - |
660 | ((void *)0) | - |
661 | ; | - |
662 | int i; | - |
663 | | - |
664 | if ((TRUE | never evaluated | FALSE | never evaluated |
asid = ASIdentifiers_new()) == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
665 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
666 | ) { | - |
667 | ERR_put_error(34,(163),((1|64)),__FILE__,512); | - |
668 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
669 | ((void *)0) never executed: return ((void *)0) ; | 0 |
670 | ; never executed: return ((void *)0) ; | 0 |
671 | } | - |
672 | | - |
673 | for (i = 0; i < sk_CONF_VALUE_num(values)TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
674 | CONF_VALUE *val = sk_CONF_VALUE_value(values, i); | - |
675 | int i1 = 0, i2 = 0, i3 = 0, is_range = 0, which = 0; | - |
676 | | - |
677 | | - |
678 | | - |
679 | | - |
680 | if (!name_cmp(val->name, "AS")TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
681 | which = 0; | - |
682 | } never executed: end of block else if (!name_cmp(val->name, "RDI")TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
683 | which = 1; | - |
684 | } never executed: end of block else { | 0 |
685 | ERR_put_error(34,(163),(115),__FILE__,529) | - |
686 | ; | - |
687 | ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, ",value:", (val)->value); | - |
688 | goto never executed: goto err; err;never executed: goto err; | 0 |
689 | } | - |
690 | | - |
691 | | - |
692 | | - |
693 | | - |
694 | if ( | - |
695 | __extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
696 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
697 | ) && __builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
698 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
699 | ) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
700 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
701 | ), __s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
702 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
703 | ), (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
704 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
705 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
706 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
707 | ) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
708 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
709 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
710 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
711 | ) == 1) || __s2_len >= 4)) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
712 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
713 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
714 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
715 | ) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
716 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
717 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
718 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
719 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
720 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
721 | ) == 1) && (__s1_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
722 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
723 | ), __s1_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
724 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
725 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
726 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
727 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
728 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
729 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
730 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
731 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
732 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
733 | ) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
734 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
735 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
736 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
737 | ))[0] - __s2[0]); if (__s1_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
738 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
739 | ))[1] - __s2[1]); if (__s1_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
740 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
741 | ))[2] - __s2[2]); if (__s1_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( val->value ))[3] - __s2[3]); | 0 |
742 | val->valueTRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( val->value ))[3] - __s2[3]); | 0 |
743 | ))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
744 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
745 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
746 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
747 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
748 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
749 | ) == 1) && (__s2_len = __builtin_strlen (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
750 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
751 | ), __s2_len < 4) ? (__builtin_constant_p (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
752 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
753 | ) && ((size_t)(const void *)((TRUE | never evaluated | FALSE | never evaluated |
| 0 |
754 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
755 | ) + 1) - (size_t)(const void *)(TRUE | never evaluated | FALSE | never evaluated |
| 0 |
756 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
757 | ) == 1) ? __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
758 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
759 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
760 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
761 | ) : -(__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
762 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
763 | ); int __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
764 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
765 | ))[0] - __s2[0]); if (__s2_len > 0TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
766 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
767 | ))[1] - __s2[1]); if (__s2_len > 1TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) { __result = (((const unsigned char *) (const char *) (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
768 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
769 | ))[2] - __s2[2]); if (__s2_len > 2TRUE | never evaluated | FALSE | never evaluated |
&& __result == 0TRUE | never evaluated | FALSE | never evaluated |
) __result = (((const unsigned char *) (const char *) (never executed: __result = (((const unsigned char *) (const char *) ( "inherit" ))[3] - __s2[3]); | 0 |
770 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
never executed: __result = (((const unsigned char *) (const char *) ( "inherit" ))[3] - __s2[3]); | 0 |
771 | ))[3] - __s2[3]); } } __result; }))) : __builtin_strcmp (TRUE | never evaluated | FALSE | never evaluated |
| 0 |
772 | val->valueTRUE | never evaluated | FALSE | never evaluated |
| 0 |
773 | , TRUE | never evaluated | FALSE | never evaluated |
| 0 |
774 | "inherit"TRUE | never evaluated | FALSE | never evaluated |
| 0 |
775 | )))); }) TRUE | never evaluated | FALSE | never evaluated |
| 0 |
776 | == 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
777 | if (X509v3_asid_add_inherit(asid, which)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
778 | continue; never executed: continue; | 0 |
779 | ERR_put_error(34,(163),(165),__FILE__,541) | - |
780 | ; | - |
781 | ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, ",value:", (val)->value); | - |
782 | goto never executed: goto err; err;never executed: goto err; | 0 |
783 | } | - |
784 | | - |
785 | | - |
786 | | - |
787 | | - |
788 | i1 = | - |
789 | __builtin_strspn ( | - |
790 | val->value | - |
791 | , | - |
792 | "0123456789" | - |
793 | ) | - |
794 | ; | - |
795 | if (val->value[i1] == '\0'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
796 | is_range = 0; | - |
797 | } never executed: end of block else { | 0 |
798 | is_range = 1; | - |
799 | i2 = i1 + | - |
800 | __builtin_strspn ( | - |
801 | val->value + i1 | - |
802 | , | - |
803 | " \t" | - |
804 | ) | - |
805 | ; | - |
806 | if (val->value[i2] != '-'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
807 | ERR_put_error(34,(163),(162),__FILE__,557) | - |
808 | ; | - |
809 | ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, ",value:", (val)->value); | - |
810 | goto never executed: goto err; err;never executed: goto err; | 0 |
811 | } | - |
812 | i2++; | - |
813 | i2 = i2 + | - |
814 | __builtin_strspn ( | - |
815 | val->value + i2 | - |
816 | , | - |
817 | " \t" | - |
818 | ) | - |
819 | ; | - |
820 | i3 = i2 + | - |
821 | __builtin_strspn ( | - |
822 | val->value + i2 | - |
823 | , | - |
824 | "0123456789" | - |
825 | ) | - |
826 | ; | - |
827 | if (val->value[i3] != '\0'TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
828 | ERR_put_error(34,(163),(163),__FILE__,566) | - |
829 | ; | - |
830 | ERR_add_error_data(6, "section:", (val)->section, ",name:", (val)->name, ",value:", (val)->value); | - |
831 | goto never executed: goto err; err;never executed: goto err; | 0 |
832 | } | - |
833 | } never executed: end of block | 0 |
834 | | - |
835 | | - |
836 | | - |
837 | | - |
838 | if (!is_rangeTRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
839 | if (!X509V3_get_value_int(val, &min)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
840 | ERR_put_error(34,(163),((1|64)),__FILE__,577); | - |
841 | goto never executed: goto err; err;never executed: goto err; | 0 |
842 | } | - |
843 | } never executed: end of block else { | 0 |
844 | char *s = CRYPTO_strdup(val->value, __FILE__, 581); | - |
845 | if (s == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
846 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
847 | ) { | - |
848 | ERR_put_error(34,(163),((1|64)),__FILE__,583); | - |
849 | goto never executed: goto err; err;never executed: goto err; | 0 |
850 | } | - |
851 | s[i1] = '\0'; | - |
852 | min = s2i_ASN1_INTEGER( | - |
853 | ((void *)0) | - |
854 | , s); | - |
855 | max = s2i_ASN1_INTEGER( | - |
856 | ((void *)0) | - |
857 | , s + i2); | - |
858 | CRYPTO_free(s, __FILE__, 589); | - |
859 | if (min == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
860 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
861 | || max == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
862 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
863 | ) { | - |
864 | ERR_put_error(34,(163),((1|64)),__FILE__,591); | - |
865 | goto never executed: goto err; err;never executed: goto err; | 0 |
866 | } | - |
867 | if (ASN1_INTEGER_cmp(min, max) > 0TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
868 | ERR_put_error(34,(163),(116),__FILE__,596) | - |
869 | ; | - |
870 | goto never executed: goto err; err;never executed: goto err; | 0 |
871 | } | - |
872 | } never executed: end of block | 0 |
873 | if (!X509v3_asid_add_id_or_range(asid, which, min, max)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
874 | ERR_put_error(34,(163),((1|64)),__FILE__,601); | - |
875 | goto never executed: goto err; err;never executed: goto err; | 0 |
876 | } | - |
877 | min = max = | - |
878 | ((void *)0) | - |
879 | ; | - |
880 | } never executed: end of block | 0 |
881 | | - |
882 | | - |
883 | | - |
884 | | - |
885 | if (!X509v3_asid_canonize(asid)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
886 | goto never executed: goto err; err;never executed: goto err; | 0 |
887 | return never executed: return asid; asid;never executed: return asid; | 0 |
888 | | - |
889 | err: | - |
890 | ASIdentifiers_free(asid); | - |
891 | ASN1_INTEGER_free(min); | - |
892 | ASN1_INTEGER_free(max); | - |
893 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 |
894 | ((void *)0) never executed: return ((void *)0) ; | 0 |
895 | ; never executed: return ((void *)0) ; | 0 |
896 | } | - |
897 | | - |
898 | | - |
899 | | - |
900 | | - |
901 | const X509V3_EXT_METHOD v3_asid = { | - |
902 | 291, | - |
903 | 0, | - |
904 | (&(ASIdentifiers_it)), | - |
905 | 0, 0, 0, 0, | - |
906 | 0, | - |
907 | 0, | - |
908 | 0, | - |
909 | v2i_ASIdentifiers, | - |
910 | i2r_ASIdentifiers, | - |
911 | 0, | - |
912 | | - |
913 | ((void *)0) | - |
914 | | - |
915 | }; | - |
916 | | - |
917 | | - |
918 | | - |
919 | | - |
920 | int X509v3_asid_inherits(ASIdentifiers *asid) | - |
921 | { | - |
922 | return never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); (asid != TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
923 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
924 | && never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
925 | ((asid->asnum != TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
926 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
927 | && never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
928 | asid->asnum->type == 0TRUE | never evaluated | FALSE | never evaluated |
) ||never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
929 | (asid->rdi != TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
930 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
931 | && never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
932 | asid->rdi->type == 0TRUE | never evaluated | FALSE | never evaluated |
)));never executed: return (asid != ((void *)0) && ((asid->asnum != ((void *)0) && asid->asnum->type == 0) || (asid->rdi != ((void *)0) && asid->rdi->type == 0))); | 0 |
933 | } | - |
934 | | - |
935 | | - |
936 | | - |
937 | | - |
938 | static int asid_contains(ASIdOrRanges *parent, ASIdOrRanges *child) | - |
939 | { | - |
940 | ASN1_INTEGER *p_min = | - |
941 | ((void *)0) | - |
942 | , *p_max = | - |
943 | ((void *)0) | - |
944 | , *c_min = | - |
945 | ((void *)0) | - |
946 | , *c_max = | - |
947 | ((void *)0) | - |
948 | ; | - |
949 | int p, c; | - |
950 | | - |
951 | if (child == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
952 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
953 | || parent == childTRUE | never evaluated | FALSE | never evaluated |
) | 0 |
954 | return never executed: return 1; 1;never executed: return 1; | 0 |
955 | if (parent == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
956 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
957 | ) | - |
958 | return never executed: return 0; 0;never executed: return 0; | 0 |
959 | | - |
960 | p = 0; | - |
961 | for (c = 0; c < sk_ASIdOrRange_num(child)TRUE | never evaluated | FALSE | never evaluated |
; c++) { | 0 |
962 | if (!extract_min_max(sk_ASIdOrRange_value(child, c), &c_min, &c_max)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
963 | return never executed: return 0; 0;never executed: return 0; | 0 |
964 | for (;; p++) { | - |
965 | if (p >= sk_ASIdOrRange_num(parent)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
966 | return never executed: return 0; 0;never executed: return 0; | 0 |
967 | if (!extract_min_max(sk_ASIdOrRange_value(parent, p), &p_min,TRUE | never evaluated | FALSE | never evaluated |
| 0 |
968 | &p_max)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
969 | return never executed: return 0; 0;never executed: return 0; | 0 |
970 | if (ASN1_INTEGER_cmp(p_max, c_max) < 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
971 | continue; never executed: continue; | 0 |
972 | if (ASN1_INTEGER_cmp(p_min, c_min) > 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
973 | return never executed: return 0; 0;never executed: return 0; | 0 |
974 | break; never executed: break; | 0 |
975 | } | - |
976 | } never executed: end of block | 0 |
977 | | - |
978 | return never executed: return 1; 1;never executed: return 1; | 0 |
979 | } | - |
980 | | - |
981 | | - |
982 | | - |
983 | | - |
984 | int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b) | - |
985 | { | - |
986 | return never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); (a == TRUE | never evaluated | FALSE | never evaluated |
never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
987 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
988 | || never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
989 | a == bTRUE | never evaluated | FALSE | never evaluated |
||never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
990 | (b != TRUE | never evaluated | FALSE | never evaluated |
never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
991 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
992 | && never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
993 | !X509v3_asid_inherits(a)TRUE | never evaluated | FALSE | never evaluated |
&&never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
994 | !X509v3_asid_inherits(b)TRUE | never evaluated | FALSE | never evaluated |
&&never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
995 | asid_contains(b->asnum->u.asIdsOrRanges,TRUE | never evaluated | FALSE | never evaluated |
never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
996 | a->asnum->u.asIdsOrRanges)TRUE | never evaluated | FALSE | never evaluated |
&&never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
997 | asid_contains(b->rdi->u.asIdsOrRanges,TRUE | never evaluated | FALSE | never evaluated |
never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
998 | a->rdi->u.asIdsOrRanges)TRUE | never evaluated | FALSE | never evaluated |
));never executed: return (a == ((void *)0) || a == b || (b != ((void *)0) && !X509v3_asid_inherits(a) && !X509v3_asid_inherits(b) && asid_contains(b->asnum->u.asIdsOrRanges, a->asnum->u.asIdsOrRanges) && asid_contains(b->rdi->u.asIdsOrRanges, a->rdi->u.asIdsOrRanges))); | 0 |
999 | } | - |
1000 | static int asid_validate_path_internal(X509_STORE_CTX *ctx, | - |
1001 | struct stack_st_X509 *chain, | - |
1002 | ASIdentifiers *ext) | - |
1003 | { | - |
1004 | ASIdOrRanges *child_as = | - |
1005 | ((void *)0) | - |
1006 | , *child_rdi = | - |
1007 | ((void *)0) | - |
1008 | ; | - |
1009 | int i, ret = 1, inherit_as = 0, inherit_rdi = 0; | - |
1010 | X509 *x; | - |
1011 | | - |
1012 | if (!((chain != TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1013 | ((void *)0)TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1014 | && sk_X509_num(chain) > 0TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
) != 0)TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1015 | || !((ctx != TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1016 | ((void *)0)TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1017 | || ext != TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1018 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1019 | ) != 0)TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1020 | || !((ctx == TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1021 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1022 | || ctx->verify_cb != TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1023 | ((void *)0)TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1024 | ) != 0)TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
) { | 0-1305 |
1025 | if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1026 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1027 | ) | - |
1028 | ctx->error = 1; never executed: ctx->error = 1; | 0 |
1029 | return never executed: return 0; 0;never executed: return 0; | 0 |
1030 | } | - |
1031 | | - |
1032 | | - |
1033 | | - |
1034 | | - |
1035 | | - |
1036 | | - |
1037 | | - |
1038 | if (ext != TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1039 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1040 | ) { | - |
1041 | i = -1; | - |
1042 | x = | - |
1043 | ((void *)0) | - |
1044 | ; | - |
1045 | } never executed: end of block else { | 0 |
1046 | i = 0; | - |
1047 | x = sk_X509_value(chain, i); | - |
1048 | if ((TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
ext = x->rfc3779_asid) == TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
| 0-1305 |
1049 | ((void *)0)TRUE | evaluated 1305 times by 1 test | FALSE | never evaluated |
| 0-1305 |
1050 | ) | - |
1051 | gotoexecuted 1305 times by 1 test: goto done; done;executed 1305 times by 1 test: goto done; | 1305 |
1052 | } never executed: end of block | 0 |
1053 | if (!X509v3_asid_is_canonical(ext)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1054 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1055 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1056 | ) { ctx->error = 41; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; }never executed: end of block while (0); | 0 |
1057 | if (ext->asnum != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1058 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1059 | ) { | - |
1060 | switch (ext->asnum->type) { | - |
1061 | case never executed: case 0: 0:never executed: case 0: | 0 |
1062 | inherit_as = 1; | - |
1063 | break; never executed: break; | 0 |
1064 | case never executed: case 1: 1:never executed: case 1: | 0 |
1065 | child_as = ext->asnum->u.asIdsOrRanges; | - |
1066 | break; never executed: break; | 0 |
1067 | } | - |
1068 | } never executed: end of block | 0 |
1069 | if (ext->rdi != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1070 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1071 | ) { | - |
1072 | switch (ext->rdi->type) { | - |
1073 | case never executed: case 0: 0:never executed: case 0: | 0 |
1074 | inherit_rdi = 1; | - |
1075 | break; never executed: break; | 0 |
1076 | case never executed: case 1: 1:never executed: case 1: | 0 |
1077 | child_rdi = ext->rdi->u.asIdsOrRanges; | - |
1078 | break; never executed: break; | 0 |
1079 | } | - |
1080 | } never executed: end of block | 0 |
1081 | | - |
1082 | | - |
1083 | | - |
1084 | | - |
1085 | | - |
1086 | for (i++; i < sk_X509_num(chain)TRUE | never evaluated | FALSE | never evaluated |
; i++) { | 0 |
1087 | x = sk_X509_value(chain, i); | - |
1088 | if (!((x != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1089 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1090 | ) != 0)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1091 | if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1092 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1093 | ) | - |
1094 | ctx->error = 1; never executed: ctx->error = 1; | 0 |
1095 | return never executed: return 0; 0;never executed: return 0; | 0 |
1096 | } | - |
1097 | if (x->rfc3779_asid == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1098 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1099 | ) { | - |
1100 | if (child_as != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1101 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1102 | || child_rdi != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1103 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1104 | ) | - |
1105 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1106 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1107 | ) { ctx->error = 46; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; }never executed: end of block while (0); | 0 |
1108 | continue; never executed: continue; | 0 |
1109 | } | - |
1110 | if (!X509v3_asid_is_canonical(x->rfc3779_asid)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1111 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1112 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1113 | ) { ctx->error = 41; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; }never executed: end of block while (0); | 0 |
1114 | if (x->rfc3779_asid->asnum == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1115 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1116 | && child_as != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1117 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1118 | ) { | - |
1119 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1120 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1121 | ) { ctx->error = 46; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; } while (0); | 0 |
1122 | child_as = | - |
1123 | ((void *)0) | - |
1124 | ; | - |
1125 | inherit_as = 0; | - |
1126 | } never executed: end of block | 0 |
1127 | if (x->rfc3779_asid->asnum != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1128 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1129 | && | - |
1130 | x->rfc3779_asid->asnum->type ==TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1131 | 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1132 | if (inherit_asTRUE | never evaluated | FALSE | never evaluated |
| 0 |
1133 | || asid_contains(x->rfc3779_asid->asnum->u.asIdsOrRanges,TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1134 | child_as)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1135 | child_as = x->rfc3779_asid->asnum->u.asIdsOrRanges; | - |
1136 | inherit_as = 0; | - |
1137 | } never executed: end of block else { | 0 |
1138 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1139 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1140 | ) { ctx->error = 46; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; } while (0); | 0 |
1141 | } never executed: end of block | 0 |
1142 | } | - |
1143 | if (x->rfc3779_asid->rdi == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1144 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1145 | && child_rdi != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1146 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1147 | ) { | - |
1148 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1149 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1150 | ) { ctx->error = 46; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; } while (0); | 0 |
1151 | child_rdi = | - |
1152 | ((void *)0) | - |
1153 | ; | - |
1154 | inherit_rdi = 0; | - |
1155 | } never executed: end of block | 0 |
1156 | if (x->rfc3779_asid->rdi != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1157 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1158 | && | - |
1159 | x->rfc3779_asid->rdi->type == 1TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1160 | if (inherit_rdiTRUE | never evaluated | FALSE | never evaluated |
|| | 0 |
1161 | asid_contains(x->rfc3779_asid->rdi->u.asIdsOrRanges,TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1162 | child_rdi)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1163 | child_rdi = x->rfc3779_asid->rdi->u.asIdsOrRanges; | - |
1164 | inherit_rdi = 0; | - |
1165 | } never executed: end of block else { | 0 |
1166 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1167 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1168 | ) { ctx->error = 46; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; } while (0); | 0 |
1169 | } never executed: end of block | 0 |
1170 | } | - |
1171 | } never executed: end of block | 0 |
1172 | | - |
1173 | | - |
1174 | | - |
1175 | | - |
1176 | if (!((x != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1177 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1178 | ) != 0)TRUE | never evaluated | FALSE | never evaluated |
) { | 0 |
1179 | if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1180 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1181 | ) | - |
1182 | ctx->error = 1; never executed: ctx->error = 1; | 0 |
1183 | return never executed: return 0; 0;never executed: return 0; | 0 |
1184 | } | - |
1185 | if (x->rfc3779_asid != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1186 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1187 | ) { | - |
1188 | if (x->rfc3779_asid->asnum != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1189 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1190 | && | - |
1191 | x->rfc3779_asid->asnum->type == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1192 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1193 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1194 | ) { ctx->error = 46; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; }never executed: end of block while (0); | 0 |
1195 | if (x->rfc3779_asid->rdi != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1196 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1197 | && | - |
1198 | x->rfc3779_asid->rdi->type == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1199 | do { if (ctx != TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1200 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1201 | ) { ctx->error = 46; ctx->error_depth = i; ctx->current_cert = x; ret = ctx->verify_cb(0, ctx); } never executed: end of block else { ret = 0; }never executed: end of block if (!retTRUE | never evaluated | FALSE | never evaluated |
) gotonever executed: goto done; done;never executed: goto done; }never executed: end of block while (0); | 0 |
1202 | } never executed: end of block | 0 |
1203 | | - |
1204 | done: code before this statement never executed: done: | 0 |
1205 | returnexecuted 1305 times by 1 test: return ret; ret;executed 1305 times by 1 test: return ret; | 1305 |
1206 | } | - |
1207 | | - |
1208 | | - |
1209 | | - |
1210 | | - |
1211 | | - |
1212 | | - |
1213 | int X509v3_asid_validate_path(X509_STORE_CTX *ctx) | - |
1214 | { | - |
1215 | if (ctx->chain == TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1216 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1217 | | - |
1218 | || sk_X509_num(ctx->chain) == 0TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1219 | || ctx->verify_cb == TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1220 | ((void *)0)TRUE | never evaluated | FALSE | evaluated 1305 times by 1 test |
| 0-1305 |
1221 | ) { | - |
1222 | ctx->error = 1; | - |
1223 | return never executed: return 0; 0;never executed: return 0; | 0 |
1224 | } | - |
1225 | returnexecuted 1305 times by 1 test: return asid_validate_path_internal(ctx, ctx->chain, ((void *)0) ); asid_validate_path_internal(ctx, ctx->chain, executed 1305 times by 1 test: return asid_validate_path_internal(ctx, ctx->chain, ((void *)0) ); | 1305 |
1226 | ((void *)0)executed 1305 times by 1 test: return asid_validate_path_internal(ctx, ctx->chain, ((void *)0) ); | 1305 |
1227 | );executed 1305 times by 1 test: return asid_validate_path_internal(ctx, ctx->chain, ((void *)0) ); | 1305 |
1228 | } | - |
1229 | | - |
1230 | | - |
1231 | | - |
1232 | | - |
1233 | | - |
1234 | int X509v3_asid_validate_resource_set(struct stack_st_X509 *chain, | - |
1235 | ASIdentifiers *ext, int allow_inheritance) | - |
1236 | { | - |
1237 | if (ext == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1238 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1239 | ) | - |
1240 | return never executed: return 1; 1;never executed: return 1; | 0 |
1241 | if (chain == TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1242 | ((void *)0)TRUE | never evaluated | FALSE | never evaluated |
| 0 |
1243 | || sk_X509_num(chain) == 0TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1244 | return never executed: return 0; 0;never executed: return 0; | 0 |
1245 | if (!allow_inheritanceTRUE | never evaluated | FALSE | never evaluated |
&& X509v3_asid_inherits(ext)TRUE | never evaluated | FALSE | never evaluated |
) | 0 |
1246 | return never executed: return 0; 0;never executed: return 0; | 0 |
1247 | return never executed: return asid_validate_path_internal( ((void *)0) , chain, ext); asid_validate_path_internal(never executed: return asid_validate_path_internal( ((void *)0) , chain, ext); | 0 |
1248 | ((void *)0) never executed: return asid_validate_path_internal( ((void *)0) , chain, ext); | 0 |
1249 | , chain, ext); never executed: return asid_validate_path_internal( ((void *)0) , chain, ext); | 0 |
1250 | } | - |
| | |