OpenCoverage

dsa_gen.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dsa/dsa_gen.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3int DSA_generate_parameters_ex(DSA *ret, int bits,-
4 const unsigned char *seed_in, int seed_len,-
5 int *counter_ret, unsigned long *h_ret,-
6 BN_GENCB *cb)-
7{-
8 if (ret->meth->dsa_paramgen
ret->meth->dsa_paramgenDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
9 return
never executed: return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len, counter_ret, h_ret, cb);
ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len,
never executed: return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len, counter_ret, h_ret, cb);
0
10 counter_ret, h_ret, cb);
never executed: return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len, counter_ret, h_ret, cb);
0
11 else {-
12 const EVP_MD *evpmd = bits >= 2048
bits >= 2048Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
? EVP_sha256() : EVP_sha1();
0-1
13 size_t qbits = EVP_MD_size(evpmd) * 8;-
14-
15 return
executed 1 time by 1 test: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);
Executed by:
  • libcrypto.so.1.1
dsa_builtin_paramgen(ret, bits, qbits, evpmd,
executed 1 time by 1 test: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);
Executed by:
  • libcrypto.so.1.1
1
16 seed_in, seed_len,
executed 1 time by 1 test: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);
Executed by:
  • libcrypto.so.1.1
1
17 ((void *)0)
executed 1 time by 1 test: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);
Executed by:
  • libcrypto.so.1.1
1
18 , counter_ret,
executed 1 time by 1 test: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);
Executed by:
  • libcrypto.so.1.1
1
19 h_ret, cb);
executed 1 time by 1 test: return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb);
Executed by:
  • libcrypto.so.1.1
1
20 }-
21}-
22-
23int dsa_builtin_paramgen(DSA *ret, size_t bits, size_t qbits,-
24 const EVP_MD *evpmd, const unsigned char *seed_in,-
25 size_t seed_len, unsigned char *seed_out,-
26 int *counter_ret, unsigned long *h_ret, BN_GENCB *cb)-
27{-
28 int ok = 0;-
29 unsigned char seed[32];-
30 unsigned char md[32];-
31 unsigned char buf[32], buf2[32];-
32 BIGNUM *r0, *W, *X, *c, *test;-
33 BIGNUM *g = -
34 ((void *)0)-
35 , *q = -
36 ((void *)0)-
37 , *p = -
38 ((void *)0)-
39 ;-
40 BN_MONT_CTX *mont = -
41 ((void *)0)-
42 ;-
43 int i, k, n = 0, m = 0, qsize = qbits >> 3;-
44 int counter = 0;-
45 int r = 0;-
46 BN_CTX *ctx = -
47 ((void *)0)-
48 ;-
49 unsigned int h = 2;-
50-
51 if (qsize != 20
qsize != 20Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& qsize != 28
qsize != 28Description
TRUEnever evaluated
FALSEnever evaluated
&&
0-1
52 qsize != 32
qsize != 32Description
TRUEnever evaluated
FALSEnever evaluated
)
0
53-
54 return
never executed: return 0;
0;
never executed: return 0;
0
55-
56 if (evpmd ==
evpmd == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
57 ((void *)0)
evpmd == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
58 ) {-
59 if (qsize == 20
qsize == 20Description
TRUEnever evaluated
FALSEnever evaluated
)
0
60 evpmd = EVP_sha1();
never executed: evpmd = EVP_sha1();
0
61 else if (qsize == 28
qsize == 28Description
TRUEnever evaluated
FALSEnever evaluated
)
0
62 evpmd = EVP_sha224();
never executed: evpmd = EVP_sha224();
0
63 else-
64 evpmd = EVP_sha256();
never executed: evpmd = EVP_sha256();
0
65 } else {-
66 qsize = EVP_MD_size(evpmd);-
67 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
68-
69 if (bits < 512
bits < 512Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
70 bits = 512;
never executed: bits = 512;
0
71-
72 bits = (bits + 63) / 64 * 64;-
73-
74 if (seed_in !=
seed_in != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-1
75 ((void *)0)
seed_in != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-1
76 ) {-
77 if (seed_len < (size_t)qsize
seed_len < (size_t)qsizeDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-1
78 ERR_put_error(10,(125),(110),__FILE__,85);-
79 return
never executed: return 0;
0;
never executed: return 0;
0
80 }-
81 if (seed_len > (size_t)qsize
seed_len > (size_t)qsizeDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-1
82-
83 seed_len = qsize;-
84 }
never executed: end of block
0
85 memcpy(seed, seed_in, seed_len);-
86 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
87-
88 if ((
(mont = BN_MON...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
mont = BN_MONT_CTX_new()) ==
(mont = BN_MON...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
89 ((void *)0)
(mont = BN_MON...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
90 )-
91 goto
never executed: goto err;
err;
never executed: goto err;
0
92-
93 if ((
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
ctx = BN_CTX_new()) ==
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
94 ((void *)0)
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
95 )-
96 goto
never executed: goto err;
err;
never executed: goto err;
0
97-
98 BN_CTX_start(ctx);-
99-
100 r0 = BN_CTX_get(ctx);-
101 g = BN_CTX_get(ctx);-
102 W = BN_CTX_get(ctx);-
103 q = BN_CTX_get(ctx);-
104 X = BN_CTX_get(ctx);-
105 c = BN_CTX_get(ctx);-
106 p = BN_CTX_get(ctx);-
107 test = BN_CTX_get(ctx);-
108-
109 if (test ==
test == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
110 ((void *)0)
test == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
111 )-
112 goto
never executed: goto err;
err;
never executed: goto err;
0
113-
114 if (!BN_lshift(test, BN_value_one(), bits - 1)
!BN_lshift(tes...e(), bits - 1)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
115 goto
never executed: goto err;
err;
never executed: goto err;
0
116-
117 for (;;) {-
118 for (;;) {-
119 int use_random_seed = (seed_in == -
120 ((void *)0)-
121 );-
122-
123-
124 if (!BN_GENCB_call(cb, 0, m++)
!BN_GENCB_call(cb, 0, m++)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
125 goto
never executed: goto err;
err;
never executed: goto err;
0
126-
127 if (use_random_seed
use_random_seedDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-1
128 if (RAND_bytes(seed, qsize) <= 0
RAND_bytes(seed, qsize) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
129 goto
never executed: goto err;
err;
never executed: goto err;
0
130 }
never executed: end of block
else {
0
131-
132 seed_in = -
133 ((void *)0)-
134 ;-
135 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
136 memcpy(buf, seed, qsize);-
137 memcpy(buf2, seed, qsize);-
138-
139 for (i = qsize - 1; i >= 0
i >= 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
; i--) {
0-1
140 buf[i]++;-
141 if (buf[i] != 0
buf[i] != 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-1
142 break;
executed 1 time by 1 test: break;
Executed by:
  • libcrypto.so.1.1
1
143 }
never executed: end of block
0
144-
145-
146 if (!EVP_Digest(seed, qsize, md,
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
147 ((void *)0)
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
148 , evpmd,
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
149 ((void *)0)
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
150 )
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
151 goto
never executed: goto err;
err;
never executed: goto err;
0
152 if (!EVP_Digest(buf, qsize, buf2,
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
153 ((void *)0)
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
154 , evpmd,
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
155 ((void *)0)
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
156 )
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
157 goto
never executed: goto err;
err;
never executed: goto err;
0
158 for (i = 0; i < qsize
i < qsizeDescription
TRUEevaluated 20 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++)
1-20
159 md[i] ^= buf2[i];
executed 20 times by 1 test: md[i] ^= buf2[i];
Executed by:
  • libcrypto.so.1.1
20
160-
161-
162 md[0] |= 0x80;-
163 md[qsize - 1] |= 0x01;-
164 if (!BN_bin2bn(md, qsize, q)
!BN_bin2bn(md, qsize, q)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
165 goto
never executed: goto err;
err;
never executed: goto err;
0
166-
167-
168 r = BN_is_prime_fasttest_ex(q, 64, ctx,-
169 use_random_seed, cb);-
170 if (r > 0
r > 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-1
171 break;
executed 1 time by 1 test: break;
Executed by:
  • libcrypto.so.1.1
1
172 if (r != 0
r != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
173 goto
never executed: goto err;
err;
never executed: goto err;
0
174-
175-
176-
177 }
never executed: end of block
0
178-
179 if (!BN_GENCB_call(cb, 2, 0)
!BN_GENCB_call(cb, 2, 0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
180 goto
never executed: goto err;
err;
never executed: goto err;
0
181 if (!BN_GENCB_call(cb, 3, 0)
!BN_GENCB_call(cb, 3, 0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
182 goto
never executed: goto err;
err;
never executed: goto err;
0
183-
184-
185 counter = 0;-
186-
187-
188 n = (bits - 1) / 160;-
189-
190 for (;;) {-
191 if ((
(counter != 0)Description
TRUEevaluated 105 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
counter != 0)
(counter != 0)Description
TRUEevaluated 105 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& !BN_GENCB_call(cb, 0, counter)
!BN_GENCB_call(cb, 0, counter)Description
TRUEnever evaluated
FALSEevaluated 105 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-105
192 goto
never executed: goto err;
err;
never executed: goto err;
0
193-
194-
195 (BN_set_word((W),0));-
196-
197 for (k = 0; k <= n
k <= nDescription
TRUEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; k++) {
106-424
198-
199-
200-
201 for (i = qsize - 1; i >= 0
i >= 0Description
TRUEevaluated 426 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
; i--) {
0-426
202 buf[i]++;-
203 if (buf[i] != 0
buf[i] != 0Description
TRUEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
2-424
204 break;
executed 424 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
424
205 }
executed 2 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
2
206-
207 if (!EVP_Digest(buf, qsize, md,
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-424
208 ((void *)0)
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-424
209 , evpmd,
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-424
210 ((void *)0)
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-424
211 )
!EVP_Digest(bu... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-424
212 goto
never executed: goto err;
err;
never executed: goto err;
0
213-
214-
215 if (!BN_bin2bn(md, qsize, r0)
!BN_bin2bn(md, qsize, r0)Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-424
216 goto
never executed: goto err;
err;
never executed: goto err;
0
217 if (!BN_lshift(r0, r0, (qsize << 3) * k)
!BN_lshift(r0,...ize << 3) * k)Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-424
218 goto
never executed: goto err;
err;
never executed: goto err;
0
219 if (!BN_add(W, W, r0)
!BN_add(W, W, r0)Description
TRUEnever evaluated
FALSEevaluated 424 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-424
220 goto
never executed: goto err;
err;
never executed: goto err;
0
221 }
executed 424 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
424
222-
223-
224 if (!BN_mask_bits(W, bits - 1)
!BN_mask_bits(W, bits - 1)Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-106
225 goto
never executed: goto err;
err;
never executed: goto err;
0
226 if (!BN_copy(X, W)
!BN_copy(X, W)Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-106
227 goto
never executed: goto err;
err;
never executed: goto err;
0
228 if (!BN_add(X, X, test)
!BN_add(X, X, test)Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-106
229 goto
never executed: goto err;
err;
never executed: goto err;
0
230-
231-
232 if (!BN_lshift1(r0, q)
!BN_lshift1(r0, q)Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-106
233 goto
never executed: goto err;
err;
never executed: goto err;
0
234 if (!BN_div(
!BN_div( ((voi...X),(r0),(ctx))Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-106
235 ((void *)0)
!BN_div( ((voi...X),(r0),(ctx))Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-106
236 ,(c),(X),(r0),(ctx))
!BN_div( ((voi...X),(r0),(ctx))Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-106
237 goto
never executed: goto err;
err;
never executed: goto err;
0
238 if (!BN_sub(r0, c, BN_value_one())
!BN_sub(r0, c, BN_value_one())Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-106
239 goto
never executed: goto err;
err;
never executed: goto err;
0
240 if (!BN_sub(p, X, r0)
!BN_sub(p, X, r0)Description
TRUEnever evaluated
FALSEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-106
241 goto
never executed: goto err;
err;
never executed: goto err;
0
242-
243-
244 if (BN_cmp(p, test) >= 0
BN_cmp(p, test) >= 0Description
TRUEevaluated 106 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-106
245-
246 r = BN_is_prime_fasttest_ex(p, 64, ctx, 1, cb);-
247 if (r > 0
r > 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 105 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
1-105
248 goto
executed 1 time by 1 test: goto end;
Executed by:
  • libcrypto.so.1.1
end;
executed 1 time by 1 test: goto end;
Executed by:
  • libcrypto.so.1.1
1
249 if (r != 0
r != 0Description
TRUEnever evaluated
FALSEevaluated 105 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-105
250 goto
never executed: goto err;
err;
never executed: goto err;
0
251 }
executed 105 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
105
252-
253-
254 counter++;-
255-
256-
257-
258 if (counter >= 4096
counter >= 4096Description
TRUEnever evaluated
FALSEevaluated 105 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-105
259 break;
never executed: break;
0
260 }
executed 105 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
105
261 }
never executed: end of block
0
262 end:
code before this statement never executed: end:
0
263 if (!BN_GENCB_call(cb, 2, 1)
!BN_GENCB_call(cb, 2, 1)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
264 goto
never executed: goto err;
err;
never executed: goto err;
0
265-
266-
267-
268 if (!BN_sub(test, p, BN_value_one())
!BN_sub(test, ...N_value_one())Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
269 goto
never executed: goto err;
err;
never executed: goto err;
0
270 if (!BN_div(r0,
!BN_div(r0, ((... test, q, ctx)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
271 ((void *)0)
!BN_div(r0, ((... test, q, ctx)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
272 , test, q, ctx)
!BN_div(r0, ((... test, q, ctx)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
273 goto
never executed: goto err;
err;
never executed: goto err;
0
274-
275 if (!BN_set_word(test, h)
!BN_set_word(test, h)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
276 goto
never executed: goto err;
err;
never executed: goto err;
0
277 if (!BN_MONT_CTX_set(mont, p, ctx)
!BN_MONT_CTX_set(mont, p, ctx)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
278 goto
never executed: goto err;
err;
never executed: goto err;
0
279-
280 for (;;) {-
281-
282 if (!BN_mod_exp_mont(g, test, r0, p, ctx, mont)
!BN_mod_exp_mo... p, ctx, mont)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
283 goto
never executed: goto err;
err;
never executed: goto err;
0
284 if (!BN_is_one(g)
!BN_is_one(g)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-1
285 break;
executed 1 time by 1 test: break;
Executed by:
  • libcrypto.so.1.1
1
286 if (!BN_add(test, test, BN_value_one())
!BN_add(test, ...N_value_one())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
287 goto
never executed: goto err;
err;
never executed: goto err;
0
288 h++;-
289 }
never executed: end of block
0
290-
291 if (!BN_GENCB_call(cb, 3, 1)
!BN_GENCB_call(cb, 3, 1)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
292 goto
never executed: goto err;
err;
never executed: goto err;
0
293-
294 ok = 1;-
295 err:
code before this statement executed 1 time by 1 test: err:
Executed by:
  • libcrypto.so.1.1
1
296 if (ok
okDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-1
297 BN_free(ret->p);-
298 BN_free(ret->q);-
299 BN_free(ret->g);-
300 ret->p = BN_dup(p);-
301 ret->q = BN_dup(q);-
302 ret->g = BN_dup(g);-
303 if (ret->p ==
ret->p == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
304 ((void *)0)
ret->p == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
305 || ret->q ==
ret->q == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
306 ((void *)0)
ret->q == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
307 || ret->g ==
ret->g == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
308 ((void *)0)
ret->g == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
309 ) {-
310 ok = 0;-
311 goto
never executed: goto err;
err;
never executed: goto err;
0
312 }-
313 if (counter_ret !=
counter_ret != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-1
314 ((void *)0)
counter_ret != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-1
315 )-
316 *
executed 1 time by 1 test: *counter_ret = counter;
Executed by:
  • libcrypto.so.1.1
counter_ret = counter;
executed 1 time by 1 test: *counter_ret = counter;
Executed by:
  • libcrypto.so.1.1
1
317 if (h_ret !=
h_ret != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-1
318 ((void *)0)
h_ret != ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-1
319 )-
320 *
executed 1 time by 1 test: *h_ret = h;
Executed by:
  • libcrypto.so.1.1
h_ret = h;
executed 1 time by 1 test: *h_ret = h;
Executed by:
  • libcrypto.so.1.1
1
321 if (seed_out
seed_outDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
322 memcpy(seed_out, seed, qsize);
never executed: memcpy(seed_out, seed, qsize);
0
323 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
324 if (ctx
ctxDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-1
325 BN_CTX_end(ctx);
executed 1 time by 1 test: BN_CTX_end(ctx);
Executed by:
  • libcrypto.so.1.1
1
326 BN_CTX_free(ctx);-
327 BN_MONT_CTX_free(mont);-
328 return
executed 1 time by 1 test: return ok;
Executed by:
  • libcrypto.so.1.1
ok;
executed 1 time by 1 test: return ok;
Executed by:
  • libcrypto.so.1.1
1
329}-
330-
331-
332-
333-
334-
335-
336int dsa_builtin_paramgen2(DSA *ret, size_t L, size_t N,-
337 const EVP_MD *evpmd, const unsigned char *seed_in,-
338 size_t seed_len, int idx, unsigned char *seed_out,-
339 int *counter_ret, unsigned long *h_ret,-
340 BN_GENCB *cb)-
341{-
342 int ok = -1;-
343 unsigned char *seed = -
344 ((void *)0)-
345 , *seed_tmp = -
346 ((void *)0)-
347 ;-
348 unsigned char md[64];-
349 int mdsize;-
350 BIGNUM *r0, *W, *X, *c, *test;-
351 BIGNUM *g = -
352 ((void *)0)-
353 , *q = -
354 ((void *)0)-
355 , *p = -
356 ((void *)0)-
357 ;-
358 BN_MONT_CTX *mont = -
359 ((void *)0)-
360 ;-
361 int i, k, n = 0, m = 0, qsize = N >> 3;-
362 int counter = 0;-
363 int r = 0;-
364 BN_CTX *ctx = -
365 ((void *)0)-
366 ;-
367 EVP_MD_CTX *mctx = EVP_MD_CTX_new();-
368 unsigned int h = 2;-
369-
370 if (mctx ==
mctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
371 ((void *)0)
mctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
372 )-
373 goto
never executed: goto err;
err;
never executed: goto err;
0
374-
375 if (evpmd ==
evpmd == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
376 ((void *)0)
evpmd == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
377 ) {-
378 if (N == 160
N == 160Description
TRUEnever evaluated
FALSEnever evaluated
)
0
379 evpmd = EVP_sha1();
never executed: evpmd = EVP_sha1();
0
380 else if (N == 224
N == 224Description
TRUEnever evaluated
FALSEnever evaluated
)
0
381 evpmd = EVP_sha224();
never executed: evpmd = EVP_sha224();
0
382 else-
383 evpmd = EVP_sha256();
never executed: evpmd = EVP_sha256();
0
384 }-
385-
386 mdsize = EVP_MD_size(evpmd);-
387-
388 if (!ret->p
!ret->pDescription
TRUEnever evaluated
FALSEnever evaluated
|| !ret->q
!ret->qDescription
TRUEnever evaluated
FALSEnever evaluated
|| idx >= 0
idx >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
389 if (seed_len == 0
seed_len == 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
390 seed_len = mdsize;
never executed: seed_len = mdsize;
0
391-
392 seed = CRYPTO_malloc(seed_len, __FILE__, 345);-
393-
394 if (seed_out
seed_outDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
395 seed_tmp = seed_out;
never executed: seed_tmp = seed_out;
0
396 else-
397 seed_tmp = CRYPTO_malloc(seed_len, __FILE__, 350);
never executed: seed_tmp = CRYPTO_malloc(seed_len, __FILE__, 350);
0
398-
399 if (seed ==
seed == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
400 ((void *)0)
seed == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
401 || seed_tmp ==
seed_tmp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
402 ((void *)0)
seed_tmp == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
403 )-
404 goto
never executed: goto err;
err;
never executed: goto err;
0
405-
406 if (seed_in
seed_inDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
407 memcpy(seed, seed_in, seed_len);
never executed: memcpy(seed, seed_in, seed_len);
0
408-
409 }
never executed: end of block
0
410-
411 if ((
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
ctx = BN_CTX_new()) ==
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
412 ((void *)0)
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
413 )-
414 goto
never executed: goto err;
err;
never executed: goto err;
0
415-
416 if ((
(mont = BN_MON...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
mont = BN_MONT_CTX_new()) ==
(mont = BN_MON...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
417 ((void *)0)
(mont = BN_MON...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
418 )-
419 goto
never executed: goto err;
err;
never executed: goto err;
0
420-
421 BN_CTX_start(ctx);-
422 r0 = BN_CTX_get(ctx);-
423 g = BN_CTX_get(ctx);-
424 W = BN_CTX_get(ctx);-
425 X = BN_CTX_get(ctx);-
426 c = BN_CTX_get(ctx);-
427 test = BN_CTX_get(ctx);-
428 if (test ==
test == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
429 ((void *)0)
test == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
430 )-
431 goto
never executed: goto err;
err;
never executed: goto err;
0
432-
433-
434 if (ret->p
ret->pDescription
TRUEnever evaluated
FALSEnever evaluated
&& ret->q
ret->qDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
435 p = ret->p;-
436 q = ret->q;-
437 if (idx >= 0
idx >= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
438 memcpy(seed_tmp, seed, seed_len);
never executed: memcpy(seed_tmp, seed, seed_len);
0
439 goto
never executed: goto g_only;
g_only;
never executed: goto g_only;
0
440 } else {-
441 p = BN_CTX_get(ctx);-
442 q = BN_CTX_get(ctx);-
443 if (q ==
q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
444 ((void *)0)
q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
445 )-
446 goto
never executed: goto err;
err;
never executed: goto err;
0
447 }
never executed: end of block
0
448-
449 if (!BN_lshift(test, BN_value_one(), L - 1)
!BN_lshift(tes..._one(), L - 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
450 goto
never executed: goto err;
err;
never executed: goto err;
0
451 for (;;) {-
452 for (;;) {-
453 unsigned char *pmd;-
454-
455 if (!BN_GENCB_call(cb, 0, m++)
!BN_GENCB_call(cb, 0, m++)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
456 goto
never executed: goto err;
err;
never executed: goto err;
0
457-
458 if (!seed_in
!seed_inDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
459 if (RAND_bytes(seed, seed_len) <= 0
RAND_bytes(see...seed_len) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
460 goto
never executed: goto err;
err;
never executed: goto err;
0
461 }
never executed: end of block
0
462-
463 if (!EVP_Digest(seed, seed_len, md,
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
464 ((void *)0)
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
465 , evpmd,
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
466 ((void *)0)
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
467 )
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
468 goto
never executed: goto err;
err;
never executed: goto err;
0
469-
470 if (mdsize > qsize
mdsize > qsizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
471 pmd = md + mdsize - qsize;
never executed: pmd = md + mdsize - qsize;
0
472 else-
473 pmd = md;
never executed: pmd = md;
0
474-
475 if (mdsize < qsize
mdsize < qsizeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
476 memset(md + mdsize, 0, qsize - mdsize);
never executed: memset(md + mdsize, 0, qsize - mdsize);
0
477-
478-
479 pmd[0] |= 0x80;-
480 pmd[qsize - 1] |= 0x01;-
481 if (!BN_bin2bn(pmd, qsize, q)
!BN_bin2bn(pmd, qsize, q)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
482 goto
never executed: goto err;
err;
never executed: goto err;
0
483-
484-
485 r = BN_is_prime_fasttest_ex(q, 64, ctx,-
486 seed_in ? 1 : 0, cb);-
487 if (r > 0
r > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
488 break;
never executed: break;
0
489 if (r != 0
r != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
490 goto
never executed: goto err;
err;
never executed: goto err;
0
491-
492 if (seed_in
seed_inDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
493 ok = 0;-
494 ERR_put_error(10,(126),(113),__FILE__,431);-
495 goto
never executed: goto err;
err;
never executed: goto err;
0
496 }-
497-
498-
499-
500 }
never executed: end of block
0
501-
502 if (seed_out
seed_outDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
503 memcpy(seed_out, seed, seed_len);
never executed: memcpy(seed_out, seed, seed_len);
0
504-
505 if (!BN_GENCB_call(cb, 2, 0)
!BN_GENCB_call(cb, 2, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
506 goto
never executed: goto err;
err;
never executed: goto err;
0
507 if (!BN_GENCB_call(cb, 3, 0)
!BN_GENCB_call(cb, 3, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
508 goto
never executed: goto err;
err;
never executed: goto err;
0
509-
510-
511 counter = 0;-
512-
513-
514 n = (L - 1) / (mdsize << 3);-
515-
516 for (;;) {-
517 if ((
(counter != 0)Description
TRUEnever evaluated
FALSEnever evaluated
counter != 0)
(counter != 0)Description
TRUEnever evaluated
FALSEnever evaluated
&& !BN_GENCB_call(cb, 0, counter)
!BN_GENCB_call(cb, 0, counter)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
518 goto
never executed: goto err;
err;
never executed: goto err;
0
519-
520-
521 (BN_set_word((W),0));-
522-
523 for (k = 0; k <= n
k <= nDescription
TRUEnever evaluated
FALSEnever evaluated
; k++) {
0
524-
525-
526-
527 for (i = seed_len - 1; i >= 0
i >= 0Description
TRUEnever evaluated
FALSEnever evaluated
; i--) {
0
528 seed[i]++;-
529 if (seed[i] != 0
seed[i] != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
530 break;
never executed: break;
0
531 }
never executed: end of block
0
532-
533 if (!EVP_Digest(seed, seed_len, md,
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
534 ((void *)0)
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
535 , evpmd,
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
536 ((void *)0)
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
537 )
!EVP_Digest(se... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
538 goto
never executed: goto err;
err;
never executed: goto err;
0
539-
540-
541 if (!BN_bin2bn(md, mdsize, r0)
!BN_bin2bn(md, mdsize, r0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
542 goto
never executed: goto err;
err;
never executed: goto err;
0
543 if (!BN_lshift(r0, r0, (mdsize << 3) * k)
!BN_lshift(r0,...ize << 3) * k)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
544 goto
never executed: goto err;
err;
never executed: goto err;
0
545 if (!BN_add(W, W, r0)
!BN_add(W, W, r0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
546 goto
never executed: goto err;
err;
never executed: goto err;
0
547 }
never executed: end of block
0
548-
549-
550 if (!BN_mask_bits(W, L - 1)
!BN_mask_bits(W, L - 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
551 goto
never executed: goto err;
err;
never executed: goto err;
0
552 if (!BN_copy(X, W)
!BN_copy(X, W)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
553 goto
never executed: goto err;
err;
never executed: goto err;
0
554 if (!BN_add(X, X, test)
!BN_add(X, X, test)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
555 goto
never executed: goto err;
err;
never executed: goto err;
0
556-
557-
558 if (!BN_lshift1(r0, q)
!BN_lshift1(r0, q)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
559 goto
never executed: goto err;
err;
never executed: goto err;
0
560 if (!BN_div(
!BN_div( ((voi...X),(r0),(ctx))Description
TRUEnever evaluated
FALSEnever evaluated
0
561 ((void *)0)
!BN_div( ((voi...X),(r0),(ctx))Description
TRUEnever evaluated
FALSEnever evaluated
0
562 ,(c),(X),(r0),(ctx))
!BN_div( ((voi...X),(r0),(ctx))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
563 goto
never executed: goto err;
err;
never executed: goto err;
0
564 if (!BN_sub(r0, c, BN_value_one())
!BN_sub(r0, c, BN_value_one())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
565 goto
never executed: goto err;
err;
never executed: goto err;
0
566 if (!BN_sub(p, X, r0)
!BN_sub(p, X, r0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
567 goto
never executed: goto err;
err;
never executed: goto err;
0
568-
569-
570 if (BN_cmp(p, test) >= 0
BN_cmp(p, test) >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
571-
572 r = BN_is_prime_fasttest_ex(p, 64, ctx, 1, cb);-
573 if (r > 0
r > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
574 goto
never executed: goto end;
end;
never executed: goto end;
0
575 if (r != 0
r != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
576 goto
never executed: goto err;
err;
never executed: goto err;
0
577 }
never executed: end of block
0
578-
579-
580 counter++;-
581-
582-
583-
584 if (counter >= (int)(4 * L)
counter >= (int)(4 * L)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
585 break;
never executed: break;
0
586 }
never executed: end of block
0
587 if (seed_in
seed_inDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
588 ok = 0;-
589 ERR_put_error(10,(126),(112),__FILE__,520);-
590 goto
never executed: goto err;
err;
never executed: goto err;
0
591 }-
592 }
never executed: end of block
0
593 end:
code before this statement never executed: end:
0
594 if (!BN_GENCB_call(cb, 2, 1)
!BN_GENCB_call(cb, 2, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
595 goto
never executed: goto err;
err;
never executed: goto err;
0
596-
597 g_only:
code before this statement never executed: g_only:
0
598-
599-
600-
601 if (!BN_sub(test, p, BN_value_one())
!BN_sub(test, ...N_value_one())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
602 goto
never executed: goto err;
err;
never executed: goto err;
0
603 if (!BN_div(r0,
!BN_div(r0, ((... test, q, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
0
604 ((void *)0)
!BN_div(r0, ((... test, q, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
0
605 , test, q, ctx)
!BN_div(r0, ((... test, q, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
606 goto
never executed: goto err;
err;
never executed: goto err;
0
607-
608 if (idx < 0
idx < 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
609 if (!BN_set_word(test, h)
!BN_set_word(test, h)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
610 goto
never executed: goto err;
err;
never executed: goto err;
0
611 }
never executed: end of block
else
0
612 h = 1;
never executed: h = 1;
0
613 if (!BN_MONT_CTX_set(mont, p, ctx)
!BN_MONT_CTX_set(mont, p, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
614 goto
never executed: goto err;
err;
never executed: goto err;
0
615-
616 for (;;) {-
617 static const unsigned char ggen[4] = { 0x67, 0x67, 0x65, 0x6e };-
618 if (idx >= 0
idx >= 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
619 md[0] = idx & 0xff;-
620 md[1] = (h >> 8) & 0xff;-
621 md[2] = h & 0xff;-
622 if (!EVP_DigestInit_ex(mctx, evpmd,
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
623 ((void *)0)
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
624 )
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
625 goto
never executed: goto err;
err;
never executed: goto err;
0
626 if (!EVP_DigestUpdate(mctx, seed_tmp, seed_len)
!EVP_DigestUpd...tmp, seed_len)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
627 goto
never executed: goto err;
err;
never executed: goto err;
0
628 if (!EVP_DigestUpdate(mctx, ggen, sizeof(ggen))
!EVP_DigestUpd... sizeof(ggen))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
629 goto
never executed: goto err;
err;
never executed: goto err;
0
630 if (!EVP_DigestUpdate(mctx, md, 3)
!EVP_DigestUpdate(mctx, md, 3)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
631 goto
never executed: goto err;
err;
never executed: goto err;
0
632 if (!EVP_DigestFinal_ex(mctx, md,
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
633 ((void *)0)
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
634 )
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
635 goto
never executed: goto err;
err;
never executed: goto err;
0
636 if (!BN_bin2bn(md, mdsize, test)
!BN_bin2bn(md, mdsize, test)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
637 goto
never executed: goto err;
err;
never executed: goto err;
0
638 }
never executed: end of block
0
639-
640 if (!BN_mod_exp_mont(g, test, r0, p, ctx, mont)
!BN_mod_exp_mo... p, ctx, mont)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
641 goto
never executed: goto err;
err;
never executed: goto err;
0
642 if (!BN_is_one(g)
!BN_is_one(g)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
643 break;
never executed: break;
0
644 if (idx < 0
idx < 0Description
TRUEnever evaluated
FALSEnever evaluated
&& !BN_add(test, test, BN_value_one())
!BN_add(test, ...N_value_one())Description
TRUEnever evaluated
FALSEnever evaluated
)
0
645 goto
never executed: goto err;
err;
never executed: goto err;
0
646 h++;-
647 if (idx >= 0
idx >= 0Description
TRUEnever evaluated
FALSEnever evaluated
&& h > 0xffff
h > 0xffffDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
648 goto
never executed: goto err;
err;
never executed: goto err;
0
649 }
never executed: end of block
0
650-
651 if (!BN_GENCB_call(cb, 3, 1)
!BN_GENCB_call(cb, 3, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
652 goto
never executed: goto err;
err;
never executed: goto err;
0
653-
654 ok = 1;-
655 err:
code before this statement never executed: err:
0
656 if (ok == 1
ok == 1Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
657 if (p != ret->p
p != ret->pDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
658 BN_free(ret->p);-
659 ret->p = BN_dup(p);-
660 }
never executed: end of block
0
661 if (q != ret->q
q != ret->qDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
662 BN_free(ret->q);-
663 ret->q = BN_dup(q);-
664 }
never executed: end of block
0
665 BN_free(ret->g);-
666 ret->g = BN_dup(g);-
667 if (ret->p ==
ret->p == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
668 ((void *)0)
ret->p == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
669 || ret->q ==
ret->q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
670 ((void *)0)
ret->q == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
671 || ret->g ==
ret->g == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
672 ((void *)0)
ret->g == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
673 ) {-
674 ok = -1;-
675 goto
never executed: goto err;
err;
never executed: goto err;
0
676 }-
677 if (counter_ret !=
counter_ret != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
678 ((void *)0)
counter_ret != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
679 )-
680 *
never executed: *counter_ret = counter;
counter_ret = counter;
never executed: *counter_ret = counter;
0
681 if (h_ret !=
h_ret != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
682 ((void *)0)
h_ret != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
683 )-
684 *
never executed: *h_ret = h;
h_ret = h;
never executed: *h_ret = h;
0
685 }
never executed: end of block
0
686 CRYPTO_free(seed, __FILE__, 601);-
687 if (seed_out != seed_tmp
seed_out != seed_tmpDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
688 CRYPTO_free(seed_tmp, __FILE__, 603);
never executed: CRYPTO_free(seed_tmp, __FILE__, 603);
0
689 if (ctx
ctxDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
690 BN_CTX_end(ctx);
never executed: BN_CTX_end(ctx);
0
691 BN_CTX_free(ctx);-
692 BN_MONT_CTX_free(mont);-
693 EVP_MD_CTX_free(mctx);-
694 return
never executed: return ok;
ok;
never executed: return ok;
0
695}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2