Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dsa/dsa_gen.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||
2 | - | |||||||||||||||||||
3 | int 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
| 0-1 | ||||||||||||||||||
9 | return never executed: ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len,return ret->meth->dsa_paramgen(ret, bits, seed_in, seed_len, counter_ret, h_ret, cb); 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
| 0-1 | ||||||||||||||||||
13 | size_t qbits = EVP_MD_size(evpmd) * 8; | - | ||||||||||||||||||
14 | - | |||||||||||||||||||
15 | return executed 1 time by 1 test: dsa_builtin_paramgen(ret, bits, qbits, evpmd,return dsa_builtin_paramgen(ret, bits, qbits, evpmd, seed_in, seed_len, ((void *)0) , counter_ret, h_ret, cb); Executed by:
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:
| 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:
| 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:
| 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:
| 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:
| 1 | ||||||||||||||||||
20 | } | - | ||||||||||||||||||
21 | } | - | ||||||||||||||||||
22 | - | |||||||||||||||||||
23 | int 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
| 0-1 | ||||||||||||||||||
52 | qsize != 32
| 0 | ||||||||||||||||||
53 | - | |||||||||||||||||||
54 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
55 | - | |||||||||||||||||||
56 | if (evpmd ==
| 0-1 | ||||||||||||||||||
57 | ((void *)0)
| 0-1 | ||||||||||||||||||
58 | ) { | - | ||||||||||||||||||
59 | if (qsize == 20
| 0 | ||||||||||||||||||
60 | evpmd = EVP_sha1(); never executed: evpmd = EVP_sha1(); | 0 | ||||||||||||||||||
61 | else if (qsize == 28
| 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:
| 1 | ||||||||||||||||||
68 | - | |||||||||||||||||||
69 | if (bits < 512
| 0-1 | ||||||||||||||||||
70 | bits = 512; never executed: bits = 512; | 0 | ||||||||||||||||||
71 | - | |||||||||||||||||||
72 | bits = (bits + 63) / 64 * 64; | - | ||||||||||||||||||
73 | - | |||||||||||||||||||
74 | if (seed_in !=
| 0-1 | ||||||||||||||||||
75 | ((void *)0)
| 0-1 | ||||||||||||||||||
76 | ) { | - | ||||||||||||||||||
77 | if (seed_len < (size_t)qsize
| 0-1 | ||||||||||||||||||
78 | ERR_put_error(10,(125),(110),__FILE__,85); | - | ||||||||||||||||||
79 | return never executed: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||
80 | } | - | ||||||||||||||||||
81 | if (seed_len > (size_t)qsize
| 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:
| 1 | ||||||||||||||||||
87 | - | |||||||||||||||||||
88 | if ((
| 0-1 | ||||||||||||||||||
89 | ((void *)0)
| 0-1 | ||||||||||||||||||
90 | ) | - | ||||||||||||||||||
91 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
92 | - | |||||||||||||||||||
93 | if ((
| 0-1 | ||||||||||||||||||
94 | ((void *)0)
| 0-1 | ||||||||||||||||||
95 | ) | - | ||||||||||||||||||
96 | goto never executed: err;goto 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 ==
| 0-1 | ||||||||||||||||||
110 | ((void *)0)
| 0-1 | ||||||||||||||||||
111 | ) | - | ||||||||||||||||||
112 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
113 | - | |||||||||||||||||||
114 | if (!BN_lshift(test, BN_value_one(), bits - 1)
| 0-1 | ||||||||||||||||||
115 | goto never executed: err;goto 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++)
| 0-1 | ||||||||||||||||||
125 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
126 | - | |||||||||||||||||||
127 | if (use_random_seed
| 0-1 | ||||||||||||||||||
128 | if (RAND_bytes(seed, qsize) <= 0
| 0 | ||||||||||||||||||
129 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
130 | } never executed: else {end of block | 0 | ||||||||||||||||||
131 | - | |||||||||||||||||||
132 | seed_in = | - | ||||||||||||||||||
133 | ((void *)0) | - | ||||||||||||||||||
134 | ; | - | ||||||||||||||||||
135 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||||||||||||||
136 | memcpy(buf, seed, qsize); | - | ||||||||||||||||||
137 | memcpy(buf2, seed, qsize); | - | ||||||||||||||||||
138 | - | |||||||||||||||||||
139 | for (i = qsize - 1; i >= 0
| 0-1 | ||||||||||||||||||
140 | buf[i]++; | - | ||||||||||||||||||
141 | if (buf[i] != 0
| 0-1 | ||||||||||||||||||
142 | break; executed 1 time by 1 test: break; Executed by:
| 1 | ||||||||||||||||||
143 | } never executed: end of block | 0 | ||||||||||||||||||
144 | - | |||||||||||||||||||
145 | - | |||||||||||||||||||
146 | if (!EVP_Digest(seed, qsize, md,
| 0-1 | ||||||||||||||||||
147 | ((void *)0)
| 0-1 | ||||||||||||||||||
148 | , evpmd,
| 0-1 | ||||||||||||||||||
149 | ((void *)0)
| 0-1 | ||||||||||||||||||
150 | )
| 0-1 | ||||||||||||||||||
151 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
152 | if (!EVP_Digest(buf, qsize, buf2,
| 0-1 | ||||||||||||||||||
153 | ((void *)0)
| 0-1 | ||||||||||||||||||
154 | , evpmd,
| 0-1 | ||||||||||||||||||
155 | ((void *)0)
| 0-1 | ||||||||||||||||||
156 | )
| 0-1 | ||||||||||||||||||
157 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
158 | for (i = 0; i < qsize
| 1-20 | ||||||||||||||||||
159 | md[i] ^= buf2[i]; executed 20 times by 1 test: md[i] ^= buf2[i]; Executed by:
| 20 | ||||||||||||||||||
160 | - | |||||||||||||||||||
161 | - | |||||||||||||||||||
162 | md[0] |= 0x80; | - | ||||||||||||||||||
163 | md[qsize - 1] |= 0x01; | - | ||||||||||||||||||
164 | if (!BN_bin2bn(md, qsize, q)
| 0-1 | ||||||||||||||||||
165 | goto never executed: err;goto 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
| 0-1 | ||||||||||||||||||
171 | break; executed 1 time by 1 test: break; Executed by:
| 1 | ||||||||||||||||||
172 | if (r != 0
| 0 | ||||||||||||||||||
173 | goto never executed: err;goto 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)
| 0-1 | ||||||||||||||||||
180 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
181 | if (!BN_GENCB_call(cb, 3, 0)
| 0-1 | ||||||||||||||||||
182 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
183 | - | |||||||||||||||||||
184 | - | |||||||||||||||||||
185 | counter = 0; | - | ||||||||||||||||||
186 | - | |||||||||||||||||||
187 | - | |||||||||||||||||||
188 | n = (bits - 1) / 160; | - | ||||||||||||||||||
189 | - | |||||||||||||||||||
190 | for (;;) { | - | ||||||||||||||||||
191 | if ((
| 0-105 | ||||||||||||||||||
192 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
193 | - | |||||||||||||||||||
194 | - | |||||||||||||||||||
195 | (BN_set_word((W),0)); | - | ||||||||||||||||||
196 | - | |||||||||||||||||||
197 | for (k = 0; k <= n
| 106-424 | ||||||||||||||||||
198 | - | |||||||||||||||||||
199 | - | |||||||||||||||||||
200 | - | |||||||||||||||||||
201 | for (i = qsize - 1; i >= 0
| 0-426 | ||||||||||||||||||
202 | buf[i]++; | - | ||||||||||||||||||
203 | if (buf[i] != 0
| 2-424 | ||||||||||||||||||
204 | break; executed 424 times by 1 test: break; Executed by:
| 424 | ||||||||||||||||||
205 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||||||||||||||
206 | - | |||||||||||||||||||
207 | if (!EVP_Digest(buf, qsize, md,
| 0-424 | ||||||||||||||||||
208 | ((void *)0)
| 0-424 | ||||||||||||||||||
209 | , evpmd,
| 0-424 | ||||||||||||||||||
210 | ((void *)0)
| 0-424 | ||||||||||||||||||
211 | )
| 0-424 | ||||||||||||||||||
212 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
213 | - | |||||||||||||||||||
214 | - | |||||||||||||||||||
215 | if (!BN_bin2bn(md, qsize, r0)
| 0-424 | ||||||||||||||||||
216 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
217 | if (!BN_lshift(r0, r0, (qsize << 3) * k)
| 0-424 | ||||||||||||||||||
218 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
219 | if (!BN_add(W, W, r0)
| 0-424 | ||||||||||||||||||
220 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
221 | } executed 424 times by 1 test: end of block Executed by:
| 424 | ||||||||||||||||||
222 | - | |||||||||||||||||||
223 | - | |||||||||||||||||||
224 | if (!BN_mask_bits(W, bits - 1)
| 0-106 | ||||||||||||||||||
225 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
226 | if (!BN_copy(X, W)
| 0-106 | ||||||||||||||||||
227 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
228 | if (!BN_add(X, X, test)
| 0-106 | ||||||||||||||||||
229 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
230 | - | |||||||||||||||||||
231 | - | |||||||||||||||||||
232 | if (!BN_lshift1(r0, q)
| 0-106 | ||||||||||||||||||
233 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
234 | if (!BN_div(
| 0-106 | ||||||||||||||||||
235 | ((void *)0)
| 0-106 | ||||||||||||||||||
236 | ,(c),(X),(r0),(ctx))
| 0-106 | ||||||||||||||||||
237 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
238 | if (!BN_sub(r0, c, BN_value_one())
| 0-106 | ||||||||||||||||||
239 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
240 | if (!BN_sub(p, X, r0)
| 0-106 | ||||||||||||||||||
241 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
242 | - | |||||||||||||||||||
243 | - | |||||||||||||||||||
244 | if (BN_cmp(p, test) >= 0
| 0-106 | ||||||||||||||||||
245 | - | |||||||||||||||||||
246 | r = BN_is_prime_fasttest_ex(p, 64, ctx, 1, cb); | - | ||||||||||||||||||
247 | if (r > 0
| 1-105 | ||||||||||||||||||
248 | goto executed 1 time by 1 test: end;goto end; Executed by:
executed 1 time by 1 test: goto end; Executed by:
| 1 | ||||||||||||||||||
249 | if (r != 0
| 0-105 | ||||||||||||||||||
250 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
251 | } executed 105 times by 1 test: end of block Executed by:
| 105 | ||||||||||||||||||
252 | - | |||||||||||||||||||
253 | - | |||||||||||||||||||
254 | counter++; | - | ||||||||||||||||||
255 | - | |||||||||||||||||||
256 | - | |||||||||||||||||||
257 | - | |||||||||||||||||||
258 | if (counter >= 4096
| 0-105 | ||||||||||||||||||
259 | break; never executed: break; | 0 | ||||||||||||||||||
260 | } executed 105 times by 1 test: end of block Executed by:
| 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)
| 0-1 | ||||||||||||||||||
264 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
265 | - | |||||||||||||||||||
266 | - | |||||||||||||||||||
267 | - | |||||||||||||||||||
268 | if (!BN_sub(test, p, BN_value_one())
| 0-1 | ||||||||||||||||||
269 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
270 | if (!BN_div(r0,
| 0-1 | ||||||||||||||||||
271 | ((void *)0)
| 0-1 | ||||||||||||||||||
272 | , test, q, ctx)
| 0-1 | ||||||||||||||||||
273 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
274 | - | |||||||||||||||||||
275 | if (!BN_set_word(test, h)
| 0-1 | ||||||||||||||||||
276 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
277 | if (!BN_MONT_CTX_set(mont, p, ctx)
| 0-1 | ||||||||||||||||||
278 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
279 | - | |||||||||||||||||||
280 | for (;;) { | - | ||||||||||||||||||
281 | - | |||||||||||||||||||
282 | if (!BN_mod_exp_mont(g, test, r0, p, ctx, mont)
| 0-1 | ||||||||||||||||||
283 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
284 | if (!BN_is_one(g)
| 0-1 | ||||||||||||||||||
285 | break; executed 1 time by 1 test: break; Executed by:
| 1 | ||||||||||||||||||
286 | if (!BN_add(test, test, BN_value_one())
| 0 | ||||||||||||||||||
287 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
288 | h++; | - | ||||||||||||||||||
289 | } never executed: end of block | 0 | ||||||||||||||||||
290 | - | |||||||||||||||||||
291 | if (!BN_GENCB_call(cb, 3, 1)
| 0-1 | ||||||||||||||||||
292 | goto never executed: err;goto 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:
| 1 | ||||||||||||||||||
296 | if (ok
| 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 ==
| 0-1 | ||||||||||||||||||
304 | ((void *)0)
| 0-1 | ||||||||||||||||||
305 | || ret->q ==
| 0-1 | ||||||||||||||||||
306 | ((void *)0)
| 0-1 | ||||||||||||||||||
307 | || ret->g ==
| 0-1 | ||||||||||||||||||
308 | ((void *)0)
| 0-1 | ||||||||||||||||||
309 | ) { | - | ||||||||||||||||||
310 | ok = 0; | - | ||||||||||||||||||
311 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
312 | } | - | ||||||||||||||||||
313 | if (counter_ret !=
| 0-1 | ||||||||||||||||||
314 | ((void *)0)
| 0-1 | ||||||||||||||||||
315 | ) | - | ||||||||||||||||||
316 | * executed 1 time by 1 test: counter_ret = counter;*counter_ret = counter; Executed by:
executed 1 time by 1 test: *counter_ret = counter; Executed by:
| 1 | ||||||||||||||||||
317 | if (h_ret !=
| 0-1 | ||||||||||||||||||
318 | ((void *)0)
| 0-1 | ||||||||||||||||||
319 | ) | - | ||||||||||||||||||
320 | * executed 1 time by 1 test: h_ret = h;*h_ret = h; Executed by:
executed 1 time by 1 test: *h_ret = h; Executed by:
| 1 | ||||||||||||||||||
321 | if (seed_out
| 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:
| 1 | ||||||||||||||||||
324 | if (ctx
| 0-1 | ||||||||||||||||||
325 | BN_CTX_end(ctx); executed 1 time by 1 test: BN_CTX_end(ctx); Executed by:
| 1 | ||||||||||||||||||
326 | BN_CTX_free(ctx); | - | ||||||||||||||||||
327 | BN_MONT_CTX_free(mont); | - | ||||||||||||||||||
328 | return executed 1 time by 1 test: ok;return ok; Executed by:
executed 1 time by 1 test: return ok; Executed by:
| 1 | ||||||||||||||||||
329 | } | - | ||||||||||||||||||
330 | - | |||||||||||||||||||
331 | - | |||||||||||||||||||
332 | - | |||||||||||||||||||
333 | - | |||||||||||||||||||
334 | - | |||||||||||||||||||
335 | - | |||||||||||||||||||
336 | int 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 ==
| 0 | ||||||||||||||||||
371 | ((void *)0)
| 0 | ||||||||||||||||||
372 | ) | - | ||||||||||||||||||
373 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
374 | - | |||||||||||||||||||
375 | if (evpmd ==
| 0 | ||||||||||||||||||
376 | ((void *)0)
| 0 | ||||||||||||||||||
377 | ) { | - | ||||||||||||||||||
378 | if (N == 160
| 0 | ||||||||||||||||||
379 | evpmd = EVP_sha1(); never executed: evpmd = EVP_sha1(); | 0 | ||||||||||||||||||
380 | else if (N == 224
| 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
| 0 | ||||||||||||||||||
389 | if (seed_len == 0
| 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
| 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 ==
| 0 | ||||||||||||||||||
400 | ((void *)0)
| 0 | ||||||||||||||||||
401 | || seed_tmp ==
| 0 | ||||||||||||||||||
402 | ((void *)0)
| 0 | ||||||||||||||||||
403 | ) | - | ||||||||||||||||||
404 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
405 | - | |||||||||||||||||||
406 | if (seed_in
| 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 ((
| 0 | ||||||||||||||||||
412 | ((void *)0)
| 0 | ||||||||||||||||||
413 | ) | - | ||||||||||||||||||
414 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
415 | - | |||||||||||||||||||
416 | if ((
| 0 | ||||||||||||||||||
417 | ((void *)0)
| 0 | ||||||||||||||||||
418 | ) | - | ||||||||||||||||||
419 | goto never executed: err;goto 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 ==
| 0 | ||||||||||||||||||
429 | ((void *)0)
| 0 | ||||||||||||||||||
430 | ) | - | ||||||||||||||||||
431 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
432 | - | |||||||||||||||||||
433 | - | |||||||||||||||||||
434 | if (ret->p
| 0 | ||||||||||||||||||
435 | p = ret->p; | - | ||||||||||||||||||
436 | q = ret->q; | - | ||||||||||||||||||
437 | if (idx >= 0
| 0 | ||||||||||||||||||
438 | memcpy(seed_tmp, seed, seed_len); never executed: memcpy(seed_tmp, seed, seed_len); | 0 | ||||||||||||||||||
439 | goto never executed: g_only;goto 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 ==
| 0 | ||||||||||||||||||
444 | ((void *)0)
| 0 | ||||||||||||||||||
445 | ) | - | ||||||||||||||||||
446 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
447 | } never executed: end of block | 0 | ||||||||||||||||||
448 | - | |||||||||||||||||||
449 | if (!BN_lshift(test, BN_value_one(), L - 1)
| 0 | ||||||||||||||||||
450 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
451 | for (;;) { | - | ||||||||||||||||||
452 | for (;;) { | - | ||||||||||||||||||
453 | unsigned char *pmd; | - | ||||||||||||||||||
454 | - | |||||||||||||||||||
455 | if (!BN_GENCB_call(cb, 0, m++)
| 0 | ||||||||||||||||||
456 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
457 | - | |||||||||||||||||||
458 | if (!seed_in
| 0 | ||||||||||||||||||
459 | if (RAND_bytes(seed, seed_len) <= 0
| 0 | ||||||||||||||||||
460 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
461 | } never executed: end of block | 0 | ||||||||||||||||||
462 | - | |||||||||||||||||||
463 | if (!EVP_Digest(seed, seed_len, md,
| 0 | ||||||||||||||||||
464 | ((void *)0)
| 0 | ||||||||||||||||||
465 | , evpmd,
| 0 | ||||||||||||||||||
466 | ((void *)0)
| 0 | ||||||||||||||||||
467 | )
| 0 | ||||||||||||||||||
468 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
469 | - | |||||||||||||||||||
470 | if (mdsize > qsize
| 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
| 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)
| 0 | ||||||||||||||||||
482 | goto never executed: err;goto 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
| 0 | ||||||||||||||||||
488 | break; never executed: break; | 0 | ||||||||||||||||||
489 | if (r != 0
| 0 | ||||||||||||||||||
490 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
491 | - | |||||||||||||||||||
492 | if (seed_in
| 0 | ||||||||||||||||||
493 | ok = 0; | - | ||||||||||||||||||
494 | ERR_put_error(10,(126),(113),__FILE__,431); | - | ||||||||||||||||||
495 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
496 | } | - | ||||||||||||||||||
497 | - | |||||||||||||||||||
498 | - | |||||||||||||||||||
499 | - | |||||||||||||||||||
500 | } never executed: end of block | 0 | ||||||||||||||||||
501 | - | |||||||||||||||||||
502 | if (seed_out
| 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)
| 0 | ||||||||||||||||||
506 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
507 | if (!BN_GENCB_call(cb, 3, 0)
| 0 | ||||||||||||||||||
508 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
509 | - | |||||||||||||||||||
510 | - | |||||||||||||||||||
511 | counter = 0; | - | ||||||||||||||||||
512 | - | |||||||||||||||||||
513 | - | |||||||||||||||||||
514 | n = (L - 1) / (mdsize << 3); | - | ||||||||||||||||||
515 | - | |||||||||||||||||||
516 | for (;;) { | - | ||||||||||||||||||
517 | if ((
| 0 | ||||||||||||||||||
518 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
519 | - | |||||||||||||||||||
520 | - | |||||||||||||||||||
521 | (BN_set_word((W),0)); | - | ||||||||||||||||||
522 | - | |||||||||||||||||||
523 | for (k = 0; k <= n
| 0 | ||||||||||||||||||
524 | - | |||||||||||||||||||
525 | - | |||||||||||||||||||
526 | - | |||||||||||||||||||
527 | for (i = seed_len - 1; i >= 0
| 0 | ||||||||||||||||||
528 | seed[i]++; | - | ||||||||||||||||||
529 | if (seed[i] != 0
| 0 | ||||||||||||||||||
530 | break; never executed: break; | 0 | ||||||||||||||||||
531 | } never executed: end of block | 0 | ||||||||||||||||||
532 | - | |||||||||||||||||||
533 | if (!EVP_Digest(seed, seed_len, md,
| 0 | ||||||||||||||||||
534 | ((void *)0)
| 0 | ||||||||||||||||||
535 | , evpmd,
| 0 | ||||||||||||||||||
536 | ((void *)0)
| 0 | ||||||||||||||||||
537 | )
| 0 | ||||||||||||||||||
538 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
539 | - | |||||||||||||||||||
540 | - | |||||||||||||||||||
541 | if (!BN_bin2bn(md, mdsize, r0)
| 0 | ||||||||||||||||||
542 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
543 | if (!BN_lshift(r0, r0, (mdsize << 3) * k)
| 0 | ||||||||||||||||||
544 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
545 | if (!BN_add(W, W, r0)
| 0 | ||||||||||||||||||
546 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
547 | } never executed: end of block | 0 | ||||||||||||||||||
548 | - | |||||||||||||||||||
549 | - | |||||||||||||||||||
550 | if (!BN_mask_bits(W, L - 1)
| 0 | ||||||||||||||||||
551 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
552 | if (!BN_copy(X, W)
| 0 | ||||||||||||||||||
553 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
554 | if (!BN_add(X, X, test)
| 0 | ||||||||||||||||||
555 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
556 | - | |||||||||||||||||||
557 | - | |||||||||||||||||||
558 | if (!BN_lshift1(r0, q)
| 0 | ||||||||||||||||||
559 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
560 | if (!BN_div(
| 0 | ||||||||||||||||||
561 | ((void *)0)
| 0 | ||||||||||||||||||
562 | ,(c),(X),(r0),(ctx))
| 0 | ||||||||||||||||||
563 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
564 | if (!BN_sub(r0, c, BN_value_one())
| 0 | ||||||||||||||||||
565 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
566 | if (!BN_sub(p, X, r0)
| 0 | ||||||||||||||||||
567 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
568 | - | |||||||||||||||||||
569 | - | |||||||||||||||||||
570 | if (BN_cmp(p, test) >= 0
| 0 | ||||||||||||||||||
571 | - | |||||||||||||||||||
572 | r = BN_is_prime_fasttest_ex(p, 64, ctx, 1, cb); | - | ||||||||||||||||||
573 | if (r > 0
| 0 | ||||||||||||||||||
574 | goto never executed: end;goto end; never executed: goto end; | 0 | ||||||||||||||||||
575 | if (r != 0
| 0 | ||||||||||||||||||
576 | goto never executed: err;goto 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)
| 0 | ||||||||||||||||||
585 | break; never executed: break; | 0 | ||||||||||||||||||
586 | } never executed: end of block | 0 | ||||||||||||||||||
587 | if (seed_in
| 0 | ||||||||||||||||||
588 | ok = 0; | - | ||||||||||||||||||
589 | ERR_put_error(10,(126),(112),__FILE__,520); | - | ||||||||||||||||||
590 | goto never executed: err;goto 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)
| 0 | ||||||||||||||||||
595 | goto never executed: err;goto 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())
| 0 | ||||||||||||||||||
602 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
603 | if (!BN_div(r0,
| 0 | ||||||||||||||||||
604 | ((void *)0)
| 0 | ||||||||||||||||||
605 | , test, q, ctx)
| 0 | ||||||||||||||||||
606 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
607 | - | |||||||||||||||||||
608 | if (idx < 0
| 0 | ||||||||||||||||||
609 | if (!BN_set_word(test, h)
| 0 | ||||||||||||||||||
610 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
611 | } never executed: elseend of block | 0 | ||||||||||||||||||
612 | h = 1; never executed: h = 1; | 0 | ||||||||||||||||||
613 | if (!BN_MONT_CTX_set(mont, p, ctx)
| 0 | ||||||||||||||||||
614 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
615 | - | |||||||||||||||||||
616 | for (;;) { | - | ||||||||||||||||||
617 | static const unsigned char ggen[4] = { 0x67, 0x67, 0x65, 0x6e }; | - | ||||||||||||||||||
618 | if (idx >= 0
| 0 | ||||||||||||||||||
619 | md[0] = idx & 0xff; | - | ||||||||||||||||||
620 | md[1] = (h >> 8) & 0xff; | - | ||||||||||||||||||
621 | md[2] = h & 0xff; | - | ||||||||||||||||||
622 | if (!EVP_DigestInit_ex(mctx, evpmd,
| 0 | ||||||||||||||||||
623 | ((void *)0)
| 0 | ||||||||||||||||||
624 | )
| 0 | ||||||||||||||||||
625 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
626 | if (!EVP_DigestUpdate(mctx, seed_tmp, seed_len)
| 0 | ||||||||||||||||||
627 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
628 | if (!EVP_DigestUpdate(mctx, ggen, sizeof(ggen))
| 0 | ||||||||||||||||||
629 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
630 | if (!EVP_DigestUpdate(mctx, md, 3)
| 0 | ||||||||||||||||||
631 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
632 | if (!EVP_DigestFinal_ex(mctx, md,
| 0 | ||||||||||||||||||
633 | ((void *)0)
| 0 | ||||||||||||||||||
634 | )
| 0 | ||||||||||||||||||
635 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
636 | if (!BN_bin2bn(md, mdsize, test)
| 0 | ||||||||||||||||||
637 | goto never executed: err;goto 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)
| 0 | ||||||||||||||||||
641 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
642 | if (!BN_is_one(g)
| 0 | ||||||||||||||||||
643 | break; never executed: break; | 0 | ||||||||||||||||||
644 | if (idx < 0
| 0 | ||||||||||||||||||
645 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
646 | h++; | - | ||||||||||||||||||
647 | if (idx >= 0
| 0 | ||||||||||||||||||
648 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
649 | } never executed: end of block | 0 | ||||||||||||||||||
650 | - | |||||||||||||||||||
651 | if (!BN_GENCB_call(cb, 3, 1)
| 0 | ||||||||||||||||||
652 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
653 | - | |||||||||||||||||||
654 | ok = 1; | - | ||||||||||||||||||
655 | err: code before this statement never executed: err: | 0 | ||||||||||||||||||
656 | if (ok == 1
| 0 | ||||||||||||||||||
657 | if (p != ret->p
| 0 | ||||||||||||||||||
658 | BN_free(ret->p); | - | ||||||||||||||||||
659 | ret->p = BN_dup(p); | - | ||||||||||||||||||
660 | } never executed: end of block | 0 | ||||||||||||||||||
661 | if (q != ret->q
| 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 ==
| 0 | ||||||||||||||||||
668 | ((void *)0)
| 0 | ||||||||||||||||||
669 | || ret->q ==
| 0 | ||||||||||||||||||
670 | ((void *)0)
| 0 | ||||||||||||||||||
671 | || ret->g ==
| 0 | ||||||||||||||||||
672 | ((void *)0)
| 0 | ||||||||||||||||||
673 | ) { | - | ||||||||||||||||||
674 | ok = -1; | - | ||||||||||||||||||
675 | goto never executed: err;goto err; never executed: goto err; | 0 | ||||||||||||||||||
676 | } | - | ||||||||||||||||||
677 | if (counter_ret !=
| 0 | ||||||||||||||||||
678 | ((void *)0)
| 0 | ||||||||||||||||||
679 | ) | - | ||||||||||||||||||
680 | * never executed: counter_ret = counter;*counter_ret = counter; never executed: *counter_ret = counter; | 0 | ||||||||||||||||||
681 | if (h_ret !=
| 0 | ||||||||||||||||||
682 | ((void *)0)
| 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
| 0 | ||||||||||||||||||
688 | CRYPTO_free(seed_tmp, __FILE__, 603); never executed: CRYPTO_free(seed_tmp, __FILE__, 603); | 0 | ||||||||||||||||||
689 | if (ctx
| 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: ok;return ok; never executed: return ok; | 0 | ||||||||||||||||||
695 | } | - | ||||||||||||||||||
Switch to Source code | Preprocessed file |