Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/asn1/tasn_prn.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||
8 | - | |||||||||||||||||||||||||
9 | ASN1_PCTX default_pctx = { | - | ||||||||||||||||||||||||
10 | 0x001, | - | ||||||||||||||||||||||||
11 | 0, | - | ||||||||||||||||||||||||
12 | 0, | - | ||||||||||||||||||||||||
13 | 0, | - | ||||||||||||||||||||||||
14 | 0 | - | ||||||||||||||||||||||||
15 | }; | - | ||||||||||||||||||||||||
16 | - | |||||||||||||||||||||||||
17 | - | |||||||||||||||||||||||||
18 | ASN1_PCTX * | - | ||||||||||||||||||||||||
19 | ASN1_PCTX_new(void) | - | ||||||||||||||||||||||||
20 | { | - | ||||||||||||||||||||||||
21 | ASN1_PCTX *ret; | - | ||||||||||||||||||||||||
22 | ret = malloc(sizeof(ASN1_PCTX)); | - | ||||||||||||||||||||||||
23 | if (ret ==
| 0 | ||||||||||||||||||||||||
24 | ((void *)0)
| 0 | ||||||||||||||||||||||||
25 | ) { | - | ||||||||||||||||||||||||
26 | ERR_put_error(13,(0xfff),((1|64)),__FILE__,90); | - | ||||||||||||||||||||||||
27 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
28 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
29 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
30 | } | - | ||||||||||||||||||||||||
31 | ret->flags = 0; | - | ||||||||||||||||||||||||
32 | ret->nm_flags = 0; | - | ||||||||||||||||||||||||
33 | ret->cert_flags = 0; | - | ||||||||||||||||||||||||
34 | ret->oid_flags = 0; | - | ||||||||||||||||||||||||
35 | ret->str_flags = 0; | - | ||||||||||||||||||||||||
36 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||||||||||||||
37 | } | - | ||||||||||||||||||||||||
38 | - | |||||||||||||||||||||||||
39 | void | - | ||||||||||||||||||||||||
40 | ASN1_PCTX_free(ASN1_PCTX *p) | - | ||||||||||||||||||||||||
41 | { | - | ||||||||||||||||||||||||
42 | free(p); | - | ||||||||||||||||||||||||
43 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||||||||||||||
44 | - | |||||||||||||||||||||||||
45 | unsigned long | - | ||||||||||||||||||||||||
46 | ASN1_PCTX_get_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
47 | { | - | ||||||||||||||||||||||||
48 | return never executed: p->flags;return p->flags; never executed: return p->flags; | 0 | ||||||||||||||||||||||||
49 | } | - | ||||||||||||||||||||||||
50 | - | |||||||||||||||||||||||||
51 | void | - | ||||||||||||||||||||||||
52 | ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
53 | { | - | ||||||||||||||||||||||||
54 | p->flags = flags; | - | ||||||||||||||||||||||||
55 | } never executed: end of block | 0 | ||||||||||||||||||||||||
56 | - | |||||||||||||||||||||||||
57 | unsigned long | - | ||||||||||||||||||||||||
58 | ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
59 | { | - | ||||||||||||||||||||||||
60 | return never executed: p->nm_flags;return p->nm_flags; never executed: return p->nm_flags; | 0 | ||||||||||||||||||||||||
61 | } | - | ||||||||||||||||||||||||
62 | - | |||||||||||||||||||||||||
63 | void | - | ||||||||||||||||||||||||
64 | ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
65 | { | - | ||||||||||||||||||||||||
66 | p->nm_flags = flags; | - | ||||||||||||||||||||||||
67 | } never executed: end of block | 0 | ||||||||||||||||||||||||
68 | - | |||||||||||||||||||||||||
69 | unsigned long | - | ||||||||||||||||||||||||
70 | ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
71 | { | - | ||||||||||||||||||||||||
72 | return never executed: p->cert_flags;return p->cert_flags; never executed: return p->cert_flags; | 0 | ||||||||||||||||||||||||
73 | } | - | ||||||||||||||||||||||||
74 | - | |||||||||||||||||||||||||
75 | void | - | ||||||||||||||||||||||||
76 | ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
77 | { | - | ||||||||||||||||||||||||
78 | p->cert_flags = flags; | - | ||||||||||||||||||||||||
79 | } never executed: end of block | 0 | ||||||||||||||||||||||||
80 | - | |||||||||||||||||||||||||
81 | unsigned long | - | ||||||||||||||||||||||||
82 | ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
83 | { | - | ||||||||||||||||||||||||
84 | return never executed: p->oid_flags;return p->oid_flags; never executed: return p->oid_flags; | 0 | ||||||||||||||||||||||||
85 | } | - | ||||||||||||||||||||||||
86 | - | |||||||||||||||||||||||||
87 | void | - | ||||||||||||||||||||||||
88 | ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
89 | { | - | ||||||||||||||||||||||||
90 | p->oid_flags = flags; | - | ||||||||||||||||||||||||
91 | } never executed: end of block | 0 | ||||||||||||||||||||||||
92 | - | |||||||||||||||||||||||||
93 | unsigned long | - | ||||||||||||||||||||||||
94 | ASN1_PCTX_get_str_flags(const ASN1_PCTX *p) | - | ||||||||||||||||||||||||
95 | { | - | ||||||||||||||||||||||||
96 | return never executed: p->str_flags;return p->str_flags; never executed: return p->str_flags; | 0 | ||||||||||||||||||||||||
97 | } | - | ||||||||||||||||||||||||
98 | - | |||||||||||||||||||||||||
99 | void | - | ||||||||||||||||||||||||
100 | ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags) | - | ||||||||||||||||||||||||
101 | { | - | ||||||||||||||||||||||||
102 | p->str_flags = flags; | - | ||||||||||||||||||||||||
103 | } never executed: end of block | 0 | ||||||||||||||||||||||||
104 | - | |||||||||||||||||||||||||
105 | - | |||||||||||||||||||||||||
106 | - | |||||||||||||||||||||||||
107 | static int asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, | - | ||||||||||||||||||||||||
108 | const ASN1_ITEM *it, const char *fname, const char *sname, int nohdr, | - | ||||||||||||||||||||||||
109 | const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
110 | - | |||||||||||||||||||||||||
111 | int asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, | - | ||||||||||||||||||||||||
112 | const ASN1_TEMPLATE *tt, const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
113 | - | |||||||||||||||||||||||||
114 | static int asn1_primitive_print(BIO *out, ASN1_VALUE **fld, | - | ||||||||||||||||||||||||
115 | const ASN1_ITEM *it, int indent, const char *fname, const char *sname, | - | ||||||||||||||||||||||||
116 | const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
117 | - | |||||||||||||||||||||||||
118 | static int asn1_print_fsname(BIO *out, int indent, const char *fname, | - | ||||||||||||||||||||||||
119 | const char *sname, const ASN1_PCTX *pctx); | - | ||||||||||||||||||||||||
120 | - | |||||||||||||||||||||||||
121 | int | - | ||||||||||||||||||||||||
122 | ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, const ASN1_ITEM *it, | - | ||||||||||||||||||||||||
123 | const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
124 | { | - | ||||||||||||||||||||||||
125 | const char *sname; | - | ||||||||||||||||||||||||
126 | - | |||||||||||||||||||||||||
127 | if (pctx ==
| 0 | ||||||||||||||||||||||||
128 | ((void *)0)
| 0 | ||||||||||||||||||||||||
129 | ) | - | ||||||||||||||||||||||||
130 | pctx = &default_pctx; never executed: pctx = &default_pctx; | 0 | ||||||||||||||||||||||||
131 | if (pctx->flags & 0x100
| 0 | ||||||||||||||||||||||||
132 | sname = never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
133 | ((void *)0) never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
134 | ; never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
135 | else | - | ||||||||||||||||||||||||
136 | sname = it->sname; never executed: sname = it->sname; | 0 | ||||||||||||||||||||||||
137 | return never executed: asn1_item_print_ctx(out, &ifld, indent, it, return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
138 | ((void *)0) never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
139 | , sname, never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
140 | 0, pctx); never executed: return asn1_item_print_ctx(out, &ifld, indent, it, ((void *)0) , sname, 0, pctx); | 0 | ||||||||||||||||||||||||
141 | } | - | ||||||||||||||||||||||||
142 | - | |||||||||||||||||||||||||
143 | static int | - | ||||||||||||||||||||||||
144 | asn1_item_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, const ASN1_ITEM *it, | - | ||||||||||||||||||||||||
145 | const char *fname, const char *sname, int nohdr, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
146 | { | - | ||||||||||||||||||||||||
147 | const ASN1_TEMPLATE *tt; | - | ||||||||||||||||||||||||
148 | const ASN1_EXTERN_FUNCS *ef; | - | ||||||||||||||||||||||||
149 | ASN1_VALUE **tmpfld; | - | ||||||||||||||||||||||||
150 | const ASN1_AUX *aux = it->funcs; | - | ||||||||||||||||||||||||
151 | ASN1_aux_cb *asn1_cb; | - | ||||||||||||||||||||||||
152 | ASN1_PRINT_ARG parg; | - | ||||||||||||||||||||||||
153 | int i; | - | ||||||||||||||||||||||||
154 | - | |||||||||||||||||||||||||
155 | if (aux
| 0 | ||||||||||||||||||||||||
156 | parg.out = out; | - | ||||||||||||||||||||||||
157 | parg.indent = indent; | - | ||||||||||||||||||||||||
158 | parg.pctx = pctx; | - | ||||||||||||||||||||||||
159 | asn1_cb = aux->asn1_cb; | - | ||||||||||||||||||||||||
160 | } never executed: elseend of block | 0 | ||||||||||||||||||||||||
161 | asn1_cb = never executed: asn1_cb = ((void *)0) ; | 0 | ||||||||||||||||||||||||
162 | ((void *)0) never executed: asn1_cb = ((void *)0) ; | 0 | ||||||||||||||||||||||||
163 | ; never executed: asn1_cb = ((void *)0) ; | 0 | ||||||||||||||||||||||||
164 | - | |||||||||||||||||||||||||
165 | if (*
| 0 | ||||||||||||||||||||||||
166 | ((void *)0)
| 0 | ||||||||||||||||||||||||
167 | ) { | - | ||||||||||||||||||||||||
168 | if (pctx->flags & 0x001
| 0 | ||||||||||||||||||||||||
169 | if (!nohdr
| 0 | ||||||||||||||||||||||||
170 | !asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
171 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
172 | if (BIO_puts(out, "<ABSENT>\n") <= 0
| 0 | ||||||||||||||||||||||||
173 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
174 | } never executed: end of block | 0 | ||||||||||||||||||||||||
175 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
176 | } | - | ||||||||||||||||||||||||
177 | - | |||||||||||||||||||||||||
178 | switch (it->itype) { | - | ||||||||||||||||||||||||
179 | case never executed: 0x0:case 0x0: never executed: case 0x0: | 0 | ||||||||||||||||||||||||
180 | if (it->templates
| 0 | ||||||||||||||||||||||||
181 | if (!asn1_template_print_ctx(out, fld, indent,
| 0 | ||||||||||||||||||||||||
182 | it->templates, pctx)
| 0 | ||||||||||||||||||||||||
183 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
184 | } never executed: end of block | 0 | ||||||||||||||||||||||||
185 | - | |||||||||||||||||||||||||
186 | case never executed: 0x5:case 0x5: never executed: case 0x5: code before this statement never executed: case 0x5: | 0 | ||||||||||||||||||||||||
187 | if (!asn1_primitive_print(out, fld, it,
| 0 | ||||||||||||||||||||||||
188 | indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
189 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
190 | break; never executed: break; | 0 | ||||||||||||||||||||||||
191 | - | |||||||||||||||||||||||||
192 | case never executed: 0x4:case 0x4: never executed: case 0x4: | 0 | ||||||||||||||||||||||||
193 | if (!nohdr
| 0 | ||||||||||||||||||||||||
194 | !asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
195 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
196 | - | |||||||||||||||||||||||||
197 | ef = it->funcs; | - | ||||||||||||||||||||||||
198 | if (ef
| 0 | ||||||||||||||||||||||||
199 | i = ef->asn1_ex_print(out, fld, indent, "", pctx); | - | ||||||||||||||||||||||||
200 | if (!i
| 0 | ||||||||||||||||||||||||
201 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
202 | if ((
| 0 | ||||||||||||||||||||||||
203 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
204 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
205 | } else if (sname
| 0 | ||||||||||||||||||||||||
206 | BIO_printf(out, ":EXTERNAL TYPE %s\n", sname) <= 0
| 0 | ||||||||||||||||||||||||
207 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
208 | break; never executed: break; | 0 | ||||||||||||||||||||||||
209 | - | |||||||||||||||||||||||||
210 | case never executed: 0x2:case 0x2: never executed: case 0x2: | 0 | ||||||||||||||||||||||||
211 | - | |||||||||||||||||||||||||
212 | i = asn1_get_choice_selector(fld, it); | - | ||||||||||||||||||||||||
213 | - | |||||||||||||||||||||||||
214 | if ((
| 0 | ||||||||||||||||||||||||
215 | if (BIO_printf(out,
| 0 | ||||||||||||||||||||||||
216 | "ERROR: selector [%d] invalid\n", i) <= 0
| 0 | ||||||||||||||||||||||||
217 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
218 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
219 | } | - | ||||||||||||||||||||||||
220 | tt = it->templates + i; | - | ||||||||||||||||||||||||
221 | tmpfld = asn1_get_field_ptr(fld, tt); | - | ||||||||||||||||||||||||
222 | if (!asn1_template_print_ctx(out, tmpfld, indent, tt, pctx)
| 0 | ||||||||||||||||||||||||
223 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
224 | break; never executed: break; | 0 | ||||||||||||||||||||||||
225 | - | |||||||||||||||||||||||||
226 | case never executed: 0x1:case 0x1: never executed: case 0x1: | 0 | ||||||||||||||||||||||||
227 | case never executed: 0x6:case 0x6: never executed: case 0x6: | 0 | ||||||||||||||||||||||||
228 | if (!nohdr
| 0 | ||||||||||||||||||||||||
229 | !asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
230 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
231 | if (fname
| 0 | ||||||||||||||||||||||||
232 | if (pctx->flags & 0x002
| 0 | ||||||||||||||||||||||||
233 | if (BIO_puts(out, " {\n") <= 0
| 0 | ||||||||||||||||||||||||
234 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
235 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
236 | if (BIO_puts(out, "\n") <= 0
| 0 | ||||||||||||||||||||||||
237 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
238 | } never executed: end of block | 0 | ||||||||||||||||||||||||
239 | } | - | ||||||||||||||||||||||||
240 | - | |||||||||||||||||||||||||
241 | if (asn1_cb
| 0 | ||||||||||||||||||||||||
242 | i = asn1_cb(8, fld, it, &parg); | - | ||||||||||||||||||||||||
243 | if (i == 0
| 0 | ||||||||||||||||||||||||
244 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
245 | if (i == 2
| 0 | ||||||||||||||||||||||||
246 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
247 | } never executed: end of block | 0 | ||||||||||||||||||||||||
248 | - | |||||||||||||||||||||||||
249 | - | |||||||||||||||||||||||||
250 | for (i = 0, tt = it->templates; i < it->tcount
| 0 | ||||||||||||||||||||||||
251 | const ASN1_TEMPLATE *seqtt; | - | ||||||||||||||||||||||||
252 | - | |||||||||||||||||||||||||
253 | seqtt = asn1_do_adb(fld, tt, 1); | - | ||||||||||||||||||||||||
254 | if (seqtt ==
| 0 | ||||||||||||||||||||||||
255 | ((void *)0)
| 0 | ||||||||||||||||||||||||
256 | ) | - | ||||||||||||||||||||||||
257 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
258 | tmpfld = asn1_get_field_ptr(fld, seqtt); | - | ||||||||||||||||||||||||
259 | if (!asn1_template_print_ctx(out, tmpfld, indent + 2,
| 0 | ||||||||||||||||||||||||
260 | seqtt, pctx)
| 0 | ||||||||||||||||||||||||
261 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
262 | } never executed: end of block | 0 | ||||||||||||||||||||||||
263 | if (pctx->flags & 0x002
| 0 | ||||||||||||||||||||||||
264 | if (BIO_printf(out, "%*s}\n", indent, "") < 0
| 0 | ||||||||||||||||||||||||
265 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
266 | } never executed: end of block | 0 | ||||||||||||||||||||||||
267 | - | |||||||||||||||||||||||||
268 | if (asn1_cb
| 0 | ||||||||||||||||||||||||
269 | i = asn1_cb(9, fld, it, &parg); | - | ||||||||||||||||||||||||
270 | if (i == 0
| 0 | ||||||||||||||||||||||||
271 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
272 | } never executed: end of block | 0 | ||||||||||||||||||||||||
273 | break; never executed: break; | 0 | ||||||||||||||||||||||||
274 | - | |||||||||||||||||||||||||
275 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
276 | BIO_printf(out, "Unprocessed type %d\n", it->itype); | - | ||||||||||||||||||||||||
277 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
278 | } | - | ||||||||||||||||||||||||
279 | - | |||||||||||||||||||||||||
280 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
281 | } | - | ||||||||||||||||||||||||
282 | - | |||||||||||||||||||||||||
283 | int | - | ||||||||||||||||||||||||
284 | asn1_template_print_ctx(BIO *out, ASN1_VALUE **fld, int indent, | - | ||||||||||||||||||||||||
285 | const ASN1_TEMPLATE *tt, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
286 | { | - | ||||||||||||||||||||||||
287 | int i, flags; | - | ||||||||||||||||||||||||
288 | const char *sname, *fname; | - | ||||||||||||||||||||||||
289 | - | |||||||||||||||||||||||||
290 | flags = tt->flags; | - | ||||||||||||||||||||||||
291 | if (pctx->flags & 0x080
| 0 | ||||||||||||||||||||||||
292 | sname = tt->item->sname; never executed: sname = tt->item->sname; | 0 | ||||||||||||||||||||||||
293 | else | - | ||||||||||||||||||||||||
294 | sname = never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
295 | ((void *)0) never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
296 | ; never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
297 | if (pctx->flags & 0x040
| 0 | ||||||||||||||||||||||||
298 | fname = never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
299 | ((void *)0) never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
300 | ; never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
301 | else | - | ||||||||||||||||||||||||
302 | fname = tt->field_name; never executed: fname = tt->field_name; | 0 | ||||||||||||||||||||||||
303 | if (flags & (0x3 << 1)
| 0 | ||||||||||||||||||||||||
304 | char *tname; | - | ||||||||||||||||||||||||
305 | ASN1_VALUE *skitem; | - | ||||||||||||||||||||||||
306 | struct stack_st_ASN1_VALUE *stack; | - | ||||||||||||||||||||||||
307 | - | |||||||||||||||||||||||||
308 | - | |||||||||||||||||||||||||
309 | if (fname
| 0 | ||||||||||||||||||||||||
310 | if (pctx->flags & 0x004
| 0 | ||||||||||||||||||||||||
311 | if (flags & (0x1 << 1)
| 0 | ||||||||||||||||||||||||
312 | tname = "SET"; never executed: tname = "SET"; | 0 | ||||||||||||||||||||||||
313 | else | - | ||||||||||||||||||||||||
314 | tname = "SEQUENCE"; never executed: tname = "SEQUENCE"; | 0 | ||||||||||||||||||||||||
315 | if (BIO_printf(out, "%*s%s OF %s {\n",
| 0 | ||||||||||||||||||||||||
316 | indent, "", tname, tt->field_name) <= 0
| 0 | ||||||||||||||||||||||||
317 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
318 | } never executed: else if (BIO_printf(out, "%*s%s:\n", indent, "",end of block
| 0 | ||||||||||||||||||||||||
319 | fname) <= 0
| 0 | ||||||||||||||||||||||||
320 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
321 | } never executed: end of block | 0 | ||||||||||||||||||||||||
322 | stack = (struct stack_st_ASN1_VALUE *)*fld; | - | ||||||||||||||||||||||||
323 | for (i = 0; i < sk_num(((_STACK*) (1 ? (stack) : (struct stack_st_ASN1_VALUE*)0)))
| 0 | ||||||||||||||||||||||||
324 | if ((
| 0 | ||||||||||||||||||||||||
325 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
326 | skitem = ((ASN1_VALUE *)sk_value(((_STACK*) (1 ? (stack) : (struct stack_st_ASN1_VALUE*)0)), (i))); | - | ||||||||||||||||||||||||
327 | if (!asn1_item_print_ctx(out, &skitem, indent + 2,
| 0 | ||||||||||||||||||||||||
328 | tt->item,
| 0 | ||||||||||||||||||||||||
329 | ((void *)0)
| 0 | ||||||||||||||||||||||||
330 | ,
| 0 | ||||||||||||||||||||||||
331 | ((void *)0)
| 0 | ||||||||||||||||||||||||
332 | , 1, pctx)
| 0 | ||||||||||||||||||||||||
333 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
334 | } never executed: end of block | 0 | ||||||||||||||||||||||||
335 | if (!i
| 0 | ||||||||||||||||||||||||
336 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
337 | if (pctx->flags & 0x002
| 0 | ||||||||||||||||||||||||
338 | if (BIO_printf(out, "%*s}\n", indent, "") <= 0
| 0 | ||||||||||||||||||||||||
339 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
340 | } never executed: end of block | 0 | ||||||||||||||||||||||||
341 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
342 | } | - | ||||||||||||||||||||||||
343 | return never executed: asn1_item_print_ctx(out, fld, indent, tt->item,return asn1_item_print_ctx(out, fld, indent, tt->item, fname, sname, 0, pctx); never executed: return asn1_item_print_ctx(out, fld, indent, tt->item, fname, sname, 0, pctx); | 0 | ||||||||||||||||||||||||
344 | fname, sname, 0, pctx); never executed: return asn1_item_print_ctx(out, fld, indent, tt->item, fname, sname, 0, pctx); | 0 | ||||||||||||||||||||||||
345 | } | - | ||||||||||||||||||||||||
346 | - | |||||||||||||||||||||||||
347 | static int | - | ||||||||||||||||||||||||
348 | asn1_print_fsname(BIO *out, int indent, const char *fname, const char *sname, | - | ||||||||||||||||||||||||
349 | const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
350 | { | - | ||||||||||||||||||||||||
351 | static char spaces[] = " "; | - | ||||||||||||||||||||||||
352 | const int nspaces = sizeof(spaces) - 1; | - | ||||||||||||||||||||||||
353 | - | |||||||||||||||||||||||||
354 | while (indent > nspaces
| 0 | ||||||||||||||||||||||||
355 | if (BIO_write(out, spaces, nspaces) != nspaces
| 0 | ||||||||||||||||||||||||
356 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
357 | indent -= nspaces; | - | ||||||||||||||||||||||||
358 | } never executed: end of block | 0 | ||||||||||||||||||||||||
359 | if (BIO_write(out, spaces, indent) != indent
| 0 | ||||||||||||||||||||||||
360 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
361 | if (pctx->flags & 0x100
| 0 | ||||||||||||||||||||||||
362 | sname = never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
363 | ((void *)0) never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
364 | ; never executed: sname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
365 | if (pctx->flags & 0x040
| 0 | ||||||||||||||||||||||||
366 | fname = never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
367 | ((void *)0) never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
368 | ; never executed: fname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
369 | if (!sname
| 0 | ||||||||||||||||||||||||
370 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
371 | if (fname
| 0 | ||||||||||||||||||||||||
372 | if (BIO_puts(out, fname) <= 0
| 0 | ||||||||||||||||||||||||
373 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
374 | } never executed: end of block | 0 | ||||||||||||||||||||||||
375 | if (sname
| 0 | ||||||||||||||||||||||||
376 | if (fname
| 0 | ||||||||||||||||||||||||
377 | if (BIO_printf(out, " (%s)", sname) <= 0
| 0 | ||||||||||||||||||||||||
378 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
379 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
380 | if (BIO_puts(out, sname) <= 0
| 0 | ||||||||||||||||||||||||
381 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
382 | } never executed: end of block | 0 | ||||||||||||||||||||||||
383 | } | - | ||||||||||||||||||||||||
384 | if (BIO_write(out, ": ", 2) != 2
| 0 | ||||||||||||||||||||||||
385 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
386 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
387 | } | - | ||||||||||||||||||||||||
388 | - | |||||||||||||||||||||||||
389 | static int | - | ||||||||||||||||||||||||
390 | asn1_print_boolean_ctx(BIO *out, int boolval, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
391 | { | - | ||||||||||||||||||||||||
392 | const char *str; | - | ||||||||||||||||||||||||
393 | switch (boolval) { | - | ||||||||||||||||||||||||
394 | case never executed: -1:case -1: never executed: case -1: | 0 | ||||||||||||||||||||||||
395 | str = "BOOL ABSENT"; | - | ||||||||||||||||||||||||
396 | break; never executed: break; | 0 | ||||||||||||||||||||||||
397 | - | |||||||||||||||||||||||||
398 | case never executed: 0:case 0: never executed: case 0: | 0 | ||||||||||||||||||||||||
399 | str = "FALSE"; | - | ||||||||||||||||||||||||
400 | break; never executed: break; | 0 | ||||||||||||||||||||||||
401 | - | |||||||||||||||||||||||||
402 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
403 | str = "TRUE"; | - | ||||||||||||||||||||||||
404 | break; never executed: break; | 0 | ||||||||||||||||||||||||
405 | - | |||||||||||||||||||||||||
406 | } | - | ||||||||||||||||||||||||
407 | - | |||||||||||||||||||||||||
408 | if (BIO_puts(out, str) <= 0
| 0 | ||||||||||||||||||||||||
409 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
410 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
411 | - | |||||||||||||||||||||||||
412 | } | - | ||||||||||||||||||||||||
413 | - | |||||||||||||||||||||||||
414 | static int | - | ||||||||||||||||||||||||
415 | asn1_print_integer_ctx(BIO *out, ASN1_INTEGER *str, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
416 | { | - | ||||||||||||||||||||||||
417 | char *s; | - | ||||||||||||||||||||||||
418 | int ret = 1; | - | ||||||||||||||||||||||||
419 | s = i2s_ASN1_INTEGER( | - | ||||||||||||||||||||||||
420 | ((void *)0) | - | ||||||||||||||||||||||||
421 | , str); | - | ||||||||||||||||||||||||
422 | if (BIO_puts(out, s) <= 0
| 0 | ||||||||||||||||||||||||
423 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||||||||
424 | free(s); | - | ||||||||||||||||||||||||
425 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||||||||||||||
426 | } | - | ||||||||||||||||||||||||
427 | - | |||||||||||||||||||||||||
428 | static int | - | ||||||||||||||||||||||||
429 | asn1_print_oid_ctx(BIO *out, const ASN1_OBJECT *oid, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
430 | { | - | ||||||||||||||||||||||||
431 | char objbuf[80]; | - | ||||||||||||||||||||||||
432 | const char *ln; | - | ||||||||||||||||||||||||
433 | ln = OBJ_nid2ln(OBJ_obj2nid(oid)); | - | ||||||||||||||||||||||||
434 | if (!ln
| 0 | ||||||||||||||||||||||||
435 | ln = ""; never executed: ln = ""; | 0 | ||||||||||||||||||||||||
436 | OBJ_obj2txt(objbuf, sizeof objbuf, oid, 1); | - | ||||||||||||||||||||||||
437 | if (BIO_printf(out, "%s (%s)", ln, objbuf) <= 0
| 0 | ||||||||||||||||||||||||
438 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
439 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
440 | } | - | ||||||||||||||||||||||||
441 | - | |||||||||||||||||||||||||
442 | static int | - | ||||||||||||||||||||||||
443 | asn1_print_obstring_ctx(BIO *out, ASN1_STRING *str, int indent, | - | ||||||||||||||||||||||||
444 | const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
445 | { | - | ||||||||||||||||||||||||
446 | if (str->type == 3
| 0 | ||||||||||||||||||||||||
447 | if (BIO_printf(out, " (%ld unused bits)\n",
| 0 | ||||||||||||||||||||||||
448 | str->flags & 0x7) <= 0
| 0 | ||||||||||||||||||||||||
449 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
450 | } never executed: else if (BIO_puts(out, "\n") <= 0end of block
| 0 | ||||||||||||||||||||||||
451 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
452 | if ((
| 0 | ||||||||||||||||||||||||
453 | BIO_dump_indent(out, (char *)str->data, str->length,
| 0 | ||||||||||||||||||||||||
454 | indent + 2) <= 0
| 0 | ||||||||||||||||||||||||
455 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
456 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
457 | } | - | ||||||||||||||||||||||||
458 | - | |||||||||||||||||||||||||
459 | static int | - | ||||||||||||||||||||||||
460 | asn1_primitive_print(BIO *out, ASN1_VALUE **fld, const ASN1_ITEM *it, | - | ||||||||||||||||||||||||
461 | int indent, const char *fname, const char *sname, const ASN1_PCTX *pctx) | - | ||||||||||||||||||||||||
462 | { | - | ||||||||||||||||||||||||
463 | long utype; | - | ||||||||||||||||||||||||
464 | ASN1_STRING *str; | - | ||||||||||||||||||||||||
465 | int ret = 1, needlf = 1; | - | ||||||||||||||||||||||||
466 | const char *pname; | - | ||||||||||||||||||||||||
467 | const ASN1_PRIMITIVE_FUNCS *pf; | - | ||||||||||||||||||||||||
468 | - | |||||||||||||||||||||||||
469 | pf = it->funcs; | - | ||||||||||||||||||||||||
470 | if (!asn1_print_fsname(out, indent, fname, sname, pctx)
| 0 | ||||||||||||||||||||||||
471 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
472 | if (pf
| 0 | ||||||||||||||||||||||||
473 | return never executed: pf->prim_print(out, fld, it, indent, pctx);return pf->prim_print(out, fld, it, indent, pctx); never executed: return pf->prim_print(out, fld, it, indent, pctx); | 0 | ||||||||||||||||||||||||
474 | str = (ASN1_STRING *)*fld; | - | ||||||||||||||||||||||||
475 | if (it->itype == 0x5
| 0 | ||||||||||||||||||||||||
476 | utype = str->type & ~0x100; never executed: utype = str->type & ~0x100; | 0 | ||||||||||||||||||||||||
477 | else | - | ||||||||||||||||||||||||
478 | utype = it->utype; never executed: utype = it->utype; | 0 | ||||||||||||||||||||||||
479 | if (utype == -4
| 0 | ||||||||||||||||||||||||
480 | ASN1_TYPE *atype = (ASN1_TYPE *)*fld; | - | ||||||||||||||||||||||||
481 | utype = atype->type; | - | ||||||||||||||||||||||||
482 | fld = &atype->value.asn1_value; | - | ||||||||||||||||||||||||
483 | str = (ASN1_STRING *)*fld; | - | ||||||||||||||||||||||||
484 | if (pctx->flags & 0x010
| 0 | ||||||||||||||||||||||||
485 | pname = never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
486 | ((void *)0) never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
487 | ; never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
488 | else | - | ||||||||||||||||||||||||
489 | pname = ASN1_tag2str(utype); never executed: pname = ASN1_tag2str(utype); | 0 | ||||||||||||||||||||||||
490 | } else { | - | ||||||||||||||||||||||||
491 | if (pctx->flags & 0x008
| 0 | ||||||||||||||||||||||||
492 | pname = ASN1_tag2str(utype); never executed: pname = ASN1_tag2str(utype); | 0 | ||||||||||||||||||||||||
493 | else | - | ||||||||||||||||||||||||
494 | pname = never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
495 | ((void *)0) never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
496 | ; never executed: pname = ((void *)0) ; | 0 | ||||||||||||||||||||||||
497 | } | - | ||||||||||||||||||||||||
498 | - | |||||||||||||||||||||||||
499 | if (utype == 5
| 0 | ||||||||||||||||||||||||
500 | if (BIO_puts(out, "NULL\n") <= 0
| 0 | ||||||||||||||||||||||||
501 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
502 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
503 | } | - | ||||||||||||||||||||||||
504 | - | |||||||||||||||||||||||||
505 | if (pname
| 0 | ||||||||||||||||||||||||
506 | if (BIO_puts(out, pname) <= 0
| 0 | ||||||||||||||||||||||||
507 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
508 | if (BIO_puts(out, ":") <= 0
| 0 | ||||||||||||||||||||||||
509 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
510 | } never executed: end of block | 0 | ||||||||||||||||||||||||
511 | - | |||||||||||||||||||||||||
512 | switch (utype) { | - | ||||||||||||||||||||||||
513 | case never executed: 1:case 1: never executed: case 1: | 0 | ||||||||||||||||||||||||
514 | { | - | ||||||||||||||||||||||||
515 | int boolval = *(int *)fld; | - | ||||||||||||||||||||||||
516 | if (boolval == -1
| 0 | ||||||||||||||||||||||||
517 | boolval = it->size; never executed: boolval = it->size; | 0 | ||||||||||||||||||||||||
518 | ret = asn1_print_boolean_ctx(out, boolval, pctx); | - | ||||||||||||||||||||||||
519 | } | - | ||||||||||||||||||||||||
520 | break; never executed: break; | 0 | ||||||||||||||||||||||||
521 | - | |||||||||||||||||||||||||
522 | case never executed: 2:case 2: never executed: case 2: | 0 | ||||||||||||||||||||||||
523 | case never executed: 10:case 10: never executed: case 10: | 0 | ||||||||||||||||||||||||
524 | ret = asn1_print_integer_ctx(out, str, pctx); | - | ||||||||||||||||||||||||
525 | break; never executed: break; | 0 | ||||||||||||||||||||||||
526 | - | |||||||||||||||||||||||||
527 | case never executed: 23:case 23: never executed: case 23: | 0 | ||||||||||||||||||||||||
528 | ret = ASN1_UTCTIME_print(out, str); | - | ||||||||||||||||||||||||
529 | break; never executed: break; | 0 | ||||||||||||||||||||||||
530 | - | |||||||||||||||||||||||||
531 | case never executed: 24:case 24: never executed: case 24: | 0 | ||||||||||||||||||||||||
532 | ret = ASN1_GENERALIZEDTIME_print(out, str); | - | ||||||||||||||||||||||||
533 | break; never executed: break; | 0 | ||||||||||||||||||||||||
534 | - | |||||||||||||||||||||||||
535 | case never executed: 6:case 6: never executed: case 6: | 0 | ||||||||||||||||||||||||
536 | ret = asn1_print_oid_ctx(out, (const ASN1_OBJECT *)*fld, pctx); | - | ||||||||||||||||||||||||
537 | break; never executed: break; | 0 | ||||||||||||||||||||||||
538 | - | |||||||||||||||||||||||||
539 | case never executed: 4:case 4: never executed: case 4: | 0 | ||||||||||||||||||||||||
540 | case never executed: 3:case 3: never executed: case 3: | 0 | ||||||||||||||||||||||||
541 | ret = asn1_print_obstring_ctx(out, str, indent, pctx); | - | ||||||||||||||||||||||||
542 | needlf = 0; | - | ||||||||||||||||||||||||
543 | break; never executed: break; | 0 | ||||||||||||||||||||||||
544 | - | |||||||||||||||||||||||||
545 | case never executed: 16:case 16: never executed: case 16: | 0 | ||||||||||||||||||||||||
546 | case never executed: 17:case 17: never executed: case 17: | 0 | ||||||||||||||||||||||||
547 | case never executed: -3:case -3: never executed: case -3: | 0 | ||||||||||||||||||||||||
548 | if (BIO_puts(out, "\n") <= 0
| 0 | ||||||||||||||||||||||||
549 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
550 | if (ASN1_parse_dump(out, str->data, str->length,
| 0 | ||||||||||||||||||||||||
551 | indent, 0) <= 0
| 0 | ||||||||||||||||||||||||
552 | ret = 0; never executed: ret = 0; | 0 | ||||||||||||||||||||||||
553 | needlf = 0; | - | ||||||||||||||||||||||||
554 | break; never executed: break; | 0 | ||||||||||||||||||||||||
555 | - | |||||||||||||||||||||||||
556 | default never executed: :default: never executed: default: | 0 | ||||||||||||||||||||||||
557 | ret = ASN1_STRING_print_ex(out, str, pctx->str_flags); | - | ||||||||||||||||||||||||
558 | } never executed: end of block | 0 | ||||||||||||||||||||||||
559 | if (!ret
| 0 | ||||||||||||||||||||||||
560 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
561 | if (needlf
| 0 | ||||||||||||||||||||||||
562 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
563 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||||||||||||||
564 | } | - | ||||||||||||||||||||||||
Switch to Source code | Preprocessed file |