OpenCoverage

ts_rsp_sign.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ts/ts_rsp_sign.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5static ASN1_INTEGER *def_serial_cb(struct TS_resp_ctx *, void *);-
6static int def_time_cb(struct TS_resp_ctx *, void *, long *sec, long *usec);-
7static int def_extension_cb(struct TS_resp_ctx *, X509_EXTENSION *, void *);-
8-
9static void ts_RESP_CTX_init(TS_RESP_CTX *ctx);-
10static void ts_RESP_CTX_cleanup(TS_RESP_CTX *ctx);-
11static int ts_RESP_check_request(TS_RESP_CTX *ctx);-
12static ASN1_OBJECT *ts_RESP_get_policy(TS_RESP_CTX *ctx);-
13static TS_TST_INFO *ts_RESP_create_tst_info(TS_RESP_CTX *ctx,-
14 ASN1_OBJECT *policy);-
15static int ts_RESP_process_extensions(TS_RESP_CTX *ctx);-
16static int ts_RESP_sign(TS_RESP_CTX *ctx);-
17-
18static ESS_SIGNING_CERT *ess_SIGNING_CERT_new_init(X509 *signcert,-
19 struct stack_st_X509 *certs);-
20static ESS_CERT_ID *ess_CERT_ID_new_init(X509 *cert, int issuer_needed);-
21static int ts_TST_INFO_content_new(PKCS7 *p7);-
22static int ess_add_signing_cert(PKCS7_SIGNER_INFO *si, ESS_SIGNING_CERT *sc);-
23-
24static ESS_SIGNING_CERT_V2 *ess_signing_cert_v2_new_init(const EVP_MD *hash_alg,-
25 X509 *signcert,-
26 struct stack_st_X509-
27 *certs);-
28static ESS_CERT_ID_V2 *ess_cert_id_v2_new_init(const EVP_MD *hash_alg,-
29 X509 *cert, int issuer_needed);-
30static int ess_add_signing_cert_v2(PKCS7_SIGNER_INFO *si,-
31 ESS_SIGNING_CERT_V2 *sc);-
32-
33static ASN1_GENERALIZEDTIME-
34*TS_RESP_set_genTime_with_precision(ASN1_GENERALIZEDTIME *, long, long,-
35 unsigned);-
36-
37-
38static ASN1_INTEGER *def_serial_cb(struct TS_resp_ctx *ctx, void *data)-
39{-
40 ASN1_INTEGER *serial = ASN1_INTEGER_new();-
41-
42 if (serial ==
serial == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
43 ((void *)0)
serial == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
44 )-
45 goto
never executed: goto err;
err;
never executed: goto err;
0
46 if (!ASN1_INTEGER_set(serial, 1)
!ASN1_INTEGER_set(serial, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
47 goto
never executed: goto err;
err;
never executed: goto err;
0
48 return
never executed: return serial;
serial;
never executed: return serial;
0
49-
50 err:-
51 ERR_put_error(47,(110),((1|64)),__FILE__,63);-
52 TS_RESP_CTX_set_status_info(ctx, 2,-
53 "Error during serial number generation.");-
54 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
55 ((void *)0)
never executed: return ((void *)0) ;
0
56 ;
never executed: return ((void *)0) ;
0
57}-
58-
59-
60-
61static int def_time_cb(struct TS_resp_ctx *ctx, void *data,-
62 long *sec, long *usec)-
63{-
64 struct timeval tv;-
65 if (gettimeofday(&tv,
gettimeofday(&...id *)0) ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
66 ((void *)0)
gettimeofday(&...id *)0) ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
67 ) != 0
gettimeofday(&...id *)0) ) != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
68 ERR_put_error(47,(111),(122),__FILE__,76);-
69 TS_RESP_CTX_set_status_info(ctx, 2,-
70 "Time is not available.");-
71 TS_RESP_CTX_add_failure_info(ctx, 14);-
72 return
never executed: return 0;
0;
never executed: return 0;
0
73 }-
74 *sec = tv.tv_sec;-
75 *usec = tv.tv_usec;-
76-
77 return
never executed: return 1;
1;
never executed: return 1;
0
78}-
79static int def_extension_cb(struct TS_resp_ctx *ctx, X509_EXTENSION *ext,-
80 void *data)-
81{-
82 TS_RESP_CTX_set_status_info(ctx, 2,-
83 "Unsupported extension.");-
84 TS_RESP_CTX_add_failure_info(ctx, 16);-
85 return
never executed: return 0;
0;
never executed: return 0;
0
86}-
87-
88-
89-
90TS_RESP_CTX *TS_RESP_CTX_new(void)-
91{-
92 TS_RESP_CTX *ctx;-
93-
94 if ((
(ctx = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx = CRYPTO_zalloc(sizeof(*ctx), __FILE__, 124)) ==
(ctx = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
95 ((void *)0)
(ctx = CRYPTO_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
96 ) {-
97 ERR_put_error(47,(127),((1|64)),__FILE__,125);-
98 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
99 ((void *)0)
never executed: return ((void *)0) ;
0
100 ;
never executed: return ((void *)0) ;
0
101 }-
102-
103 ctx->signer_md = EVP_sha256();-
104-
105 ctx->serial_cb = def_serial_cb;-
106 ctx->time_cb = def_time_cb;-
107 ctx->extension_cb = def_extension_cb;-
108-
109 return
never executed: return ctx;
ctx;
never executed: return ctx;
0
110}-
111-
112void TS_RESP_CTX_free(TS_RESP_CTX *ctx)-
113{-
114 if (!ctx
!ctxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
115 return;
never executed: return;
0
116-
117 X509_free(ctx->signer_cert);-
118 EVP_PKEY_free(ctx->signer_key);-
119 sk_X509_pop_free(ctx->certs, X509_free);-
120 sk_ASN1_OBJECT_pop_free(ctx->policies, ASN1_OBJECT_free);-
121 ASN1_OBJECT_free(ctx->default_policy);-
122 sk_EVP_MD_free(ctx->mds);-
123 ASN1_INTEGER_free(ctx->seconds);-
124 ASN1_INTEGER_free(ctx->millis);-
125 ASN1_INTEGER_free(ctx->micros);-
126 CRYPTO_free(ctx, __FILE__, 152);-
127}
never executed: end of block
0
128-
129int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer)-
130{-
131 if (X509_check_purpose(signer, 9, 0) != 1
X509_check_pur...er, 9, 0) != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
132 ERR_put_error(47,(131),(117),__FILE__,159)-
133 ;-
134 return
never executed: return 0;
0;
never executed: return 0;
0
135 }-
136 X509_free(ctx->signer_cert);-
137 ctx->signer_cert = signer;-
138 X509_up_ref(ctx->signer_cert);-
139 return
never executed: return 1;
1;
never executed: return 1;
0
140}-
141-
142int TS_RESP_CTX_set_signer_key(TS_RESP_CTX *ctx, EVP_PKEY *key)-
143{-
144 EVP_PKEY_free(ctx->signer_key);-
145 ctx->signer_key = key;-
146 EVP_PKEY_up_ref(ctx->signer_key);-
147-
148 return
never executed: return 1;
1;
never executed: return 1;
0
149}-
150-
151int TS_RESP_CTX_set_signer_digest(TS_RESP_CTX *ctx, const EVP_MD *md)-
152{-
153 ctx->signer_md = md;-
154 return
never executed: return 1;
1;
never executed: return 1;
0
155}-
156-
157int TS_RESP_CTX_set_def_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *def_policy)-
158{-
159 ASN1_OBJECT_free(ctx->default_policy);-
160 if ((
(ctx->default_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->default_policy = OBJ_dup(def_policy)) ==
(ctx->default_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
161 ((void *)0)
(ctx->default_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
162 )-
163 goto
never executed: goto err;
err;
never executed: goto err;
0
164 return
never executed: return 1;
1;
never executed: return 1;
0
165 err:-
166 ERR_put_error(47,(130),((1|64)),__FILE__,190);-
167 return
never executed: return 0;
0;
never executed: return 0;
0
168}-
169-
170int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, struct stack_st_X509 *certs)-
171{-
172-
173 sk_X509_pop_free(ctx->certs, X509_free);-
174 ctx->certs = -
175 ((void *)0)-
176 ;-
177 if (!certs
!certsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
178 return
never executed: return 1;
1;
never executed: return 1;
0
179 if ((
(ctx->certs = ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->certs = X509_chain_up_ref(certs)) ==
(ctx->certs = ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
180 ((void *)0)
(ctx->certs = ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
181 ) {-
182 ERR_put_error(47,(129),((1|64)),__FILE__,202);-
183 return
never executed: return 0;
0;
never executed: return 0;
0
184 }-
185-
186 return
never executed: return 1;
1;
never executed: return 1;
0
187}-
188-
189int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy)-
190{-
191 ASN1_OBJECT *copy = -
192 ((void *)0)-
193 ;-
194-
195 if (ctx->policies ==
ctx->policies == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
196 ((void *)0)
ctx->policies == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
197 -
198 && (
(ctx->policies...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->policies = sk_ASN1_OBJECT_new_null()) ==
(ctx->policies...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
199 ((void *)0)
(ctx->policies...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
200 )-
201 goto
never executed: goto err;
err;
never executed: goto err;
0
202 if ((
(copy = OBJ_du...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
copy = OBJ_dup(policy)) ==
(copy = OBJ_du...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
203 ((void *)0)
(copy = OBJ_du...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
204 )-
205 goto
never executed: goto err;
err;
never executed: goto err;
0
206 if (!sk_ASN1_OBJECT_push(ctx->policies, copy)
!sk_ASN1_OBJEC...olicies, copy)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
207 goto
never executed: goto err;
err;
never executed: goto err;
0
208-
209 return
never executed: return 1;
1;
never executed: return 1;
0
210 err:-
211 ERR_put_error(47,(126),((1|64)),__FILE__,223);-
212 ASN1_OBJECT_free(copy);-
213 return
never executed: return 0;
0;
never executed: return 0;
0
214}-
215-
216int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md)-
217{-
218 if (ctx->mds ==
ctx->mds == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
219 ((void *)0)
ctx->mds == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
220 -
221 && (
(ctx->mds = sk...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->mds = sk_EVP_MD_new_null()) ==
(ctx->mds = sk...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
222 ((void *)0)
(ctx->mds = sk...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
223 )-
224 goto
never executed: goto err;
err;
never executed: goto err;
0
225 if (!sk_EVP_MD_push(ctx->mds, md)
!sk_EVP_MD_push(ctx->mds, md)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
226 goto
never executed: goto err;
err;
never executed: goto err;
0
227-
228 return
never executed: return 1;
1;
never executed: return 1;
0
229 err:-
230 ERR_put_error(47,(125),((1|64)),__FILE__,238);-
231 return
never executed: return 0;
0;
never executed: return 0;
0
232}-
233int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx,-
234 int secs, int millis, int micros)-
235{-
236-
237 ASN1_INTEGER_free(ctx->seconds); ctx->seconds = -
238 ((void *)0)-
239 ; ASN1_INTEGER_free(ctx->millis); ctx->millis = -
240 ((void *)0)-
241 ; ASN1_INTEGER_free(ctx->micros); ctx->micros = -
242 ((void *)0)-
243 ;;-
244 if (secs
secsDescription
TRUEnever evaluated
FALSEnever evaluated
0
245 && ((
(ctx->seconds ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->seconds = ASN1_INTEGER_new()) ==
(ctx->seconds ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
246 ((void *)0)
(ctx->seconds ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
247 -
248 || !ASN1_INTEGER_set(ctx->seconds, secs)
!ASN1_INTEGER_...seconds, secs)Description
TRUEnever evaluated
FALSEnever evaluated
))
0
249 goto
never executed: goto err;
err;
never executed: goto err;
0
250 if (millis
millisDescription
TRUEnever evaluated
FALSEnever evaluated
0
251 && ((
(ctx->millis =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->millis = ASN1_INTEGER_new()) ==
(ctx->millis =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
252 ((void *)0)
(ctx->millis =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
253 -
254 || !ASN1_INTEGER_set(ctx->millis, millis)
!ASN1_INTEGER_...illis, millis)Description
TRUEnever evaluated
FALSEnever evaluated
))
0
255 goto
never executed: goto err;
err;
never executed: goto err;
0
256 if (micros
microsDescription
TRUEnever evaluated
FALSEnever evaluated
0
257 && ((
(ctx->micros =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->micros = ASN1_INTEGER_new()) ==
(ctx->micros =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
258 ((void *)0)
(ctx->micros =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
259 -
260 || !ASN1_INTEGER_set(ctx->micros, micros)
!ASN1_INTEGER_...icros, micros)Description
TRUEnever evaluated
FALSEnever evaluated
))
0
261 goto
never executed: goto err;
err;
never executed: goto err;
0
262-
263 return
never executed: return 1;
1;
never executed: return 1;
0
264 err:-
265 ASN1_INTEGER_free(ctx->seconds); ctx->seconds = -
266 ((void *)0)-
267 ; ASN1_INTEGER_free(ctx->millis); ctx->millis = -
268 ((void *)0)-
269 ; ASN1_INTEGER_free(ctx->micros); ctx->micros = -
270 ((void *)0)-
271 ;;-
272 ERR_put_error(47,(128),((1|64)),__FILE__,271);-
273 return
never executed: return 0;
0;
never executed: return 0;
0
274}-
275-
276void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags)-
277{-
278 ctx->flags |= flags;-
279}
never executed: end of block
0
280-
281void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data)-
282{-
283 ctx->serial_cb = cb;-
284 ctx->serial_cb_data = data;-
285}
never executed: end of block
0
286-
287void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data)-
288{-
289 ctx->time_cb = cb;-
290 ctx->time_cb_data = data;-
291}
never executed: end of block
0
292-
293void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx,-
294 TS_extension_cb cb, void *data)-
295{-
296 ctx->extension_cb = cb;-
297 ctx->extension_cb_data = data;-
298}
never executed: end of block
0
299-
300int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx,-
301 int status, const char *text)-
302{-
303 TS_STATUS_INFO *si = -
304 ((void *)0)-
305 ;-
306 ASN1_UTF8STRING *utf8_text = -
307 ((void *)0)-
308 ;-
309 int ret = 0;-
310-
311 if ((
(si = TS_STATU...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
si = TS_STATUS_INFO_new()) ==
(si = TS_STATU...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
312 ((void *)0)
(si = TS_STATU...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
313 )-
314 goto
never executed: goto err;
err;
never executed: goto err;
0
315 if (!ASN1_INTEGER_set(si->status, status)
!ASN1_INTEGER_...tatus, status)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
316 goto
never executed: goto err;
err;
never executed: goto err;
0
317 if (text
textDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
318 if ((
(utf8_text = A...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
utf8_text = ASN1_UTF8STRING_new()) ==
(utf8_text = A...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
319 ((void *)0)
(utf8_text = A...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
320 -
321 || !ASN1_STRING_set(utf8_text, text, strlen(text))
!ASN1_STRING_s... strlen(text))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
322 goto
never executed: goto err;
err;
never executed: goto err;
0
323 if (si->text ==
si->text == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
324 ((void *)0)
si->text == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
325 -
326 && (
(si->text = sk...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
si->text = sk_ASN1_UTF8STRING_new_null()) ==
(si->text = sk...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
327 ((void *)0)
(si->text = sk...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
328 )-
329 goto
never executed: goto err;
err;
never executed: goto err;
0
330 if (!sk_ASN1_UTF8STRING_push(si->text, utf8_text)
!sk_ASN1_UTF8S...xt, utf8_text)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
331 goto
never executed: goto err;
err;
never executed: goto err;
0
332 utf8_text = -
333 ((void *)0)-
334 ;-
335 }
never executed: end of block
0
336 if (!TS_RESP_set_status_info(ctx->response, si)
!TS_RESP_set_s...>response, si)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
337 goto
never executed: goto err;
err;
never executed: goto err;
0
338 ret = 1;-
339 err:
code before this statement never executed: err:
0
340 if (!ret
!retDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
341 ERR_put_error(47,(132),((1|64)),__FILE__,326);
never executed: ERR_put_error(47,(132),((1|64)),__FILE__,326);
0
342 TS_STATUS_INFO_free(si);-
343 ASN1_UTF8STRING_free(utf8_text);-
344 return
never executed: return ret;
ret;
never executed: return ret;
0
345}-
346-
347int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx,-
348 int status, const char *text)-
349{-
350 int ret = 1;-
351 TS_STATUS_INFO *si = ctx->response->status_info;-
352-
353 if (ASN1_INTEGER_get(si->status) == 0
ASN1_INTEGER_g...->status) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
354 ret = TS_RESP_CTX_set_status_info(ctx, status, text);-
355 }
never executed: end of block
0
356 return
never executed: return ret;
ret;
never executed: return ret;
0
357}-
358-
359int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure)-
360{-
361 TS_STATUS_INFO *si = ctx->response->status_info;-
362 if (si->failure_info ==
si->failure_in...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
363 ((void *)0)
si->failure_in...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
364 -
365 && (
(si->failure_i...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
si->failure_info = ASN1_BIT_STRING_new()) ==
(si->failure_i...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
366 ((void *)0)
(si->failure_i...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
367 )-
368 goto
never executed: goto err;
err;
never executed: goto err;
0
369 if (!ASN1_BIT_STRING_set_bit(si->failure_info, failure, 1)
!ASN1_BIT_STRI...o, failure, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
370 goto
never executed: goto err;
err;
never executed: goto err;
0
371 return
never executed: return 1;
1;
never executed: return 1;
0
372 err:-
373 ERR_put_error(47,(124),((1|64)),__FILE__,354);-
374 return
never executed: return 0;
0;
never executed: return 0;
0
375}-
376-
377TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx)-
378{-
379 return
never executed: return ctx->request;
ctx->request;
never executed: return ctx->request;
0
380}-
381-
382TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx)-
383{-
384 return
never executed: return ctx->tst_info;
ctx->tst_info;
never executed: return ctx->tst_info;
0
385}-
386-
387int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx,-
388 unsigned precision)-
389{-
390 if (precision > 6
precision > 6Description
TRUEnever evaluated
FALSEnever evaluated
)
0
391 return
never executed: return 0;
0;
never executed: return 0;
0
392 ctx->clock_precision_digits = precision;-
393 return
never executed: return 1;
1;
never executed: return 1;
0
394}-
395-
396-
397TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio)-
398{-
399 ASN1_OBJECT *policy;-
400 TS_RESP *response;-
401 int result = 0;-
402-
403 ts_RESP_CTX_init(ctx);-
404-
405 if ((
(ctx->response...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->response = TS_RESP_new()) ==
(ctx->response...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
406 ((void *)0)
(ctx->response...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
407 ) {-
408 ERR_put_error(47,(122),((1|64)),__FILE__,387);-
409 goto
never executed: goto end;
end;
never executed: goto end;
0
410 }-
411 if ((
(ctx->request ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->request = d2i_TS_REQ_bio(req_bio,
(ctx->request ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
412 ((void *)0)
(ctx->request ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
413 )) ==
(ctx->request ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
414 ((void *)0)
(ctx->request ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
415 ) {-
416 TS_RESP_CTX_set_status_info(ctx, 2,-
417 "Bad request format or system error.");-
418 TS_RESP_CTX_add_failure_info(ctx, 5);-
419 goto
never executed: goto end;
end;
never executed: goto end;
0
420 }-
421 if (!TS_RESP_CTX_set_status_info(ctx, 0,
!TS_RESP_CTX_s... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
422 ((void *)0)
!TS_RESP_CTX_s... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
423 )
!TS_RESP_CTX_s... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
424 goto
never executed: goto end;
end;
never executed: goto end;
0
425 if (!ts_RESP_check_request(ctx)
!ts_RESP_check_request(ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
426 goto
never executed: goto end;
end;
never executed: goto end;
0
427 if ((
(policy = ts_R...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
policy = ts_RESP_get_policy(ctx)) ==
(policy = ts_R...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
428 ((void *)0)
(policy = ts_R...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
429 )-
430 goto
never executed: goto end;
end;
never executed: goto end;
0
431 if ((
(ctx->tst_info...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->tst_info = ts_RESP_create_tst_info(ctx, policy)) ==
(ctx->tst_info...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
432 ((void *)0)
(ctx->tst_info...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
433 )-
434 goto
never executed: goto end;
end;
never executed: goto end;
0
435 if (!ts_RESP_process_extensions(ctx)
!ts_RESP_proce...xtensions(ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
436 goto
never executed: goto end;
end;
never executed: goto end;
0
437 if (!ts_RESP_sign(ctx)
!ts_RESP_sign(ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
438 goto
never executed: goto end;
end;
never executed: goto end;
0
439 result = 1;-
440-
441 end:
code before this statement never executed: end:
0
442 if (!result
!resultDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
443 ERR_put_error(47,(122),(121),__FILE__,412);-
444 if (ctx->response !=
ctx->response != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
445 ((void *)0)
ctx->response != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
446 ) {-
447 if (TS_RESP_CTX_set_status_info_cond(ctx,
TS_RESP_CTX_se...ration.") == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
448 2,
TS_RESP_CTX_se...ration.") == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
449 "Error during response "
TS_RESP_CTX_se...ration.") == 0Description
TRUEnever evaluated
FALSEnever evaluated
0
450 "generation.") == 0
TS_RESP_CTX_se...ration.") == 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
451 TS_RESP_free(ctx->response);-
452 ctx->response = -
453 ((void *)0)-
454 ;-
455 }
never executed: end of block
0
456 }
never executed: end of block
0
457 }
never executed: end of block
0
458 response = ctx->response;-
459 ctx->response = -
460 ((void *)0)-
461 ;-
462 ts_RESP_CTX_cleanup(ctx);-
463 return
never executed: return response;
response;
never executed: return response;
0
464}-
465-
466-
467static void ts_RESP_CTX_init(TS_RESP_CTX *ctx)-
468{-
469 ctx->request = -
470 ((void *)0)-
471 ;-
472 ctx->response = -
473 ((void *)0)-
474 ;-
475 ctx->tst_info = -
476 ((void *)0)-
477 ;-
478}
never executed: end of block
0
479-
480-
481static void ts_RESP_CTX_cleanup(TS_RESP_CTX *ctx)-
482{-
483 TS_REQ_free(ctx->request);-
484 ctx->request = -
485 ((void *)0)-
486 ;-
487 TS_RESP_free(ctx->response);-
488 ctx->response = -
489 ((void *)0)-
490 ;-
491 TS_TST_INFO_free(ctx->tst_info);-
492 ctx->tst_info = -
493 ((void *)0)-
494 ;-
495}
never executed: end of block
0
496-
497-
498static int ts_RESP_check_request(TS_RESP_CTX *ctx)-
499{-
500 TS_REQ *request = ctx->request;-
501 TS_MSG_IMPRINT *msg_imprint;-
502 X509_ALGOR *md_alg;-
503 int md_alg_id;-
504 const ASN1_OCTET_STRING *digest;-
505 const EVP_MD *md = -
506 ((void *)0)-
507 ;-
508 int i;-
509-
510 if (TS_REQ_get_version(request) != 1
TS_REQ_get_ver...(request) != 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
511 TS_RESP_CTX_set_status_info(ctx, 2,-
512 "Bad request version.");-
513 TS_RESP_CTX_add_failure_info(ctx, 2);-
514 return
never executed: return 0;
0;
never executed: return 0;
0
515 }-
516-
517 msg_imprint = request->msg_imprint;-
518 md_alg = msg_imprint->hash_algo;-
519 md_alg_id = OBJ_obj2nid(md_alg->algorithm);-
520 for (i = 0; !md
!mdDescription
TRUEnever evaluated
FALSEnever evaluated
&& i < sk_EVP_MD_num(ctx->mds)
i < sk_EVP_MD_num(ctx->mds)Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
521 const EVP_MD *current_md = sk_EVP_MD_value(ctx->mds, i);-
522 if (md_alg_id == EVP_MD_type(current_md)
md_alg_id == E...pe(current_md)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
523 md = current_md;
never executed: md = current_md;
0
524 }
never executed: end of block
0
525 if (!md
!mdDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
526 TS_RESP_CTX_set_status_info(ctx, 2,-
527 "Message digest algorithm is "-
528 "not supported.");-
529 TS_RESP_CTX_add_failure_info(ctx, 0);-
530 return
never executed: return 0;
0;
never executed: return 0;
0
531 }-
532-
533 if (md_alg->parameter
md_alg->parameterDescription
TRUEnever evaluated
FALSEnever evaluated
&& ASN1_TYPE_get(md_alg->parameter) != 5
ASN1_TYPE_get(...arameter) != 5Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
534 TS_RESP_CTX_set_status_info(ctx, 2,-
535 "Superfluous message digest "-
536 "parameter.");-
537 TS_RESP_CTX_add_failure_info(ctx, 0);-
538 return
never executed: return 0;
0;
never executed: return 0;
0
539 }-
540 digest = msg_imprint->hashed_msg;-
541 if (digest->length != EVP_MD_size(md)
digest->length...VP_MD_size(md)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
542 TS_RESP_CTX_set_status_info(ctx, 2,-
543 "Bad message digest.");-
544 TS_RESP_CTX_add_failure_info(ctx, 5);-
545 return
never executed: return 0;
0;
never executed: return 0;
0
546 }-
547-
548 return
never executed: return 1;
1;
never executed: return 1;
0
549}-
550-
551-
552static ASN1_OBJECT *ts_RESP_get_policy(TS_RESP_CTX *ctx)-
553{-
554 ASN1_OBJECT *requested = ctx->request->policy_id;-
555 ASN1_OBJECT *policy = -
556 ((void *)0)-
557 ;-
558 int i;-
559-
560 if (ctx->default_policy ==
ctx->default_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
561 ((void *)0)
ctx->default_p...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
562 ) {-
563 ERR_put_error(47,(133),(102),__FILE__,508);-
564 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
565 ((void *)0)
never executed: return ((void *)0) ;
0
566 ;
never executed: return ((void *)0) ;
0
567 }-
568 if (!requested
!requestedDescription
TRUEnever evaluated
FALSEnever evaluated
|| !OBJ_cmp(requested, ctx->default_policy)
!OBJ_cmp(reque...efault_policy)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
569 policy = ctx->default_policy;
never executed: policy = ctx->default_policy;
0
570-
571-
572 for (i = 0; !policy
!policyDescription
TRUEnever evaluated
FALSEnever evaluated
&& i < sk_ASN1_OBJECT_num(ctx->policies)
i < sk_ASN1_OB...ctx->policies)Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
573 ASN1_OBJECT *current = sk_ASN1_OBJECT_value(ctx->policies, i);-
574 if (!OBJ_cmp(requested, current)
!OBJ_cmp(requested, current)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
575 policy = current;
never executed: policy = current;
0
576 }
never executed: end of block
0
577 if (!policy
!policyDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
578 ERR_put_error(47,(133),(125),__FILE__,521);-
579 TS_RESP_CTX_set_status_info(ctx, 2,-
580 "Requested policy is not " "supported.");-
581 TS_RESP_CTX_add_failure_info(ctx, 15);-
582 }
never executed: end of block
0
583 return
never executed: return policy;
policy;
never executed: return policy;
0
584}-
585-
586-
587static TS_TST_INFO *ts_RESP_create_tst_info(TS_RESP_CTX *ctx,-
588 ASN1_OBJECT *policy)-
589{-
590 int result = 0;-
591 TS_TST_INFO *tst_info = -
592 ((void *)0)-
593 ;-
594 ASN1_INTEGER *serial = -
595 ((void *)0)-
596 ;-
597 ASN1_GENERALIZEDTIME *asn1_time = -
598 ((void *)0)-
599 ;-
600 long sec, usec;-
601 TS_ACCURACY *accuracy = -
602 ((void *)0)-
603 ;-
604 const ASN1_INTEGER *nonce;-
605 GENERAL_NAME *tsa_name = -
606 ((void *)0)-
607 ;-
608-
609 if ((
(tst_info = TS...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
tst_info = TS_TST_INFO_new()) ==
(tst_info = TS...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
610 ((void *)0)
(tst_info = TS...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
611 )-
612 goto
never executed: goto end;
end;
never executed: goto end;
0
613 if (!TS_TST_INFO_set_version(tst_info, 1)
!TS_TST_INFO_s...n(tst_info, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
614 goto
never executed: goto end;
end;
never executed: goto end;
0
615 if (!TS_TST_INFO_set_policy_id(tst_info, policy)
!TS_TST_INFO_s..._info, policy)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
616 goto
never executed: goto end;
end;
never executed: goto end;
0
617 if (!TS_TST_INFO_set_msg_imprint(tst_info, ctx->request->msg_imprint)
!TS_TST_INFO_s...->msg_imprint)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
618 goto
never executed: goto end;
end;
never executed: goto end;
0
619 if ((
(serial = ctx-...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
serial = ctx->serial_cb(ctx, ctx->serial_cb_data)) ==
(serial = ctx-...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
620 ((void *)0)
(serial = ctx-...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
621 -
622 || !TS_TST_INFO_set_serial(tst_info, serial)
!TS_TST_INFO_s..._info, serial)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
623 goto
never executed: goto end;
end;
never executed: goto end;
0
624 if (!ctx->time_cb(ctx, ctx->time_cb_data, &sec, &usec)
!ctx->time_cb(..., &sec, &usec)Description
TRUEnever evaluated
FALSEnever evaluated
0
625 || (
(asn1_time = T...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
asn1_time =
(asn1_time = T...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
626 TS_RESP_set_genTime_with_precision(
(asn1_time = T...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
627 ((void *)0)
(asn1_time = T...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
628 , sec, usec,
(asn1_time = T...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
629 ctx->clock_precision_digits)) ==
(asn1_time = T...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
630 ((void *)0)
(asn1_time = T...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
631 -
632 || !TS_TST_INFO_set_time(tst_info, asn1_time)
!TS_TST_INFO_s...fo, asn1_time)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
633 goto
never executed: goto end;
end;
never executed: goto end;
0
634-
635 if ((ctx->seconds
ctx->secondsDescription
TRUEnever evaluated
FALSEnever evaluated
|| ctx->millis
ctx->millisDescription
TRUEnever evaluated
FALSEnever evaluated
|| ctx->micros
ctx->microsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
636 && (
(accuracy = TS...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
accuracy = TS_ACCURACY_new()) ==
(accuracy = TS...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
637 ((void *)0)
(accuracy = TS...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
638 )-
639 goto
never executed: goto end;
end;
never executed: goto end;
0
640 if (ctx->seconds
ctx->secondsDescription
TRUEnever evaluated
FALSEnever evaluated
&& !TS_ACCURACY_set_seconds(accuracy, ctx->seconds)
!TS_ACCURACY_s... ctx->seconds)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
641 goto
never executed: goto end;
end;
never executed: goto end;
0
642 if (ctx->millis
ctx->millisDescription
TRUEnever evaluated
FALSEnever evaluated
&& !TS_ACCURACY_set_millis(accuracy, ctx->millis)
!TS_ACCURACY_s..., ctx->millis)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
643 goto
never executed: goto end;
end;
never executed: goto end;
0
644 if (ctx->micros
ctx->microsDescription
TRUEnever evaluated
FALSEnever evaluated
&& !TS_ACCURACY_set_micros(accuracy, ctx->micros)
!TS_ACCURACY_s..., ctx->micros)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
645 goto
never executed: goto end;
end;
never executed: goto end;
0
646 if (accuracy
accuracyDescription
TRUEnever evaluated
FALSEnever evaluated
&& !TS_TST_INFO_set_accuracy(tst_info, accuracy)
!TS_TST_INFO_s...nfo, accuracy)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
647 goto
never executed: goto end;
end;
never executed: goto end;
0
648-
649 if ((
(ctx->flags & 0x02)Description
TRUEnever evaluated
FALSEnever evaluated
ctx->flags & 0x02)
(ctx->flags & 0x02)Description
TRUEnever evaluated
FALSEnever evaluated
0
650 && !TS_TST_INFO_set_ordering(tst_info, 1)
!TS_TST_INFO_s...g(tst_info, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
651 goto
never executed: goto end;
end;
never executed: goto end;
0
652-
653 if ((
(nonce = ctx->...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
nonce = ctx->request->nonce) !=
(nonce = ctx->...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
654 ((void *)0)
(nonce = ctx->...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
655 -
656 && !TS_TST_INFO_set_nonce(tst_info, nonce)
!TS_TST_INFO_s...t_info, nonce)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
657 goto
never executed: goto end;
end;
never executed: goto end;
0
658-
659 if (ctx->flags & 0x01
ctx->flags & 0x01Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
660 if ((
(tsa_name = GE...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
tsa_name = GENERAL_NAME_new()) ==
(tsa_name = GE...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
661 ((void *)0)
(tsa_name = GE...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
662 )-
663 goto
never executed: goto end;
end;
never executed: goto end;
0
664 tsa_name->type = 4;-
665 tsa_name->d.dirn =-
666 X509_NAME_dup(X509_get_subject_name(ctx->signer_cert));-
667 if (!tsa_name->d.dirn
!tsa_name->d.dirnDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
668 goto
never executed: goto end;
end;
never executed: goto end;
0
669 if (!TS_TST_INFO_set_tsa(tst_info, tsa_name)
!TS_TST_INFO_s...nfo, tsa_name)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
670 goto
never executed: goto end;
end;
never executed: goto end;
0
671 }
never executed: end of block
0
672-
673 result = 1;-
674 end:
code before this statement never executed: end:
0
675 if (!result
!resultDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
676 TS_TST_INFO_free(tst_info);-
677 tst_info = -
678 ((void *)0)-
679 ;-
680 ERR_put_error(47,(123),(123),__FILE__,597);-
681 TS_RESP_CTX_set_status_info_cond(ctx, 2,-
682 "Error during TSTInfo "-
683 "generation.");-
684 }
never executed: end of block
0
685 GENERAL_NAME_free(tsa_name);-
686 TS_ACCURACY_free(accuracy);-
687 ASN1_GENERALIZEDTIME_free(asn1_time);-
688 ASN1_INTEGER_free(serial);-
689-
690 return
never executed: return tst_info;
tst_info;
never executed: return tst_info;
0
691}-
692-
693-
694static int ts_RESP_process_extensions(TS_RESP_CTX *ctx)-
695{-
696 struct stack_st_X509_EXTENSION *exts = ctx->request->extensions;-
697 int i;-
698 int ok = 1;-
699-
700 for (i = 0; ok
okDescription
TRUEnever evaluated
FALSEnever evaluated
&& i < sk_X509_EXTENSION_num(exts)
i < sk_X509_EX...SION_num(exts)Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
701 X509_EXTENSION *ext = sk_X509_EXTENSION_value(exts, i);-
702-
703-
704-
705-
706-
707-
708 ok = (*ctx->extension_cb) (ctx, ext, -
709 ((void *)0)-
710 );-
711 }
never executed: end of block
0
712-
713 return
never executed: return ok;
ok;
never executed: return ok;
0
714}-
715-
716-
717static int ts_RESP_sign(TS_RESP_CTX *ctx)-
718{-
719 int ret = 0;-
720 PKCS7 *p7 = -
721 ((void *)0)-
722 ;-
723 PKCS7_SIGNER_INFO *si;-
724 struct stack_st_X509 *certs;-
725 ESS_SIGNING_CERT_V2 *sc2 = -
726 ((void *)0)-
727 ;-
728 ESS_SIGNING_CERT *sc = -
729 ((void *)0)-
730 ;-
731 ASN1_OBJECT *oid;-
732 BIO *p7bio = -
733 ((void *)0)-
734 ;-
735 int i;-
736-
737 if (!X509_check_private_key(ctx->signer_cert, ctx->signer_key)
!X509_check_pr...x->signer_key)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
738 ERR_put_error(47,(136),(120),__FILE__,645);-
739 goto
never executed: goto err;
err;
never executed: goto err;
0
740 }-
741-
742 if ((
(p7 = PKCS7_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
p7 = PKCS7_new()) ==
(p7 = PKCS7_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
743 ((void *)0)
(p7 = PKCS7_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
744 ) {-
745 ERR_put_error(47,(136),((1|64)),__FILE__,650);-
746 goto
never executed: goto err;
err;
never executed: goto err;
0
747 }-
748 if (!PKCS7_set_type(p7, 22)
!PKCS7_set_type(p7, 22)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
749 goto
never executed: goto err;
err;
never executed: goto err;
0
750 if (!ASN1_INTEGER_set(p7->d.sign->version, 3)
!ASN1_INTEGER_...n->version, 3)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
751 goto
never executed: goto err;
err;
never executed: goto err;
0
752-
753 if (ctx->request->cert_req
ctx->request->cert_reqDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
754 PKCS7_add_certificate(p7, ctx->signer_cert);-
755 if (ctx->certs
ctx->certsDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
756 for (i = 0; i < sk_X509_num(ctx->certs)
i < sk_X509_num(ctx->certs)Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
757 X509 *cert = sk_X509_value(ctx->certs, i);-
758 PKCS7_add_certificate(p7, cert);-
759 }
never executed: end of block
0
760 }
never executed: end of block
0
761 }
never executed: end of block
0
762-
763 if ((
(si = PKCS7_ad...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
si = PKCS7_add_signature(p7, ctx->signer_cert,
(si = PKCS7_ad...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
764 ctx->signer_key, ctx->signer_md)) ==
(si = PKCS7_ad...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
765 ((void *)0)
(si = PKCS7_ad...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
766 ) {-
767 ERR_put_error(47,(136),(118),__FILE__,670);-
768 goto
never executed: goto err;
err;
never executed: goto err;
0
769 }-
770-
771 oid = OBJ_nid2obj(207);-
772 if (!PKCS7_add_signed_attribute(si, 50,
!PKCS7_add_sig...i, 50, 6, oid)Description
TRUEnever evaluated
FALSEnever evaluated
0
773 6, oid)
!PKCS7_add_sig...i, 50, 6, oid)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
774 ERR_put_error(47,(136),(119),__FILE__,677);-
775 goto
never executed: goto err;
err;
never executed: goto err;
0
776 }-
777-
778 certs = ctx->flags & 0x04
ctx->flags & 0x04Description
TRUEnever evaluated
FALSEnever evaluated
? ctx->certs :
0
779 ((void *)0)-
780 ;-
781 if (ctx->ess_cert_id_digest ==
ctx->ess_cert_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
782 ((void *)0)
ctx->ess_cert_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
783 -
784 || ctx->ess_cert_id_digest == EVP_sha1()
ctx->ess_cert_... == EVP_sha1()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
785 if ((
(sc = ess_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
sc = ess_SIGNING_CERT_new_init(ctx->signer_cert, certs)) ==
(sc = ess_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
786 ((void *)0)
(sc = ess_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
787 )-
788 goto
never executed: goto err;
err;
never executed: goto err;
0
789-
790 if (!ess_add_signing_cert(si, sc)
!ess_add_signing_cert(si, sc)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
791 ERR_put_error(47,(136),(116),__FILE__,688);-
792 goto
never executed: goto err;
err;
never executed: goto err;
0
793 }-
794 }
never executed: end of block
else {
0
795 sc2 = ess_signing_cert_v2_new_init(ctx->ess_cert_id_digest,-
796 ctx->signer_cert, certs);-
797 if (sc2 ==
sc2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
798 ((void *)0)
sc2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
799 )-
800 goto
never executed: goto err;
err;
never executed: goto err;
0
801-
802 if (!ess_add_signing_cert_v2(si, sc2)
!ess_add_signi...rt_v2(si, sc2)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
803 ERR_put_error(47,(136),(139),__FILE__,698);-
804 goto
never executed: goto err;
err;
never executed: goto err;
0
805 }-
806 }
never executed: end of block
0
807-
808 if (!ts_TST_INFO_content_new(p7)
!ts_TST_INFO_content_new(p7)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
809 goto
never executed: goto err;
err;
never executed: goto err;
0
810 if ((
(p7bio = PKCS7...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
p7bio = PKCS7_dataInit(p7,
(p7bio = PKCS7...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
811 ((void *)0)
(p7bio = PKCS7...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
812 )) ==
(p7bio = PKCS7...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
813 ((void *)0)
(p7bio = PKCS7...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
814 ) {-
815 ERR_put_error(47,(136),((1|64)),__FILE__,706);-
816 goto
never executed: goto err;
err;
never executed: goto err;
0
817 }-
818 if (!i2d_TS_TST_INFO_bio(p7bio, ctx->tst_info)
!i2d_TS_TST_IN...ctx->tst_info)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
819 ERR_put_error(47,(136),(124),__FILE__,710);-
820 goto
never executed: goto err;
err;
never executed: goto err;
0
821 }-
822 if (!PKCS7_dataFinal(p7, p7bio)
!PKCS7_dataFinal(p7, p7bio)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
823 ERR_put_error(47,(136),(124),__FILE__,714);-
824 goto
never executed: goto err;
err;
never executed: goto err;
0
825 }-
826 TS_RESP_set_tst_info(ctx->response, p7, ctx->tst_info);-
827 p7 = -
828 ((void *)0)-
829 ;-
830 ctx->tst_info = -
831 ((void *)0)-
832 ;-
833-
834 ret = 1;-
835 err:
code before this statement never executed: err:
0
836 if (!ret
!retDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
837 TS_RESP_CTX_set_status_info_cond(ctx, 2,
never executed: TS_RESP_CTX_set_status_info_cond(ctx, 2, "Error during signature " "generation.");
0
838 "Error during signature "
never executed: TS_RESP_CTX_set_status_info_cond(ctx, 2, "Error during signature " "generation.");
0
839 "generation.");
never executed: TS_RESP_CTX_set_status_info_cond(ctx, 2, "Error during signature " "generation.");
0
840 BIO_free_all(p7bio);-
841 ESS_SIGNING_CERT_V2_free(sc2);-
842 ESS_SIGNING_CERT_free(sc);-
843 PKCS7_free(p7);-
844 return
never executed: return ret;
ret;
never executed: return ret;
0
845}-
846-
847static ESS_SIGNING_CERT *ess_SIGNING_CERT_new_init(X509 *signcert,-
848 struct stack_st_X509 *certs)-
849{-
850 ESS_CERT_ID *cid;-
851 ESS_SIGNING_CERT *sc = -
852 ((void *)0)-
853 ;-
854 int i;-
855-
856 if ((
(sc = ESS_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
sc = ESS_SIGNING_CERT_new()) ==
(sc = ESS_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
857 ((void *)0)
(sc = ESS_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
858 )-
859 goto
never executed: goto err;
err;
never executed: goto err;
0
860 if (sc->cert_ids ==
sc->cert_ids == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
861 ((void *)0)
sc->cert_ids == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
862 -
863 && (
(sc->cert_ids ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
sc->cert_ids = sk_ESS_CERT_ID_new_null()) ==
(sc->cert_ids ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
864 ((void *)0)
(sc->cert_ids ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
865 )-
866 goto
never executed: goto err;
err;
never executed: goto err;
0
867-
868 if ((
(cid = ess_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid = ess_CERT_ID_new_init(signcert, 0)) ==
(cid = ess_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
869 ((void *)0)
(cid = ess_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
870 -
871 || !sk_ESS_CERT_ID_push(sc->cert_ids, cid)
!sk_ESS_CERT_I...cert_ids, cid)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
872 goto
never executed: goto err;
err;
never executed: goto err;
0
873 for (i = 0; i < sk_X509_num(certs)
i < sk_X509_num(certs)Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
874 X509 *cert = sk_X509_value(certs, i);-
875 if ((
(cid = ess_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid = ess_CERT_ID_new_init(cert, 1)) ==
(cid = ess_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
876 ((void *)0)
(cid = ess_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
877 -
878 || !sk_ESS_CERT_ID_push(sc->cert_ids, cid)
!sk_ESS_CERT_I...cert_ids, cid)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
879 goto
never executed: goto err;
err;
never executed: goto err;
0
880 }
never executed: end of block
0
881-
882 return
never executed: return sc;
sc;
never executed: return sc;
0
883 err:-
884 ESS_SIGNING_CERT_free(sc);-
885 ERR_put_error(47,(114),((1|64)),__FILE__,760);-
886 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
887 ((void *)0)
never executed: return ((void *)0) ;
0
888 ;
never executed: return ((void *)0) ;
0
889}-
890-
891static ESS_CERT_ID *ess_CERT_ID_new_init(X509 *cert, int issuer_needed)-
892{-
893 ESS_CERT_ID *cid = -
894 ((void *)0)-
895 ;-
896 GENERAL_NAME *name = -
897 ((void *)0)-
898 ;-
899 unsigned char cert_sha1[20];-
900-
901-
902 X509_check_purpose(cert, -1, 0);-
903 if ((
(cid = ESS_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid = ESS_CERT_ID_new()) ==
(cid = ESS_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
904 ((void *)0)
(cid = ESS_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
905 )-
906 goto
never executed: goto err;
err;
never executed: goto err;
0
907 X509_digest(cert, EVP_sha1(), cert_sha1, -
908 ((void *)0)-
909 );-
910 if (!ASN1_OCTET_STRING_set(cid->hash, cert_sha1, 20)
!ASN1_OCTET_ST...cert_sha1, 20)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
911 goto
never executed: goto err;
err;
never executed: goto err;
0
912-
913-
914 if (issuer_needed
issuer_neededDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
915 if (cid->issuer_serial ==
cid->issuer_se...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
916 ((void *)0)
cid->issuer_se...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
917 -
918 && (
(cid->issuer_s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid->issuer_serial = ESS_ISSUER_SERIAL_new()) ==
(cid->issuer_s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
919 ((void *)0)
(cid->issuer_s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
920 )-
921 goto
never executed: goto err;
err;
never executed: goto err;
0
922 if ((
(name = GENERA...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
name = GENERAL_NAME_new()) ==
(name = GENERA...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
923 ((void *)0)
(name = GENERA...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
924 )-
925 goto
never executed: goto err;
err;
never executed: goto err;
0
926 name->type = 4;-
927 if ((
(name->d.dirn ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
name->d.dirn = X509_NAME_dup(X509_get_issuer_name(cert))) ==
(name->d.dirn ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
928 ((void *)0)
(name->d.dirn ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
929 )-
930 goto
never executed: goto err;
err;
never executed: goto err;
0
931 if (!sk_GENERAL_NAME_push(cid->issuer_serial->issuer, name)
!sk_GENERAL_NA...>issuer, name)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
932 goto
never executed: goto err;
err;
never executed: goto err;
0
933 name = -
934 ((void *)0)-
935 ;-
936 ASN1_INTEGER_free(cid->issuer_serial->serial);-
937 if (!(cid->issuer_serial->serial =
!(cid->issuer_...Number(cert)))Description
TRUEnever evaluated
FALSEnever evaluated
0
938 ASN1_INTEGER_dup(X509_get_serialNumber(cert)))
!(cid->issuer_...Number(cert)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
939 goto
never executed: goto err;
err;
never executed: goto err;
0
940 }
never executed: end of block
0
941-
942 return
never executed: return cid;
cid;
never executed: return cid;
0
943 err:-
944 GENERAL_NAME_free(name);-
945 ESS_CERT_ID_free(cid);-
946 ERR_put_error(47,(113),((1|64)),__FILE__,801);-
947 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
948 ((void *)0)
never executed: return ((void *)0) ;
0
949 ;
never executed: return ((void *)0) ;
0
950}-
951-
952static int ts_TST_INFO_content_new(PKCS7 *p7)-
953{-
954 PKCS7 *ret = -
955 ((void *)0)-
956 ;-
957 ASN1_OCTET_STRING *octet_string = -
958 ((void *)0)-
959 ;-
960-
961-
962 if ((
(ret = PKCS7_n...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret = PKCS7_new()) ==
(ret = PKCS7_n...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
963 ((void *)0)
(ret = PKCS7_n...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
964 )-
965 goto
never executed: goto err;
err;
never executed: goto err;
0
966 if ((
(ret->d.other ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret->d.other = ASN1_TYPE_new()) ==
(ret->d.other ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
967 ((void *)0)
(ret->d.other ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
968 )-
969 goto
never executed: goto err;
err;
never executed: goto err;
0
970 ret->type = OBJ_nid2obj(207);-
971 if ((
(octet_string ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
octet_string = ASN1_OCTET_STRING_new()) ==
(octet_string ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
972 ((void *)0)
(octet_string ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
973 )-
974 goto
never executed: goto err;
err;
never executed: goto err;
0
975 ASN1_TYPE_set(ret->d.other, 4, octet_string);-
976 octet_string = -
977 ((void *)0)-
978 ;-
979-
980-
981 if (!PKCS7_set_content(p7, ret)
!PKCS7_set_content(p7, ret)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
982 goto
never executed: goto err;
err;
never executed: goto err;
0
983-
984 return
never executed: return 1;
1;
never executed: return 1;
0
985 err:-
986 ASN1_OCTET_STRING_free(octet_string);-
987 PKCS7_free(ret);-
988 return
never executed: return 0;
0;
never executed: return 0;
0
989}-
990-
991static int ess_add_signing_cert(PKCS7_SIGNER_INFO *si, ESS_SIGNING_CERT *sc)-
992{-
993 ASN1_STRING *seq = -
994 ((void *)0)-
995 ;-
996 unsigned char *p, *pp = -
997 ((void *)0)-
998 ;-
999 int len;-
1000-
1001 len = i2d_ESS_SIGNING_CERT(sc, -
1002 ((void *)0)-
1003 );-
1004 if ((
(pp = CRYPTO_m...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pp = CRYPTO_malloc(len, __FILE__, 839)) ==
(pp = CRYPTO_m...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1005 ((void *)0)
(pp = CRYPTO_m...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1006 ) {-
1007 ERR_put_error(47,(112),((1|64)),__FILE__,840);-
1008 goto
never executed: goto err;
err;
never executed: goto err;
0
1009 }-
1010 p = pp;-
1011 i2d_ESS_SIGNING_CERT(sc, &p);-
1012 if ((
(seq = ASN1_ST...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
seq = ASN1_STRING_new()) ==
(seq = ASN1_ST...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1013 ((void *)0)
(seq = ASN1_ST...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1014 || !ASN1_STRING_set(seq, pp, len)
!ASN1_STRING_set(seq, pp, len)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1015 ERR_put_error(47,(112),((1|64)),__FILE__,846);-
1016 goto
never executed: goto err;
err;
never executed: goto err;
0
1017 }-
1018 CRYPTO_free(pp, __FILE__, 849);-
1019 pp = -
1020 ((void *)0)-
1021 ;-
1022 return
never executed: return PKCS7_add_signed_attribute(si, 223, 16, seq);
PKCS7_add_signed_attribute(si,
never executed: return PKCS7_add_signed_attribute(si, 223, 16, seq);
0
1023 223,
never executed: return PKCS7_add_signed_attribute(si, 223, 16, seq);
0
1024 16, seq);
never executed: return PKCS7_add_signed_attribute(si, 223, 16, seq);
0
1025 err:-
1026 ASN1_STRING_free(seq);-
1027 CRYPTO_free(pp, __FILE__, 856);-
1028-
1029 return
never executed: return 0;
0;
never executed: return 0;
0
1030}-
1031-
1032static ESS_SIGNING_CERT_V2 *ess_signing_cert_v2_new_init(const EVP_MD *hash_alg,-
1033 X509 *signcert,-
1034 struct stack_st_X509 *certs)-
1035{-
1036 ESS_CERT_ID_V2 *cid = -
1037 ((void *)0)-
1038 ;-
1039 ESS_SIGNING_CERT_V2 *sc = -
1040 ((void *)0)-
1041 ;-
1042 int i;-
1043-
1044 if ((
(sc = ESS_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
sc = ESS_SIGNING_CERT_V2_new()) ==
(sc = ESS_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1045 ((void *)0)
(sc = ESS_SIGN...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1046 )-
1047 goto
never executed: goto err;
err;
never executed: goto err;
0
1048 if ((
(cid = ess_cer...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid = ess_cert_id_v2_new_init(hash_alg, signcert, 0)) ==
(cid = ess_cer...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1049 ((void *)0)
(cid = ess_cer...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1050 )-
1051 goto
never executed: goto err;
err;
never executed: goto err;
0
1052 if (!sk_ESS_CERT_ID_V2_push(sc->cert_ids, cid)
!sk_ESS_CERT_I...cert_ids, cid)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1053 goto
never executed: goto err;
err;
never executed: goto err;
0
1054 cid = -
1055 ((void *)0)-
1056 ;-
1057-
1058 for (i = 0; i < sk_X509_num(certs)
i < sk_X509_num(certs)Description
TRUEnever evaluated
FALSEnever evaluated
; ++i) {
0
1059 X509 *cert = sk_X509_value(certs, i);-
1060-
1061 if ((
(cid = ess_cer...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid = ess_cert_id_v2_new_init(hash_alg, cert, 1)) ==
(cid = ess_cer...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1062 ((void *)0)
(cid = ess_cer...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1063 )-
1064 goto
never executed: goto err;
err;
never executed: goto err;
0
1065 if (!sk_ESS_CERT_ID_V2_push(sc->cert_ids, cid)
!sk_ESS_CERT_I...cert_ids, cid)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1066 goto
never executed: goto err;
err;
never executed: goto err;
0
1067 cid = -
1068 ((void *)0)-
1069 ;-
1070 }
never executed: end of block
0
1071-
1072 return
never executed: return sc;
sc;
never executed: return sc;
0
1073 err:-
1074 ESS_SIGNING_CERT_V2_free(sc);-
1075 ESS_CERT_ID_V2_free(cid);-
1076 ERR_put_error(47,(157),((1|64)),__FILE__,891);-
1077 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
1078 ((void *)0)
never executed: return ((void *)0) ;
0
1079 ;
never executed: return ((void *)0) ;
0
1080}-
1081-
1082static ESS_CERT_ID_V2 *ess_cert_id_v2_new_init(const EVP_MD *hash_alg,-
1083 X509 *cert, int issuer_needed)-
1084{-
1085 ESS_CERT_ID_V2 *cid = -
1086 ((void *)0)-
1087 ;-
1088 GENERAL_NAME *name = -
1089 ((void *)0)-
1090 ;-
1091 unsigned char hash[64];-
1092 unsigned int hash_len = sizeof(hash);-
1093 X509_ALGOR *alg = -
1094 ((void *)0)-
1095 ;-
1096-
1097 memset(hash, 0, sizeof(hash));-
1098-
1099 if ((
(cid = ESS_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid = ESS_CERT_ID_V2_new()) ==
(cid = ESS_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1100 ((void *)0)
(cid = ESS_CER...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1101 )-
1102 goto
never executed: goto err;
err;
never executed: goto err;
0
1103-
1104 if (hash_alg != EVP_sha256()
hash_alg != EVP_sha256()Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1105 alg = X509_ALGOR_new();-
1106 if (alg ==
alg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1107 ((void *)0)
alg == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1108 )-
1109 goto
never executed: goto err;
err;
never executed: goto err;
0
1110 X509_ALGOR_set_md(alg, hash_alg);-
1111 if (alg->algorithm ==
alg->algorithm == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1112 ((void *)0)
alg->algorithm == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1113 )-
1114 goto
never executed: goto err;
err;
never executed: goto err;
0
1115 cid->hash_alg = alg;-
1116 alg = -
1117 ((void *)0)-
1118 ;-
1119 }
never executed: end of block
else {
0
1120 cid->hash_alg = -
1121 ((void *)0)-
1122 ;-
1123 }
never executed: end of block
0
1124-
1125 if (!X509_digest(cert, hash_alg, hash, &hash_len)
!X509_digest(c...sh, &hash_len)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1126 goto
never executed: goto err;
err;
never executed: goto err;
0
1127-
1128 if (!ASN1_OCTET_STRING_set(cid->hash, hash, hash_len)
!ASN1_OCTET_ST...ash, hash_len)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1129 goto
never executed: goto err;
err;
never executed: goto err;
0
1130-
1131 if (issuer_needed
issuer_neededDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
1132 if ((
(cid->issuer_s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
cid->issuer_serial = ESS_ISSUER_SERIAL_new()) ==
(cid->issuer_s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1133 ((void *)0)
(cid->issuer_s...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1134 )-
1135 goto
never executed: goto err;
err;
never executed: goto err;
0
1136 if ((
(name = GENERA...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
name = GENERAL_NAME_new()) ==
(name = GENERA...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1137 ((void *)0)
(name = GENERA...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1138 )-
1139 goto
never executed: goto err;
err;
never executed: goto err;
0
1140 name->type = 4;-
1141 if ((
(name->d.dirn ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
name->d.dirn = X509_NAME_dup(X509_get_issuer_name(cert))) ==
(name->d.dirn ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1142 ((void *)0)
(name->d.dirn ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1143 )-
1144 goto
never executed: goto err;
err;
never executed: goto err;
0
1145 if (!sk_GENERAL_NAME_push(cid->issuer_serial->issuer, name)
!sk_GENERAL_NA...>issuer, name)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1146 goto
never executed: goto err;
err;
never executed: goto err;
0
1147 name = -
1148 ((void *)0)-
1149 ;-
1150 ASN1_INTEGER_free(cid->issuer_serial->serial);-
1151 cid->issuer_serial->serial =-
1152 ASN1_INTEGER_dup(X509_get_serialNumber(cert));-
1153 if (cid->issuer_serial->serial ==
cid->issuer_se...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1154 ((void *)0)
cid->issuer_se...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1155 )-
1156 goto
never executed: goto err;
err;
never executed: goto err;
0
1157 }
never executed: end of block
0
1158-
1159 return
never executed: return cid;
cid;
never executed: return cid;
0
1160 err:-
1161 X509_ALGOR_free(alg);-
1162 GENERAL_NAME_free(name);-
1163 ESS_CERT_ID_V2_free(cid);-
1164 ERR_put_error(47,(156),((1|64)),__FILE__,951);-
1165 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
1166 ((void *)0)
never executed: return ((void *)0) ;
0
1167 ;
never executed: return ((void *)0) ;
0
1168}-
1169-
1170static int ess_add_signing_cert_v2(PKCS7_SIGNER_INFO *si,-
1171 ESS_SIGNING_CERT_V2 *sc)-
1172{-
1173 ASN1_STRING *seq = -
1174 ((void *)0)-
1175 ;-
1176 unsigned char *p, *pp = -
1177 ((void *)0)-
1178 ;-
1179 int len = i2d_ESS_SIGNING_CERT_V2(sc, -
1180 ((void *)0)-
1181 );-
1182-
1183 if ((
(pp = CRYPTO_m...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pp = CRYPTO_malloc(len, __FILE__, 962)) ==
(pp = CRYPTO_m...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1184 ((void *)0)
(pp = CRYPTO_m...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1185 ) {-
1186 ERR_put_error(47,(147),((1|64)),__FILE__,963);-
1187 goto
never executed: goto err;
err;
never executed: goto err;
0
1188 }-
1189-
1190 p = pp;-
1191 i2d_ESS_SIGNING_CERT_V2(sc, &p);-
1192 if ((
(seq = ASN1_ST...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
seq = ASN1_STRING_new()) ==
(seq = ASN1_ST...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1193 ((void *)0)
(seq = ASN1_ST...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1194 || !ASN1_STRING_set(seq, pp, len)
!ASN1_STRING_set(seq, pp, len)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1195 ERR_put_error(47,(147),((1|64)),__FILE__,970);-
1196 goto
never executed: goto err;
err;
never executed: goto err;
0
1197 }-
1198-
1199 CRYPTO_free(pp, __FILE__, 974);-
1200 pp = -
1201 ((void *)0)-
1202 ;-
1203 return
never executed: return PKCS7_add_signed_attribute(si, 1086, 16, seq);
PKCS7_add_signed_attribute(si,
never executed: return PKCS7_add_signed_attribute(si, 1086, 16, seq);
0
1204 1086,
never executed: return PKCS7_add_signed_attribute(si, 1086, 16, seq);
0
1205 16, seq);
never executed: return PKCS7_add_signed_attribute(si, 1086, 16, seq);
0
1206 err:-
1207 ASN1_STRING_free(seq);-
1208 CRYPTO_free(pp, __FILE__, 981);-
1209 return
never executed: return 0;
0;
never executed: return 0;
0
1210}-
1211-
1212static ASN1_GENERALIZEDTIME *TS_RESP_set_genTime_with_precision(-
1213 ASN1_GENERALIZEDTIME *asn1_time, long sec, long usec,-
1214 unsigned precision)-
1215{-
1216 time_t time_sec = (time_t)sec;-
1217 struct tm *tm = -
1218 ((void *)0)-
1219 , tm_result;-
1220 char genTime_str[17 + 6];-
1221 char *p = genTime_str;-
1222 char *p_end = genTime_str + sizeof(genTime_str);-
1223-
1224 if (precision > 6
precision > 6Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1225 goto
never executed: goto err;
err;
never executed: goto err;
0
1226-
1227 if ((
(tm = OPENSSL_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
tm = OPENSSL_gmtime(&time_sec, &tm_result)) ==
(tm = OPENSSL_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1228 ((void *)0)
(tm = OPENSSL_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1229 )-
1230 goto
never executed: goto err;
err;
never executed: goto err;
0
1231 p += BIO_snprintf(p, p_end - p,-
1232 "%04d%02d%02d%02d%02d%02d",-
1233 tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,-
1234 tm->tm_hour, tm->tm_min, tm->tm_sec);-
1235 if (precision > 0
precision > 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1236 BIO_snprintf(p, 2 + precision, ".%06ld", usec);-
1237 p += strlen(p);-
1238 while (*--
*--p == '0'Description
TRUEnever evaluated
FALSEnever evaluated
p == '0'
*--p == '0'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1239 continue;
never executed: continue;
0
1240 if (*
*p != '.'Description
TRUEnever evaluated
FALSEnever evaluated
p != '.'
*p != '.'Description
TRUEnever evaluated
FALSEnever evaluated
)
0
1241 ++
never executed: ++p;
p;
never executed: ++p;
0
1242 }
never executed: end of block
0
1243 *p++ = 'Z';-
1244 *p++ = '\0';-
1245-
1246 if (asn1_time ==
asn1_time == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1247 ((void *)0)
asn1_time == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1248 -
1249 && (
(asn1_time = A...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
asn1_time = ASN1_GENERALIZEDTIME_new()) ==
(asn1_time = A...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1250 ((void *)0)
(asn1_time = A...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
1251 )-
1252 goto
never executed: goto err;
err;
never executed: goto err;
0
1253 if (!ASN1_GENERALIZEDTIME_set_string(asn1_time, genTime_str)
!ASN1_GENERALI..., genTime_str)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
1254 ASN1_GENERALIZEDTIME_free(asn1_time);-
1255 goto
never executed: goto err;
err;
never executed: goto err;
0
1256 }-
1257 return
never executed: return asn1_time;
asn1_time;
never executed: return asn1_time;
0
1258-
1259 err:-
1260 ERR_put_error(47,(134),(115),__FILE__,1049);-
1261 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
1262 ((void *)0)
never executed: return ((void *)0) ;
0
1263 ;
never executed: return ((void *)0) ;
0
1264}-
1265-
1266int TS_RESP_CTX_set_ess_cert_id_digest(TS_RESP_CTX *ctx, const EVP_MD *md)-
1267{-
1268 ctx->ess_cert_id_digest = md;-
1269 return
never executed: return 1;
1;
never executed: return 1;
0
1270}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2