Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/x509v3/v3_info.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | static struct stack_st_CONF_VALUE *i2v_AUTHORITY_INFO_ACCESS( | - | ||||||||||||
4 | X509V3_EXT_METHOD *method, AUTHORITY_INFO_ACCESS *ainfo, | - | ||||||||||||
5 | struct stack_st_CONF_VALUE *ret); | - | ||||||||||||
6 | static AUTHORITY_INFO_ACCESS *v2i_AUTHORITY_INFO_ACCESS( | - | ||||||||||||
7 | X509V3_EXT_METHOD *method, X509V3_CTX *ctx, struct stack_st_CONF_VALUE *nval); | - | ||||||||||||
8 | - | |||||||||||||
9 | const X509V3_EXT_METHOD v3_info = { | - | ||||||||||||
10 | .ext_nid = 177, | - | ||||||||||||
11 | .ext_flags = 0x4, | - | ||||||||||||
12 | .it = &AUTHORITY_INFO_ACCESS_it, | - | ||||||||||||
13 | .ext_new = | - | ||||||||||||
14 | ((void *)0) | - | ||||||||||||
15 | , | - | ||||||||||||
16 | .ext_free = | - | ||||||||||||
17 | ((void *)0) | - | ||||||||||||
18 | , | - | ||||||||||||
19 | .d2i = | - | ||||||||||||
20 | ((void *)0) | - | ||||||||||||
21 | , | - | ||||||||||||
22 | .i2d = | - | ||||||||||||
23 | ((void *)0) | - | ||||||||||||
24 | , | - | ||||||||||||
25 | .i2s = | - | ||||||||||||
26 | ((void *)0) | - | ||||||||||||
27 | , | - | ||||||||||||
28 | .s2i = | - | ||||||||||||
29 | ((void *)0) | - | ||||||||||||
30 | , | - | ||||||||||||
31 | .i2v = (X509V3_EXT_I2V)i2v_AUTHORITY_INFO_ACCESS, | - | ||||||||||||
32 | .v2i = (X509V3_EXT_V2I)v2i_AUTHORITY_INFO_ACCESS, | - | ||||||||||||
33 | .i2r = | - | ||||||||||||
34 | ((void *)0) | - | ||||||||||||
35 | , | - | ||||||||||||
36 | .r2i = | - | ||||||||||||
37 | ((void *)0) | - | ||||||||||||
38 | , | - | ||||||||||||
39 | .usr_data = | - | ||||||||||||
40 | ((void *)0) | - | ||||||||||||
41 | , | - | ||||||||||||
42 | }; | - | ||||||||||||
43 | - | |||||||||||||
44 | const X509V3_EXT_METHOD v3_sinfo = { | - | ||||||||||||
45 | .ext_nid = 398, | - | ||||||||||||
46 | .ext_flags = 0x4, | - | ||||||||||||
47 | .it = &AUTHORITY_INFO_ACCESS_it, | - | ||||||||||||
48 | .ext_new = | - | ||||||||||||
49 | ((void *)0) | - | ||||||||||||
50 | , | - | ||||||||||||
51 | .ext_free = | - | ||||||||||||
52 | ((void *)0) | - | ||||||||||||
53 | , | - | ||||||||||||
54 | .d2i = | - | ||||||||||||
55 | ((void *)0) | - | ||||||||||||
56 | , | - | ||||||||||||
57 | .i2d = | - | ||||||||||||
58 | ((void *)0) | - | ||||||||||||
59 | , | - | ||||||||||||
60 | .i2s = | - | ||||||||||||
61 | ((void *)0) | - | ||||||||||||
62 | , | - | ||||||||||||
63 | .s2i = | - | ||||||||||||
64 | ((void *)0) | - | ||||||||||||
65 | , | - | ||||||||||||
66 | .i2v = (X509V3_EXT_I2V)i2v_AUTHORITY_INFO_ACCESS, | - | ||||||||||||
67 | .v2i = (X509V3_EXT_V2I)v2i_AUTHORITY_INFO_ACCESS, | - | ||||||||||||
68 | .i2r = | - | ||||||||||||
69 | ((void *)0) | - | ||||||||||||
70 | , | - | ||||||||||||
71 | .r2i = | - | ||||||||||||
72 | ((void *)0) | - | ||||||||||||
73 | , | - | ||||||||||||
74 | .usr_data = | - | ||||||||||||
75 | ((void *)0) | - | ||||||||||||
76 | , | - | ||||||||||||
77 | }; | - | ||||||||||||
78 | - | |||||||||||||
79 | static const ASN1_TEMPLATE ACCESS_DESCRIPTION_seq_tt[] = { | - | ||||||||||||
80 | { | - | ||||||||||||
81 | .flags = 0, | - | ||||||||||||
82 | .tag = 0, | - | ||||||||||||
83 | .offset = | - | ||||||||||||
84 | __builtin_offsetof ( | - | ||||||||||||
85 | ACCESS_DESCRIPTION | - | ||||||||||||
86 | , | - | ||||||||||||
87 | method | - | ||||||||||||
88 | ) | - | ||||||||||||
89 | , | - | ||||||||||||
90 | .field_name = "method", | - | ||||||||||||
91 | .item = &ASN1_OBJECT_it, | - | ||||||||||||
92 | }, | - | ||||||||||||
93 | { | - | ||||||||||||
94 | .flags = 0, | - | ||||||||||||
95 | .tag = 0, | - | ||||||||||||
96 | .offset = | - | ||||||||||||
97 | __builtin_offsetof ( | - | ||||||||||||
98 | ACCESS_DESCRIPTION | - | ||||||||||||
99 | , | - | ||||||||||||
100 | location | - | ||||||||||||
101 | ) | - | ||||||||||||
102 | , | - | ||||||||||||
103 | .field_name = "location", | - | ||||||||||||
104 | .item = &GENERAL_NAME_it, | - | ||||||||||||
105 | }, | - | ||||||||||||
106 | }; | - | ||||||||||||
107 | - | |||||||||||||
108 | const ASN1_ITEM ACCESS_DESCRIPTION_it = { | - | ||||||||||||
109 | .itype = 0x1, | - | ||||||||||||
110 | .utype = 16, | - | ||||||||||||
111 | .templates = ACCESS_DESCRIPTION_seq_tt, | - | ||||||||||||
112 | .tcount = sizeof(ACCESS_DESCRIPTION_seq_tt) / sizeof(ASN1_TEMPLATE), | - | ||||||||||||
113 | .funcs = | - | ||||||||||||
114 | ((void *)0) | - | ||||||||||||
115 | , | - | ||||||||||||
116 | .size = sizeof(ACCESS_DESCRIPTION), | - | ||||||||||||
117 | .sname = "ACCESS_DESCRIPTION", | - | ||||||||||||
118 | }; | - | ||||||||||||
119 | - | |||||||||||||
120 | - | |||||||||||||
121 | ACCESS_DESCRIPTION * | - | ||||||||||||
122 | d2i_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION **a, const unsigned char **in, long len) | - | ||||||||||||
123 | { | - | ||||||||||||
124 | return never executed: (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &ACCESS_DESCRIPTION_it); never executed: return (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &ACCESS_DESCRIPTION_it); | 0 | ||||||||||||
125 | &ACCESS_DESCRIPTION_it); never executed: return (ACCESS_DESCRIPTION *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &ACCESS_DESCRIPTION_it); | 0 | ||||||||||||
126 | } | - | ||||||||||||
127 | - | |||||||||||||
128 | int | - | ||||||||||||
129 | i2d_ACCESS_DESCRIPTION(ACCESS_DESCRIPTION *a, unsigned char **out) | - | ||||||||||||
130 | { | - | ||||||||||||
131 | return never executed: ASN1_item_i2d((ASN1_VALUE *)a, out, &ACCESS_DESCRIPTION_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &ACCESS_DESCRIPTION_it); never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &ACCESS_DESCRIPTION_it); | 0 | ||||||||||||
132 | } | - | ||||||||||||
133 | - | |||||||||||||
134 | ACCESS_DESCRIPTION * | - | ||||||||||||
135 | ACCESS_DESCRIPTION_new(void) | - | ||||||||||||
136 | { | - | ||||||||||||
137 | return never executed: (ACCESS_DESCRIPTION *)ASN1_item_new(&ACCESS_DESCRIPTION_it);return (ACCESS_DESCRIPTION *)ASN1_item_new(&ACCESS_DESCRIPTION_it); never executed: return (ACCESS_DESCRIPTION *)ASN1_item_new(&ACCESS_DESCRIPTION_it); | 0 | ||||||||||||
138 | } | - | ||||||||||||
139 | - | |||||||||||||
140 | void | - | ||||||||||||
141 | ACCESS_DESCRIPTION_free(ACCESS_DESCRIPTION *a) | - | ||||||||||||
142 | { | - | ||||||||||||
143 | ASN1_item_free((ASN1_VALUE *)a, &ACCESS_DESCRIPTION_it); | - | ||||||||||||
144 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||
145 | - | |||||||||||||
146 | static const ASN1_TEMPLATE AUTHORITY_INFO_ACCESS_item_tt = { | - | ||||||||||||
147 | .flags = (0x2 << 1), | - | ||||||||||||
148 | .tag = 0, | - | ||||||||||||
149 | .offset = 0, | - | ||||||||||||
150 | .field_name = "GeneralNames", | - | ||||||||||||
151 | .item = &ACCESS_DESCRIPTION_it, | - | ||||||||||||
152 | }; | - | ||||||||||||
153 | - | |||||||||||||
154 | const ASN1_ITEM AUTHORITY_INFO_ACCESS_it = { | - | ||||||||||||
155 | .itype = 0x0, | - | ||||||||||||
156 | .utype = -1, | - | ||||||||||||
157 | .templates = &AUTHORITY_INFO_ACCESS_item_tt, | - | ||||||||||||
158 | .tcount = 0, | - | ||||||||||||
159 | .funcs = | - | ||||||||||||
160 | ((void *)0) | - | ||||||||||||
161 | , | - | ||||||||||||
162 | .size = 0, | - | ||||||||||||
163 | .sname = "AUTHORITY_INFO_ACCESS", | - | ||||||||||||
164 | }; | - | ||||||||||||
165 | - | |||||||||||||
166 | - | |||||||||||||
167 | AUTHORITY_INFO_ACCESS * | - | ||||||||||||
168 | d2i_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS **a, const unsigned char **in, long len) | - | ||||||||||||
169 | { | - | ||||||||||||
170 | return never executed: (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,return (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &AUTHORITY_INFO_ACCESS_it); never executed: return (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &AUTHORITY_INFO_ACCESS_it); | 0 | ||||||||||||
171 | &AUTHORITY_INFO_ACCESS_it); never executed: return (AUTHORITY_INFO_ACCESS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, &AUTHORITY_INFO_ACCESS_it); | 0 | ||||||||||||
172 | } | - | ||||||||||||
173 | - | |||||||||||||
174 | int | - | ||||||||||||
175 | i2d_AUTHORITY_INFO_ACCESS(AUTHORITY_INFO_ACCESS *a, unsigned char **out) | - | ||||||||||||
176 | { | - | ||||||||||||
177 | return never executed: ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_INFO_ACCESS_it);return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_INFO_ACCESS_it); never executed: return ASN1_item_i2d((ASN1_VALUE *)a, out, &AUTHORITY_INFO_ACCESS_it); | 0 | ||||||||||||
178 | } | - | ||||||||||||
179 | - | |||||||||||||
180 | AUTHORITY_INFO_ACCESS * | - | ||||||||||||
181 | AUTHORITY_INFO_ACCESS_new(void) | - | ||||||||||||
182 | { | - | ||||||||||||
183 | return never executed: (AUTHORITY_INFO_ACCESS *)ASN1_item_new(&AUTHORITY_INFO_ACCESS_it);return (AUTHORITY_INFO_ACCESS *)ASN1_item_new(&AUTHORITY_INFO_ACCESS_it); never executed: return (AUTHORITY_INFO_ACCESS *)ASN1_item_new(&AUTHORITY_INFO_ACCESS_it); | 0 | ||||||||||||
184 | } | - | ||||||||||||
185 | - | |||||||||||||
186 | void | - | ||||||||||||
187 | AUTHORITY_INFO_ACCESS_free(AUTHORITY_INFO_ACCESS *a) | - | ||||||||||||
188 | { | - | ||||||||||||
189 | ASN1_item_free((ASN1_VALUE *)a, &AUTHORITY_INFO_ACCESS_it); | - | ||||||||||||
190 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||
191 | - | |||||||||||||
192 | static struct stack_st_CONF_VALUE * | - | ||||||||||||
193 | i2v_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method, | - | ||||||||||||
194 | AUTHORITY_INFO_ACCESS *ainfo, struct stack_st_CONF_VALUE *ret) | - | ||||||||||||
195 | { | - | ||||||||||||
196 | ACCESS_DESCRIPTION *desc; | - | ||||||||||||
197 | int i, nlen; | - | ||||||||||||
198 | char objtmp[80], *ntmp; | - | ||||||||||||
199 | CONF_VALUE *vtmp; | - | ||||||||||||
200 | - | |||||||||||||
201 | for (i = 0; i < sk_num(((_STACK*) (1 ? (ainfo) : (struct stack_st_ACCESS_DESCRIPTION*)0)))
| 0 | ||||||||||||
202 | desc = ((ACCESS_DESCRIPTION *)sk_value(((_STACK*) (1 ? (ainfo) : (struct stack_st_ACCESS_DESCRIPTION*)0)), (i))); | - | ||||||||||||
203 | ret = i2v_GENERAL_NAME(method, desc->location, ret); | - | ||||||||||||
204 | if (!ret
| 0 | ||||||||||||
205 | break; never executed: break; | 0 | ||||||||||||
206 | vtmp = ((CONF_VALUE *)sk_value(((_STACK*) (1 ? (ret) : (struct stack_st_CONF_VALUE*)0)), (i))); | - | ||||||||||||
207 | i2t_ASN1_OBJECT(objtmp, sizeof objtmp, desc->method); | - | ||||||||||||
208 | nlen = strlen(objtmp) + strlen(vtmp->name) + 5; | - | ||||||||||||
209 | ntmp = malloc(nlen); | - | ||||||||||||
210 | if (!ntmp
| 0 | ||||||||||||
211 | ERR_put_error(34,(0xfff),((1|64)),__FILE__,224); | - | ||||||||||||
212 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
213 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
214 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
215 | } | - | ||||||||||||
216 | strlcpy(ntmp, objtmp, nlen); | - | ||||||||||||
217 | strlcat(ntmp, " - ", nlen); | - | ||||||||||||
218 | strlcat(ntmp, vtmp->name, nlen); | - | ||||||||||||
219 | free(vtmp->name); | - | ||||||||||||
220 | vtmp->name = ntmp; | - | ||||||||||||
221 | - | |||||||||||||
222 | } never executed: end of block | 0 | ||||||||||||
223 | if (!ret
| 0 | ||||||||||||
224 | return never executed: ((struct stack_st_CONF_VALUE *)sk_new_null());return ((struct stack_st_CONF_VALUE *)sk_new_null()); never executed: return ((struct stack_st_CONF_VALUE *)sk_new_null()); | 0 | ||||||||||||
225 | return never executed: ret;return ret; never executed: return ret; | 0 | ||||||||||||
226 | } | - | ||||||||||||
227 | - | |||||||||||||
228 | static AUTHORITY_INFO_ACCESS * | - | ||||||||||||
229 | v2i_AUTHORITY_INFO_ACCESS(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, | - | ||||||||||||
230 | struct stack_st_CONF_VALUE *nval) | - | ||||||||||||
231 | { | - | ||||||||||||
232 | AUTHORITY_INFO_ACCESS *ainfo = | - | ||||||||||||
233 | ((void *)0) | - | ||||||||||||
234 | ; | - | ||||||||||||
235 | CONF_VALUE *cnf, ctmp; | - | ||||||||||||
236 | ACCESS_DESCRIPTION *acc; | - | ||||||||||||
237 | int i, objlen; | - | ||||||||||||
238 | char *objtmp, *ptmp; | - | ||||||||||||
239 | - | |||||||||||||
240 | if (!(ainfo = ((struct stack_st_ACCESS_DESCRIPTION *)sk_new_null()))
| 0 | ||||||||||||
241 | ERR_put_error(34,(0xfff),((1|64)),__FILE__,250); | - | ||||||||||||
242 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
243 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
244 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
245 | } | - | ||||||||||||
246 | for (i = 0; i < sk_num(((_STACK*) (1 ? (nval) : (struct stack_st_CONF_VALUE*)0)))
| 0 | ||||||||||||
247 | cnf = ((CONF_VALUE *)sk_value(((_STACK*) (1 ? (nval) : (struct stack_st_CONF_VALUE*)0)), (i))); | - | ||||||||||||
248 | if ((
| 0 | ||||||||||||
249 | ((void *)0)
| 0 | ||||||||||||
250 | ) { | - | ||||||||||||
251 | ERR_put_error(34,(0xfff),((1|64)),__FILE__,256); | - | ||||||||||||
252 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
253 | } | - | ||||||||||||
254 | if (sk_push(((_STACK*) (1 ? (ainfo) : (struct stack_st_ACCESS_DESCRIPTION*)0)), ((void*) (1 ? (acc) : (ACCESS_DESCRIPTION*)0))) == 0
| 0 | ||||||||||||
255 | ACCESS_DESCRIPTION_free(acc); | - | ||||||||||||
256 | ERR_put_error(34,(0xfff),((1|64)),__FILE__,261); | - | ||||||||||||
257 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
258 | } | - | ||||||||||||
259 | ptmp = | - | ||||||||||||
260 | (__extension__ (__builtin_constant_p (
| 0 | ||||||||||||
261 | ';'
| 0 | ||||||||||||
262 | )
| 0 | ||||||||||||
263 | cnf->name
| 0 | ||||||||||||
264 | )
| 0 | ||||||||||||
265 | ';'
| 0 | ||||||||||||
266 | ) == '\0'
| 0 | ||||||||||||
267 | cnf->name | - | ||||||||||||
268 | , | - | ||||||||||||
269 | ';' | - | ||||||||||||
270 | ) : __builtin_strchr ( | - | ||||||||||||
271 | cnf->name | - | ||||||||||||
272 | , | - | ||||||||||||
273 | ';' | - | ||||||||||||
274 | ))) | - | ||||||||||||
275 | ; | - | ||||||||||||
276 | if (!ptmp
| 0 | ||||||||||||
277 | ERR_put_error(34,(0xfff),(143),__FILE__,266); | - | ||||||||||||
278 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
279 | } | - | ||||||||||||
280 | objlen = ptmp - cnf->name; | - | ||||||||||||
281 | ctmp.name = ptmp + 1; | - | ||||||||||||
282 | ctmp.value = cnf->value; | - | ||||||||||||
283 | if (!v2i_GENERAL_NAME_ex(acc->location, method, ctx, &ctmp, 0)
| 0 | ||||||||||||
284 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
285 | if (!(objtmp = malloc(objlen + 1))
| 0 | ||||||||||||
286 | ERR_put_error(34,(0xfff),((1|64)),__FILE__,275); | - | ||||||||||||
287 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
288 | } | - | ||||||||||||
289 | strlcpy(objtmp, cnf->name, objlen + 1); | - | ||||||||||||
290 | acc->method = OBJ_txt2obj(objtmp, 0); | - | ||||||||||||
291 | if (!acc->method
| 0 | ||||||||||||
292 | ERR_put_error(34,(0xfff),(119),__FILE__,281); | - | ||||||||||||
293 | ERR_asprintf_error_data("value=%s", objtmp); | - | ||||||||||||
294 | free(objtmp); | - | ||||||||||||
295 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
296 | } | - | ||||||||||||
297 | free(objtmp); | - | ||||||||||||
298 | } never executed: end of block | 0 | ||||||||||||
299 | return never executed: ainfo;return ainfo; never executed: return ainfo; | 0 | ||||||||||||
300 | - | |||||||||||||
301 | err: | - | ||||||||||||
302 | sk_pop_free(((_STACK*) (1 ? (ainfo) : (struct stack_st_ACCESS_DESCRIPTION*)0)), ((void (*)(void *)) ((1 ? (ACCESS_DESCRIPTION_free) : (void (*)(ACCESS_DESCRIPTION *))0)))); | - | ||||||||||||
303 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
304 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
305 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
306 | } | - | ||||||||||||
307 | - | |||||||||||||
308 | int | - | ||||||||||||
309 | i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION* a) | - | ||||||||||||
310 | { | - | ||||||||||||
311 | i2a_ASN1_OBJECT(bp, a->method); | - | ||||||||||||
312 | return never executed: 2;return 2; never executed: return 2; | 0 | ||||||||||||
313 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |