OpenCoverage

x509_req.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/x509/x509_req.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7X509_REQ *-
8X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md)-
9{-
10 X509_REQ *ret;-
11 X509_REQ_INFO *ri;-
12 int i;-
13 EVP_PKEY *pktmp;-
14-
15 ret = X509_REQ_new();-
16 if (ret ==
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
17 ((void *)0)
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
18 ) {-
19 ERR_put_error(11,(0xfff),((1|64)),__FILE__,83);-
20 goto
never executed: goto err;
err;
never executed: goto err;
0
21 }-
22-
23 ri = ret->req_info;-
24-
25 if ((
(ri->version =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ri->version = ASN1_INTEGER_new()) ==
(ri->version =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
26 ((void *)0)
(ri->version =...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
27 )-
28 goto
never executed: goto err;
err;
never executed: goto err;
0
29 if (ASN1_INTEGER_set(ri->version, 0) == 0
ASN1_INTEGER_s...rsion, 0) == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
30 goto
never executed: goto err;
err;
never executed: goto err;
0
31-
32 if (!X509_REQ_set_subject_name(ret, X509_get_subject_name(x))
!X509_REQ_set_...bject_name(x))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
33 goto
never executed: goto err;
err;
never executed: goto err;
0
34-
35 if ((
(pktmp = X509_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
pktmp = X509_get_pubkey(x)) ==
(pktmp = X509_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
36 ((void *)0)
(pktmp = X509_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
37 )-
38 goto
never executed: goto err;
err;
never executed: goto err;
0
39-
40 i = X509_REQ_set_pubkey(ret, pktmp);-
41 EVP_PKEY_free(pktmp);-
42 if (!i
!iDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
43 goto
never executed: goto err;
err;
never executed: goto err;
0
44-
45 if (pkey !=
pkey != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
46 ((void *)0)
pkey != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
47 ) {-
48 if (!X509_REQ_sign(ret, pkey, md)
!X509_REQ_sign(ret, pkey, md)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
49 goto
never executed: goto err;
err;
never executed: goto err;
0
50 }
never executed: end of block
0
51 return
never executed: return (ret);
(ret);
never executed: return (ret);
0
52-
53err:-
54 X509_REQ_free(ret);-
55 return
never executed: return ( ((void *)0) );
(
never executed: return ( ((void *)0) );
0
56 ((void *)0)
never executed: return ( ((void *)0) );
0
57 );
never executed: return ( ((void *)0) );
0
58}-
59-
60EVP_PKEY *-
61X509_REQ_get_pubkey(X509_REQ *req)-
62{-
63 if ((
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
req ==
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
0-2
64 ((void *)0)
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
0-2
65 )
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
|| (
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
req->req_info ==
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
0-2
66 ((void *)0)
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
0-2
67 )
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
)
0-2
68 return
never executed: return ( ((void *)0) );
(
never executed: return ( ((void *)0) );
0
69 ((void *)0)
never executed: return ( ((void *)0) );
0
70 );
never executed: return ( ((void *)0) );
0
71 return
executed 2 times by 1 test: return (X509_PUBKEY_get(req->req_info->pubkey));
Executed by:
  • libcrypto.so.44.0.1
(X509_PUBKEY_get(req->req_info->pubkey));
executed 2 times by 1 test: return (X509_PUBKEY_get(req->req_info->pubkey));
Executed by:
  • libcrypto.so.44.0.1
2
72}-
73-
74int-
75X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k)-
76{-
77 EVP_PKEY *xk = -
78 ((void *)0)-
79 ;-
80 int ok = 0;-
81-
82 xk = X509_REQ_get_pubkey(x);-
83 switch (EVP_PKEY_cmp(xk, k)) {-
84 case
never executed: case 1:
1:
never executed: case 1:
0
85 ok = 1;-
86 break;
never executed: break;
0
87 case
never executed: case 0:
0:
never executed: case 0:
0
88 ERR_put_error(11,(0xfff),(116),__FILE__,136);-
89 break;
never executed: break;
0
90 case
never executed: case -1:
-1:
never executed: case -1:
0
91 ERR_put_error(11,(0xfff),(115),__FILE__,139);-
92 break;
never executed: break;
0
93 case
never executed: case -2:
-2:
never executed: case -2:
0
94-
95 if (k->type == 408
k->type == 408Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
96 ERR_put_error(11,(0xfff),(16),__FILE__,144);-
97 break;
never executed: break;
0
98 }-
99-
100-
101 if (k->type == 28
k->type == 28Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
102-
103 ERR_put_error(11,(0xfff),(114),__FILE__,151);-
104 break;
never executed: break;
0
105 }-
106-
107 ERR_put_error(11,(0xfff),(117),__FILE__,155);-
108 }
never executed: end of block
0
109-
110 EVP_PKEY_free(xk);-
111 return
never executed: return (ok);
(ok);
never executed: return (ok);
0
112}-
113-
114-
115-
116-
117-
118-
119static int ext_nid_list[] = {172, 171, 0};-
120-
121static int *ext_nids = ext_nid_list;-
122-
123int-
124X509_REQ_extension_nid(int req_nid)-
125{-
126 int i, nid;-
127-
128 for (i = 0; ; i++) {-
129 nid = ext_nids[i];-
130 if (nid == 0
nid == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
131 return
never executed: return 0;
0;
never executed: return 0;
0
132 else if (req_nid == nid
req_nid == nidDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
133 return
never executed: return 1;
1;
never executed: return 1;
0
134 }
never executed: end of block
0
135}
never executed: end of block
0
136-
137int *-
138X509_REQ_get_extension_nids(void)-
139{-
140 return
never executed: return ext_nids;
ext_nids;
never executed: return ext_nids;
0
141}-
142-
143void-
144X509_REQ_set_extension_nids(int *nids)-
145{-
146 ext_nids = nids;-
147}
never executed: end of block
0
148-
149struct stack_st_X509_EXTENSION *-
150X509_REQ_get_extensions(X509_REQ *req)-
151{-
152 X509_ATTRIBUTE *attr;-
153 ASN1_TYPE *ext = -
154 ((void *)0)-
155 ;-
156 int idx, *pnid;-
157 const unsigned char *p;-
158-
159 if ((
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
req ==
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
160 ((void *)0)
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
161 )
(req == ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
req->req_info ==
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
162 ((void *)0)
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
163 )
(req->req_info... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
|| !ext_nids
!ext_nidsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
164 return
never executed: return ( ((void *)0) );
(
never executed: return ( ((void *)0) );
0
165 ((void *)0)
never executed: return ( ((void *)0) );
0
166 );
never executed: return ( ((void *)0) );
0
167 for (pnid = ext_nids; *
*pnid != 0Description
TRUEnever evaluated
FALSEnever evaluated
pnid != 0
*pnid != 0Description
TRUEnever evaluated
FALSEnever evaluated
; pnid++) {
0
168 idx = X509_REQ_get_attr_by_NID(req, *pnid, -1);-
169 if (idx == -1
idx == -1Description
TRUEnever evaluated
FALSEnever evaluated
)
0
170 continue;
never executed: continue;
0
171 attr = X509_REQ_get_attr(req, idx);-
172 if (attr->single
attr->singleDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
173 ext = attr->value.single;
never executed: ext = attr->value.single;
0
174 else if (sk_num(((_STACK*) (1 ? (attr->value.set) : (struct stack_st_ASN1_TYPE*)0)))
sk_num(((_STAC...SN1_TYPE*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
175 ext = ((ASN1_TYPE *)sk_value(((_STACK*) (1 ? (attr->value.set) : (struct stack_st_ASN1_TYPE*)0)), (0)));
never executed: ext = ((ASN1_TYPE *)sk_value(((_STACK*) (1 ? (attr->value.set) : (struct stack_st_ASN1_TYPE*)0)), (0)));
0
176 break;
never executed: break;
0
177 }-
178 if (!ext
!extDescription
TRUEnever evaluated
FALSEnever evaluated
|| (
(ext->type != 16)Description
TRUEnever evaluated
FALSEnever evaluated
ext->type != 16)
(ext->type != 16)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
179 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
180 ((void *)0)
never executed: return ((void *)0) ;
0
181 ;
never executed: return ((void *)0) ;
0
182 p = ext->value.sequence->data;-
183 return
never executed: return (struct stack_st_X509_EXTENSION *)ASN1_item_d2i( ((void *)0) , &p, ext->value.sequence->length, &X509_EXTENSIONS_it);
(struct stack_st_X509_EXTENSION *)ASN1_item_d2i(
never executed: return (struct stack_st_X509_EXTENSION *)ASN1_item_d2i( ((void *)0) , &p, ext->value.sequence->length, &X509_EXTENSIONS_it);
0
184 ((void *)0)
never executed: return (struct stack_st_X509_EXTENSION *)ASN1_item_d2i( ((void *)0) , &p, ext->value.sequence->length, &X509_EXTENSIONS_it);
0
185 , &p,
never executed: return (struct stack_st_X509_EXTENSION *)ASN1_item_d2i( ((void *)0) , &p, ext->value.sequence->length, &X509_EXTENSIONS_it);
0
186 ext->value.sequence->length, &X509_EXTENSIONS_it);
never executed: return (struct stack_st_X509_EXTENSION *)ASN1_item_d2i( ((void *)0) , &p, ext->value.sequence->length, &X509_EXTENSIONS_it);
0
187}-
188-
189-
190-
191-
192-
193int-
194X509_REQ_add_extensions_nid(X509_REQ *req, struct stack_st_X509_EXTENSION *exts,-
195 int nid)-
196{-
197 ASN1_TYPE *at = -
198 ((void *)0)-
199 ;-
200 X509_ATTRIBUTE *attr = -
201 ((void *)0)-
202 ;-
203-
204 if (!(at = ASN1_TYPE_new())
!(at = ASN1_TYPE_new())Description
TRUEnever evaluated
FALSEnever evaluated
||
0
205 !(at->value.sequence = ASN1_STRING_new())
!(at->value.se..._STRING_new())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
206 goto
never executed: goto err;
err;
never executed: goto err;
0
207-
208 at->type = 16;-
209-
210 at->value.sequence->length = ASN1_item_i2d((ASN1_VALUE *)exts,-
211 &at->value.sequence->data, &X509_EXTENSIONS_it);-
212 if (!(attr = X509_ATTRIBUTE_new())
!(attr = X509_ATTRIBUTE_new())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
213 goto
never executed: goto err;
err;
never executed: goto err;
0
214 if (!(attr->value.set = ((struct stack_st_ASN1_TYPE *)sk_new_null()))
!(attr->value....k_new_null()))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
215 goto
never executed: goto err;
err;
never executed: goto err;
0
216 if (!sk_push(((_STACK*) (1 ? (attr->value.set) : (struct stack_st_ASN1_TYPE*)0)), ((void*) (1 ? (at) : (ASN1_TYPE*)0)))
!sk_push(((_ST...SN1_TYPE*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
217 goto
never executed: goto err;
err;
never executed: goto err;
0
218 at = -
219 ((void *)0)-
220 ;-
221 attr->single = 0;-
222 attr->object = OBJ_nid2obj(nid);-
223 if (!req->req_info->attributes
!req->req_info->attributesDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
224 if (!(req->req_info->attributes = ((struct stack_st_X509_ATTRIBUTE *)sk_new_null()))
!(req->req_inf...k_new_null()))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
225 goto
never executed: goto err;
err;
never executed: goto err;
0
226 }
never executed: end of block
0
227 if (!sk_push(((_STACK*) (1 ? (req->req_info->attributes) : (struct stack_st_X509_ATTRIBUTE*)0)), ((void*) (1 ? (attr) : (X509_ATTRIBUTE*)0)))
!sk_push(((_ST...TTRIBUTE*)0)))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
228 goto
never executed: goto err;
err;
never executed: goto err;
0
229 return
never executed: return 1;
1;
never executed: return 1;
0
230-
231err:-
232 X509_ATTRIBUTE_free(attr);-
233 ASN1_TYPE_free(at);-
234 return
never executed: return 0;
0;
never executed: return 0;
0
235}-
236-
237-
238int-
239X509_REQ_add_extensions(X509_REQ *req, struct stack_st_X509_EXTENSION *exts)-
240{-
241 return
never executed: return X509_REQ_add_extensions_nid(req, exts, 172);
X509_REQ_add_extensions_nid(req, exts, 172);
never executed: return X509_REQ_add_extensions_nid(req, exts, 172);
0
242}-
243-
244-
245-
246int-
247X509_REQ_get_attr_count(const X509_REQ *req)-
248{-
249 return
never executed: return X509at_get_attr_count(req->req_info->attributes);
X509at_get_attr_count(req->req_info->attributes);
never executed: return X509at_get_attr_count(req->req_info->attributes);
0
250}-
251-
252int-
253X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos)-
254{-
255 return
never executed: return X509at_get_attr_by_NID(req->req_info->attributes, nid, lastpos);
X509at_get_attr_by_NID(req->req_info->attributes, nid, lastpos);
never executed: return X509at_get_attr_by_NID(req->req_info->attributes, nid, lastpos);
0
256}-
257-
258int-
259X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj,-
260 int lastpos)-
261{-
262 return
never executed: return X509at_get_attr_by_OBJ(req->req_info->attributes, obj, lastpos);
X509at_get_attr_by_OBJ(req->req_info->attributes, obj, lastpos);
never executed: return X509at_get_attr_by_OBJ(req->req_info->attributes, obj, lastpos);
0
263}-
264-
265X509_ATTRIBUTE *-
266X509_REQ_get_attr(const X509_REQ *req, int loc)-
267{-
268 return
never executed: return X509at_get_attr(req->req_info->attributes, loc);
X509at_get_attr(req->req_info->attributes, loc);
never executed: return X509at_get_attr(req->req_info->attributes, loc);
0
269}-
270-
271X509_ATTRIBUTE *-
272X509_REQ_delete_attr(X509_REQ *req, int loc)-
273{-
274 return
never executed: return X509at_delete_attr(req->req_info->attributes, loc);
X509at_delete_attr(req->req_info->attributes, loc);
never executed: return X509at_delete_attr(req->req_info->attributes, loc);
0
275}-
276-
277int-
278X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr)-
279{-
280 if (X509at_add1_attr(&req->req_info->attributes, attr)
X509at_add1_at...ributes, attr)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
281 return
never executed: return 1;
1;
never executed: return 1;
0
282 return
never executed: return 0;
0;
never executed: return 0;
0
283}-
284-
285int-
286X509_REQ_add1_attr_by_OBJ(X509_REQ *req, const ASN1_OBJECT *obj, int type,-
287 const unsigned char *bytes, int len)-
288{-
289 if (X509at_add1_attr_by_OBJ(&req->req_info->attributes, obj,
X509at_add1_at...e, bytes, len)Description
TRUEnever evaluated
FALSEnever evaluated
0
290 type, bytes, len)
X509at_add1_at...e, bytes, len)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
291 return
never executed: return 1;
1;
never executed: return 1;
0
292 return
never executed: return 0;
0;
never executed: return 0;
0
293}-
294-
295int-
296X509_REQ_add1_attr_by_NID(X509_REQ *req, int nid, int type,-
297 const unsigned char *bytes, int len)-
298{-
299 if (X509at_add1_attr_by_NID(&req->req_info->attributes, nid,
X509at_add1_at...e, bytes, len)Description
TRUEnever evaluated
FALSEnever evaluated
0
300 type, bytes, len)
X509at_add1_at...e, bytes, len)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
301 return
never executed: return 1;
1;
never executed: return 1;
0
302 return
never executed: return 0;
0;
never executed: return 0;
0
303}-
304-
305int-
306X509_REQ_add1_attr_by_txt(X509_REQ *req, const char *attrname, int type,-
307 const unsigned char *bytes, int len)-
308{-
309 if (X509at_add1_attr_by_txt(&req->req_info->attributes, attrname,
X509at_add1_at...e, bytes, len)Description
TRUEnever evaluated
FALSEnever evaluated
0
310 type, bytes, len)
X509at_add1_at...e, bytes, len)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
311 return
never executed: return 1;
1;
never executed: return 1;
0
312 return
never executed: return 0;
0;
never executed: return 0;
0
313}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2