Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/ocsp/ocsp_srv.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||
2 | - | |||||||||||||
3 | - | |||||||||||||
4 | - | |||||||||||||
5 | - | |||||||||||||
6 | - | |||||||||||||
7 | - | |||||||||||||
8 | - | |||||||||||||
9 | int | - | ||||||||||||
10 | OCSP_request_onereq_count(OCSP_REQUEST *req) | - | ||||||||||||
11 | { | - | ||||||||||||
12 | return never executed: sk_num(((_STACK*) (1 ? (req->tbsRequest->requestList) : (struct stack_st_OCSP_ONEREQ*)0)));return sk_num(((_STACK*) (1 ? (req->tbsRequest->requestList) : (struct stack_st_OCSP_ONEREQ*)0))); never executed: return sk_num(((_STACK*) (1 ? (req->tbsRequest->requestList) : (struct stack_st_OCSP_ONEREQ*)0))); | 0 | ||||||||||||
13 | } | - | ||||||||||||
14 | - | |||||||||||||
15 | OCSP_ONEREQ * | - | ||||||||||||
16 | OCSP_request_onereq_get0(OCSP_REQUEST *req, int i) | - | ||||||||||||
17 | { | - | ||||||||||||
18 | return never executed: ((OCSP_ONEREQ *)sk_value(((_STACK*) (1 ? (req->tbsRequest->requestList) : (struct stack_st_OCSP_ONEREQ*)0)), (i)));return ((OCSP_ONEREQ *)sk_value(((_STACK*) (1 ? (req->tbsRequest->requestList) : (struct stack_st_OCSP_ONEREQ*)0)), (i))); never executed: return ((OCSP_ONEREQ *)sk_value(((_STACK*) (1 ? (req->tbsRequest->requestList) : (struct stack_st_OCSP_ONEREQ*)0)), (i))); | 0 | ||||||||||||
19 | } | - | ||||||||||||
20 | - | |||||||||||||
21 | OCSP_CERTID * | - | ||||||||||||
22 | OCSP_onereq_get0_id(OCSP_ONEREQ *one) | - | ||||||||||||
23 | { | - | ||||||||||||
24 | return never executed: one->reqCert;return one->reqCert; never executed: return one->reqCert; | 0 | ||||||||||||
25 | } | - | ||||||||||||
26 | - | |||||||||||||
27 | int | - | ||||||||||||
28 | OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, | - | ||||||||||||
29 | ASN1_OCTET_STRING **pikeyHash, ASN1_INTEGER **pserial, OCSP_CERTID *cid) | - | ||||||||||||
30 | { | - | ||||||||||||
31 | if (!cid
| 0 | ||||||||||||
32 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
33 | if (pmd
| 0 | ||||||||||||
34 | * never executed: pmd = cid->hashAlgorithm->algorithm;*pmd = cid->hashAlgorithm->algorithm; never executed: *pmd = cid->hashAlgorithm->algorithm; | 0 | ||||||||||||
35 | if (piNameHash
| 0 | ||||||||||||
36 | * never executed: piNameHash = cid->issuerNameHash;*piNameHash = cid->issuerNameHash; never executed: *piNameHash = cid->issuerNameHash; | 0 | ||||||||||||
37 | if (pikeyHash
| 0 | ||||||||||||
38 | * never executed: pikeyHash = cid->issuerKeyHash;*pikeyHash = cid->issuerKeyHash; never executed: *pikeyHash = cid->issuerKeyHash; | 0 | ||||||||||||
39 | if (pserial
| 0 | ||||||||||||
40 | * never executed: pserial = cid->serialNumber;*pserial = cid->serialNumber; never executed: *pserial = cid->serialNumber; | 0 | ||||||||||||
41 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
42 | } | - | ||||||||||||
43 | - | |||||||||||||
44 | int | - | ||||||||||||
45 | OCSP_request_is_signed(OCSP_REQUEST *req) | - | ||||||||||||
46 | { | - | ||||||||||||
47 | if (req->optionalSignature
| 0 | ||||||||||||
48 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
49 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
50 | } | - | ||||||||||||
51 | - | |||||||||||||
52 | - | |||||||||||||
53 | OCSP_RESPONSE * | - | ||||||||||||
54 | OCSP_response_create(int status, OCSP_BASICRESP *bs) | - | ||||||||||||
55 | { | - | ||||||||||||
56 | OCSP_RESPONSE *rsp = | - | ||||||||||||
57 | ((void *)0) | - | ||||||||||||
58 | ; | - | ||||||||||||
59 | - | |||||||||||||
60 | if (!(rsp = OCSP_RESPONSE_new())
| 0 | ||||||||||||
61 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
62 | if (!(ASN1_ENUMERATED_set(rsp->responseStatus, status))
| 0 | ||||||||||||
63 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
64 | if (!bs
| 0 | ||||||||||||
65 | return never executed: rsp;return rsp; never executed: return rsp; | 0 | ||||||||||||
66 | if (!(rsp->responseBytes = OCSP_RESPBYTES_new())
| 0 | ||||||||||||
67 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
68 | rsp->responseBytes->responseType = OBJ_nid2obj(365); | - | ||||||||||||
69 | if (!ASN1_item_pack(bs, &OCSP_BASICRESP_it,
| 0 | ||||||||||||
70 | &rsp->responseBytes->response)
| 0 | ||||||||||||
71 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
72 | return never executed: rsp;return rsp; never executed: return rsp; | 0 | ||||||||||||
73 | - | |||||||||||||
74 | err: | - | ||||||||||||
75 | if (rsp
| 0 | ||||||||||||
76 | OCSP_RESPONSE_free(rsp); never executed: OCSP_RESPONSE_free(rsp); | 0 | ||||||||||||
77 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
78 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
79 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
80 | } | - | ||||||||||||
81 | - | |||||||||||||
82 | OCSP_SINGLERESP * | - | ||||||||||||
83 | OCSP_basic_add1_status(OCSP_BASICRESP *rsp, OCSP_CERTID *cid, int status, | - | ||||||||||||
84 | int reason, ASN1_TIME *revtime, ASN1_TIME *thisupd, ASN1_TIME *nextupd) | - | ||||||||||||
85 | { | - | ||||||||||||
86 | OCSP_SINGLERESP *single = | - | ||||||||||||
87 | ((void *)0) | - | ||||||||||||
88 | ; | - | ||||||||||||
89 | OCSP_CERTSTATUS *cs; | - | ||||||||||||
90 | OCSP_REVOKEDINFO *ri; | - | ||||||||||||
91 | - | |||||||||||||
92 | if (!rsp->tbsResponseData->responses
| 0 | ||||||||||||
93 | !(rsp->tbsResponseData->responses = ((struct stack_st_OCSP_SINGLERESP *)sk_new_null()))
| 0 | ||||||||||||
94 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
95 | - | |||||||||||||
96 | if (!(single = OCSP_SINGLERESP_new())
| 0 | ||||||||||||
97 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
98 | - | |||||||||||||
99 | if (!ASN1_TIME_to_generalizedtime(thisupd, &single->thisUpdate)
| 0 | ||||||||||||
100 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
101 | if (nextupd
| 0 | ||||||||||||
102 | !ASN1_TIME_to_generalizedtime(nextupd, &single->nextUpdate)
| 0 | ||||||||||||
103 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
104 | - | |||||||||||||
105 | OCSP_CERTID_free(single->certId); | - | ||||||||||||
106 | - | |||||||||||||
107 | if (!(single->certId = OCSP_CERTID_dup(cid))
| 0 | ||||||||||||
108 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
109 | - | |||||||||||||
110 | cs = single->certStatus; | - | ||||||||||||
111 | switch (cs->type = status) { | - | ||||||||||||
112 | case never executed: 1:case 1: never executed: case 1: | 0 | ||||||||||||
113 | if (!revtime
| 0 | ||||||||||||
114 | ERR_put_error(39,(0xfff),(109),__FILE__,171); | - | ||||||||||||
115 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
116 | } | - | ||||||||||||
117 | if (!(cs->value.revoked = ri = OCSP_REVOKEDINFO_new())
| 0 | ||||||||||||
118 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
119 | if (!ASN1_TIME_to_generalizedtime(revtime, &ri->revocationTime)
| 0 | ||||||||||||
120 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
121 | if (reason != -1
| 0 | ||||||||||||
122 | if (!(ri->revocationReason = ASN1_ENUMERATED_new())
| 0 | ||||||||||||
123 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
124 | if (!(ASN1_ENUMERATED_set(ri->revocationReason,
| 0 | ||||||||||||
125 | reason))
| 0 | ||||||||||||
126 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
127 | } never executed: end of block | 0 | ||||||||||||
128 | break; never executed: break; | 0 | ||||||||||||
129 | - | |||||||||||||
130 | case never executed: 0:case 0: never executed: case 0: | 0 | ||||||||||||
131 | cs->value.good = ASN1_NULL_new(); | - | ||||||||||||
132 | break; never executed: break; | 0 | ||||||||||||
133 | - | |||||||||||||
134 | case never executed: 2:case 2: never executed: case 2: | 0 | ||||||||||||
135 | cs->value.unknown = ASN1_NULL_new(); | - | ||||||||||||
136 | break; never executed: break; | 0 | ||||||||||||
137 | - | |||||||||||||
138 | default never executed: :default: never executed: default: | 0 | ||||||||||||
139 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
140 | } | - | ||||||||||||
141 | if (!(sk_push(((_STACK*) (1 ? (rsp->tbsResponseData->responses) : (struct stack_st_OCSP_SINGLERESP*)0)), ((void*) (1 ? (single) : (OCSP_SINGLERESP*)0))))
| 0 | ||||||||||||
142 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
143 | return never executed: single;return single; never executed: return single; | 0 | ||||||||||||
144 | - | |||||||||||||
145 | err: | - | ||||||||||||
146 | OCSP_SINGLERESP_free(single); | - | ||||||||||||
147 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||
148 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||
149 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||
150 | } | - | ||||||||||||
151 | - | |||||||||||||
152 | - | |||||||||||||
153 | int | - | ||||||||||||
154 | OCSP_basic_add1_cert(OCSP_BASICRESP *resp, X509 *cert) | - | ||||||||||||
155 | { | - | ||||||||||||
156 | if (!resp->certs
| 0 | ||||||||||||
157 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
158 | - | |||||||||||||
159 | if (!sk_push(((_STACK*) (1 ? (resp->certs) : (struct stack_st_X509*)0)), ((void*) (1 ? (cert) : (X509*)0)))
| 0 | ||||||||||||
160 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
161 | CRYPTO_add_lock(&cert->references,1,3,__FILE__,216); | - | ||||||||||||
162 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
163 | } | - | ||||||||||||
164 | - | |||||||||||||
165 | int | - | ||||||||||||
166 | OCSP_basic_sign(OCSP_BASICRESP *brsp, X509 *signer, EVP_PKEY *key, | - | ||||||||||||
167 | const EVP_MD *dgst, struct stack_st_X509 *certs, unsigned long flags) | - | ||||||||||||
168 | { | - | ||||||||||||
169 | int i; | - | ||||||||||||
170 | OCSP_RESPID *rid; | - | ||||||||||||
171 | - | |||||||||||||
172 | if (!X509_check_private_key(signer, key)
| 0 | ||||||||||||
173 | ERR_put_error(39,(0xfff),(110),__FILE__,228); | - | ||||||||||||
174 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
175 | } | - | ||||||||||||
176 | - | |||||||||||||
177 | if (!(flags & 0x1)
| 0 | ||||||||||||
178 | if (!OCSP_basic_add1_cert(brsp, signer)
| 0 | ||||||||||||
179 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
180 | for (i = 0; i < sk_num(((_STACK*) (1 ? (certs) : (struct stack_st_X509*)0)))
| 0 | ||||||||||||
181 | X509 *tmpcert = ((X509 *)sk_value(((_STACK*) (1 ? (certs) : (struct stack_st_X509*)0)), (i))); | - | ||||||||||||
182 | if (!OCSP_basic_add1_cert(brsp, tmpcert)
| 0 | ||||||||||||
183 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
184 | } never executed: end of block | 0 | ||||||||||||
185 | } never executed: end of block | 0 | ||||||||||||
186 | - | |||||||||||||
187 | rid = brsp->tbsResponseData->responderId; | - | ||||||||||||
188 | if (flags & 0x400
| 0 | ||||||||||||
189 | unsigned char md[20]; | - | ||||||||||||
190 | - | |||||||||||||
191 | X509_pubkey_digest(signer, EVP_sha1(), md, | - | ||||||||||||
192 | ((void *)0) | - | ||||||||||||
193 | ); | - | ||||||||||||
194 | if (!(rid->value.byKey = ASN1_OCTET_STRING_new())
| 0 | ||||||||||||
195 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
196 | if (!(ASN1_OCTET_STRING_set(rid->value.byKey, md,
| 0 | ||||||||||||
197 | 20))
| 0 | ||||||||||||
198 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
199 | rid->type = 1; | - | ||||||||||||
200 | } never executed: else {end of block | 0 | ||||||||||||
201 | if (!X509_NAME_set(&rid->value.byName,
| 0 | ||||||||||||
202 | X509_get_subject_name(signer))
| 0 | ||||||||||||
203 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
204 | rid->type = 0; | - | ||||||||||||
205 | } never executed: end of block | 0 | ||||||||||||
206 | - | |||||||||||||
207 | if (!(flags & 0x800)
| 0 | ||||||||||||
208 | !ASN1_GENERALIZEDTIME_set(brsp->tbsResponseData->producedAt, time(
| 0 | ||||||||||||
209 | ((void *)0)
| 0 | ||||||||||||
210 | ))
| 0 | ||||||||||||
211 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
212 | - | |||||||||||||
213 | - | |||||||||||||
214 | - | |||||||||||||
215 | - | |||||||||||||
216 | if (!ASN1_item_sign(&OCSP_RESPDATA_it,brsp->signatureAlgorithm,
| 0 | ||||||||||||
217 | ((void *)0)
| 0 | ||||||||||||
218 | , brsp->signature,brsp->tbsResponseData,key,dgst)
| 0 | ||||||||||||
219 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||
220 | - | |||||||||||||
221 | return never executed: 1;return 1; never executed: return 1; | 0 | ||||||||||||
222 | - | |||||||||||||
223 | err: | - | ||||||||||||
224 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||
225 | } | - | ||||||||||||
Switch to Source code | Preprocessed file |