OpenCoverage

dsa_lib.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/dsa/dsa_lib.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11static const DSA_METHOD *default_DSA_method = -
12 ((void *)0)-
13 ;-
14-
15void-
16DSA_set_default_method(const DSA_METHOD *meth)-
17{-
18 default_DSA_method = meth;-
19}
never executed: end of block
0
20-
21const DSA_METHOD *-
22DSA_get_default_method(void)-
23{-
24 if (!default_DSA_method
!default_DSA_methodDescription
TRUEevaluated 4 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.44.0.1
)
2-4
25 default_DSA_method = DSA_OpenSSL();
executed 4 times by 2 tests: default_DSA_method = DSA_OpenSSL();
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
4
26 return
executed 6 times by 2 tests: return default_DSA_method;
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
default_DSA_method;
executed 6 times by 2 tests: return default_DSA_method;
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
27}-
28-
29DSA *-
30DSA_new(void)-
31{-
32 return
executed 6 times by 2 tests: return DSA_new_method( ((void *)0) );
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
DSA_new_method(
executed 6 times by 2 tests: return DSA_new_method( ((void *)0) );
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
33 ((void *)0)
executed 6 times by 2 tests: return DSA_new_method( ((void *)0) );
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
34 );
executed 6 times by 2 tests: return DSA_new_method( ((void *)0) );
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
35}-
36-
37int-
38DSA_set_method(DSA *dsa, const DSA_METHOD *meth)-
39{-
40-
41-
42-
43-
44 const DSA_METHOD *mtmp;-
45 mtmp = dsa->meth;-
46 if (mtmp->finish
mtmp->finishDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
47 mtmp->finish(dsa);
never executed: mtmp->finish(dsa);
0
48-
49 ENGINE_finish(dsa->engine);-
50 dsa->engine = -
51 ((void *)0)-
52 ;-
53-
54 dsa->meth = meth;-
55 if (meth->init
meth->initDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
56 meth->init(dsa);
never executed: meth->init(dsa);
0
57 return
never executed: return 1;
1;
never executed: return 1;
0
58}-
59-
60DSA *-
61DSA_new_method(ENGINE *engine)-
62{-
63 DSA *ret;-
64-
65 ret = malloc(sizeof(DSA));-
66 if (ret ==
ret == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
0-6
67 ((void *)0)
ret == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
0-6
68 ) {-
69 ERR_put_error(10,(0xfff),((1|64)),__FILE__,127);-
70 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
71 ((void *)0)
never executed: return ((void *)0) ;
0
72 ;
never executed: return ((void *)0) ;
0
73 }-
74 ret->meth = DSA_get_default_method();-
75-
76 if (engine
engineDescription
TRUEnever evaluated
FALSEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
) {
0-6
77 if (!ENGINE_init(engine)
!ENGINE_init(engine)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
78 ERR_put_error(10,(0xfff),(38),__FILE__,134);-
79 free(ret);-
80 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
81 ((void *)0)
never executed: return ((void *)0) ;
0
82 ;
never executed: return ((void *)0) ;
0
83 }-
84 ret->engine = engine;-
85 }
never executed: end of block
else
0
86 ret->engine = ENGINE_get_default_DSA();
executed 6 times by 2 tests: ret->engine = ENGINE_get_default_DSA();
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
87 if (ret->engine
ret->engineDescription
TRUEnever evaluated
FALSEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
) {
0-6
88 ret->meth = ENGINE_get_DSA(ret->engine);-
89 if (ret->meth ==
ret->meth == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
90 ((void *)0)
ret->meth == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
91 ) {-
92 ERR_put_error(10,(0xfff),(38),__FILE__,144);-
93 ENGINE_finish(ret->engine);-
94 free(ret);-
95 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
96 ((void *)0)
never executed: return ((void *)0) ;
0
97 ;
never executed: return ((void *)0) ;
0
98 }-
99 }
never executed: end of block
0
100-
101-
102 ret->pad = 0;-
103 ret->version = 0;-
104 ret->write_params = 1;-
105 ret->p = -
106 ((void *)0)-
107 ;-
108 ret->q = -
109 ((void *)0)-
110 ;-
111 ret->g = -
112 ((void *)0)-
113 ;-
114-
115 ret->pub_key = -
116 ((void *)0)-
117 ;-
118 ret->priv_key = -
119 ((void *)0)-
120 ;-
121-
122 ret->kinv = -
123 ((void *)0)-
124 ;-
125 ret->r = -
126 ((void *)0)-
127 ;-
128 ret->method_mont_p = -
129 ((void *)0)-
130 ;-
131-
132 ret->references = 1;-
133 ret->flags = ret->meth->flags & ~0x0400;-
134 CRYPTO_new_ex_data(7, ret, &ret->ex_data);-
135 if (ret->meth->init !=
ret->meth->init != ((void *)0)Description
TRUEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
FALSEnever evaluated
0-6
136 ((void *)0)
ret->meth->init != ((void *)0)Description
TRUEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
FALSEnever evaluated
0-6
137 && !ret->meth->init(ret)
!ret->meth->init(ret)Description
TRUEnever evaluated
FALSEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
) {
0-6
138-
139 ENGINE_finish(ret->engine);-
140-
141 CRYPTO_free_ex_data(7, ret, &ret->ex_data);-
142 free(ret);-
143 ret = -
144 ((void *)0)-
145 ;-
146 }
never executed: end of block
0
147-
148 return
executed 6 times by 2 tests: return ret;
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
ret;
executed 6 times by 2 tests: return ret;
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
149}-
150-
151void-
152DSA_free(DSA *r)-
153{-
154 int i;-
155-
156 if (r ==
r == ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • freenull
FALSEevaluated 7 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
1-7
157 ((void *)0)
r == ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • freenull
FALSEevaluated 7 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
1-7
158 )-
159 return;
executed 1 time by 1 test: return;
Executed by:
  • freenull
1
160-
161 i = CRYPTO_add_lock(&r->references,-1,8,__FILE__,189);-
162 if (i > 0
i > 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • dsatest
FALSEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
)
1-6
163 return;
executed 1 time by 1 test: return;
Executed by:
  • dsatest
1
164-
165 if (r->meth->finish
r->meth->finishDescription
TRUEevaluated 6 times by 2 tests
Evaluated by:
  • dsatest
  • libcrypto.so.44.0.1
FALSEnever evaluated
)
0-6
166 r->meth->finish(r);
executed 6 times by 2 tests: r->meth->finish(r);
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
167-
168 ENGINE_finish(r->engine);-
169-
170-
171 CRYPTO_free_ex_data(7, r, &r->ex_data);-
172-
173 BN_clear_free(r->p);-
174 BN_clear_free(r->q);-
175 BN_clear_free(r->g);-
176 BN_clear_free(r->pub_key);-
177 BN_clear_free(r->priv_key);-
178 BN_clear_free(r->kinv);-
179 BN_clear_free(r->r);-
180 free(r);-
181}
executed 6 times by 2 tests: end of block
Executed by:
  • dsatest
  • libcrypto.so.44.0.1
6
182-
183int-
184DSA_up_ref(DSA *r)-
185{-
186 int i = CRYPTO_add_lock(&r->references,1,8,__FILE__,214);-
187 return
executed 1 time by 1 test: return i > 1 ? 1 : 0;
Executed by:
  • dsatest
i > 1
i > 1Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • dsatest
FALSEnever evaluated
? 1 : 0;
executed 1 time by 1 test: return i > 1 ? 1 : 0;
Executed by:
  • dsatest
0-1
188}-
189-
190int-
191DSA_size(const DSA *r)-
192{-
193 int ret, i;-
194 ASN1_INTEGER bs;-
195 unsigned char buf[4];-
196-
197-
198-
199-
200 i = BN_num_bits(r->q);-
201 bs.length = (i + 7) / 8;-
202 bs.data = buf;-
203 bs.type = 2;-
204-
205 buf[0] = 0xff;-
206-
207 i = i2d_ASN1_INTEGER(&bs, -
208 ((void *)0)-
209 );-
210 i += i;-
211 ret = ASN1_object_size(1, i, 16);-
212 return
executed 2 times by 1 test: return ret;
Executed by:
  • libcrypto.so.44.0.1
ret;
executed 2 times by 1 test: return ret;
Executed by:
  • libcrypto.so.44.0.1
2
213}-
214-
215int-
216DSA_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,-
217 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func)-
218{-
219 return
never executed: return CRYPTO_get_ex_new_index(7, argl, argp, new_func, dup_func, free_func);
CRYPTO_get_ex_new_index(7, argl, argp,
never executed: return CRYPTO_get_ex_new_index(7, argl, argp, new_func, dup_func, free_func);
0
220 new_func, dup_func, free_func);
never executed: return CRYPTO_get_ex_new_index(7, argl, argp, new_func, dup_func, free_func);
0
221}-
222-
223int-
224DSA_set_ex_data(DSA *d, int idx, void *arg)-
225{-
226 return
never executed: return CRYPTO_set_ex_data(&d->ex_data, idx, arg);
CRYPTO_set_ex_data(&d->ex_data, idx, arg);
never executed: return CRYPTO_set_ex_data(&d->ex_data, idx, arg);
0
227}-
228-
229void *-
230DSA_get_ex_data(DSA *d, int idx)-
231{-
232 return
never executed: return CRYPTO_get_ex_data(&d->ex_data, idx);
CRYPTO_get_ex_data(&d->ex_data, idx);
never executed: return CRYPTO_get_ex_data(&d->ex_data, idx);
0
233}-
234-
235-
236DH *-
237DSA_dup_DH(const DSA *r)-
238{-
239-
240-
241-
242-
243-
244 DH *ret = -
245 ((void *)0)-
246 ;-
247-
248 if (r ==
r == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
249 ((void *)0)
r == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
250 )-
251 goto
never executed: goto err;
err;
never executed: goto err;
0
252 ret = DH_new();-
253 if (ret ==
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
254 ((void *)0)
ret == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
255 )-
256 goto
never executed: goto err;
err;
never executed: goto err;
0
257 if (r->p !=
r->p != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
258 ((void *)0)
r->p != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
259 )-
260 if ((
(ret->p = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret->p = BN_dup(r->p)) ==
(ret->p = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
261 ((void *)0)
(ret->p = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
262 )-
263 goto
never executed: goto err;
err;
never executed: goto err;
0
264 if (r->q !=
r->q != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
265 ((void *)0)
r->q != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
266 ) {-
267 ret->length = BN_num_bits(r->q);-
268 if ((
(ret->q = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret->q = BN_dup(r->q)) ==
(ret->q = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
269 ((void *)0)
(ret->q = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
270 )-
271 goto
never executed: goto err;
err;
never executed: goto err;
0
272 }
never executed: end of block
0
273 if (r->g !=
r->g != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
274 ((void *)0)
r->g != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
275 )-
276 if ((
(ret->g = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret->g = BN_dup(r->g)) ==
(ret->g = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
277 ((void *)0)
(ret->g = BN_d...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
278 )-
279 goto
never executed: goto err;
err;
never executed: goto err;
0
280 if (r->pub_key !=
r->pub_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
281 ((void *)0)
r->pub_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
282 )-
283 if ((
(ret->pub_key ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret->pub_key = BN_dup(r->pub_key)) ==
(ret->pub_key ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
284 ((void *)0)
(ret->pub_key ...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
285 )-
286 goto
never executed: goto err;
err;
never executed: goto err;
0
287 if (r->priv_key !=
r->priv_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
288 ((void *)0)
r->priv_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
289 )-
290 if ((
(ret->priv_key...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ret->priv_key = BN_dup(r->priv_key)) ==
(ret->priv_key...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
291 ((void *)0)
(ret->priv_key...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
292 )-
293 goto
never executed: goto err;
err;
never executed: goto err;
0
294-
295 return
never executed: return ret;
ret;
never executed: return ret;
0
296-
297err:-
298 DH_free(ret);-
299 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
300 ((void *)0)
never executed: return ((void *)0) ;
0
301 ;
never executed: return ((void *)0) ;
0
302}-
303-
304-
305void-
306DSA_get0_pqg(const DSA *d, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)-
307{-
308 if (p !=
p != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
309 ((void *)0)
p != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
310 )-
311 *
never executed: *p = d->p;
p = d->p;
never executed: *p = d->p;
0
312 if (q !=
q != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
313 ((void *)0)
q != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
314 )-
315 *
never executed: *q = d->q;
q = d->q;
never executed: *q = d->q;
0
316 if (g !=
g != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
317 ((void *)0)
g != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
318 )-
319 *
never executed: *g = d->g;
g = d->g;
never executed: *g = d->g;
0
320}
never executed: end of block
0
321-
322int-
323DSA_set0_pqg(DSA *d, BIGNUM *p, BIGNUM *q, BIGNUM *g)-
324{-
325 if ((d->p ==
d->p == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
326 ((void *)0)
d->p == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
327 && p ==
p == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
328 ((void *)0)
p == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
329 ) || (d->q ==
d->q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
330 ((void *)0)
d->q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
331 && q ==
q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
332 ((void *)0)
q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
333 ) ||-
334 (d->g ==
d->g == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
335 ((void *)0)
d->g == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
336 && g ==
g == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
337 ((void *)0)
g == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
338 ))-
339 return
never executed: return 0;
0;
never executed: return 0;
0
340-
341 if (p !=
p != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
342 ((void *)0)
p != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
343 ) {-
344 BN_free(d->p);-
345 d->p = p;-
346 }
never executed: end of block
0
347 if (q !=
q != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
348 ((void *)0)
q != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
349 ) {-
350 BN_free(d->q);-
351 d->q = q;-
352 }
never executed: end of block
0
353 if (g !=
g != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
354 ((void *)0)
g != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
355 ) {-
356 BN_free(d->g);-
357 d->g = g;-
358 }
never executed: end of block
0
359-
360 return
never executed: return 1;
1;
never executed: return 1;
0
361}-
362-
363void-
364DSA_get0_key(const DSA *d, const BIGNUM **pub_key, const BIGNUM **priv_key)-
365{-
366 if (pub_key !=
pub_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
367 ((void *)0)
pub_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
368 )-
369 *
never executed: *pub_key = d->pub_key;
pub_key = d->pub_key;
never executed: *pub_key = d->pub_key;
0
370 if (priv_key !=
priv_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
371 ((void *)0)
priv_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
372 )-
373 *
never executed: *priv_key = d->priv_key;
priv_key = d->priv_key;
never executed: *priv_key = d->priv_key;
0
374}
never executed: end of block
0
375-
376int-
377DSA_set0_key(DSA *d, BIGNUM *pub_key, BIGNUM *priv_key)-
378{-
379 if (d->pub_key ==
d->pub_key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
380 ((void *)0)
d->pub_key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
381 && pub_key ==
pub_key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
382 ((void *)0)
pub_key == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
383 )-
384 return
never executed: return 0;
0;
never executed: return 0;
0
385-
386 if (pub_key !=
pub_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
387 ((void *)0)
pub_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
388 ) {-
389 BN_free(d->pub_key);-
390 d->pub_key = pub_key;-
391 }
never executed: end of block
0
392 if (priv_key !=
priv_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
393 ((void *)0)
priv_key != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
394 ) {-
395 BN_free(d->priv_key);-
396 d->priv_key = priv_key;-
397 }
never executed: end of block
0
398-
399 return
never executed: return 1;
1;
never executed: return 1;
0
400}-
401-
402void-
403DSA_clear_flags(DSA *d, int flags)-
404{-
405 d->flags &= ~flags;-
406}
never executed: end of block
0
407-
408int-
409DSA_test_flags(const DSA *d, int flags)-
410{-
411 return
never executed: return d->flags & flags;
d->flags & flags;
never executed: return d->flags & flags;
0
412}-
413-
414void-
415DSA_set_flags(DSA *d, int flags)-
416{-
417 d->flags |= flags;-
418}
never executed: end of block
0
419-
420ENGINE *-
421DSA_get0_engine(DSA *d)-
422{-
423 return
never executed: return d->engine;
d->engine;
never executed: return d->engine;
0
424}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2