OpenCoverage

bn_x931p.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_x931p.c
Switch to Source codePreprocessed file
LineSourceCount
1static int bn_x931_derive_pi(BIGNUM *pi, const BIGNUM *Xpi, BN_CTX *ctx,-
2 BN_GENCB *cb)-
3{-
4 int i = 0, is_prime;-
5 if (!BN_copy(pi, Xpi)
!BN_copy(pi, Xpi)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
6 return
never executed: return 0;
0;
never executed: return 0;
0
7 if (!BN_is_odd(pi)
!BN_is_odd(pi)Description
TRUEnever evaluated
FALSEnever evaluated
&& !BN_add_word(pi, 1)
!BN_add_word(pi, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
8 return
never executed: return 0;
0;
never executed: return 0;
0
9 for (;;) {-
10 i++;-
11 BN_GENCB_call(cb, 0, i);-
12-
13 is_prime = BN_is_prime_fasttest_ex(pi, 27, ctx, 1, cb);-
14 if (is_prime < 0
is_prime < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
15 return
never executed: return 0;
0;
never executed: return 0;
0
16 if (is_prime
is_primeDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
17 break;
never executed: break;
0
18 if (!BN_add_word(pi, 2)
!BN_add_word(pi, 2)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
19 return
never executed: return 0;
0;
never executed: return 0;
0
20 }
never executed: end of block
0
21 BN_GENCB_call(cb, 2, i);-
22 return
never executed: return 1;
1;
never executed: return 1;
0
23}-
24-
25-
26-
27-
28-
29-
30-
31int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,-
32 const BIGNUM *Xp, const BIGNUM *Xp1,-
33 const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx,-
34 BN_GENCB *cb)-
35{-
36 int ret = 0;-
37-
38 BIGNUM *t, *p1p2, *pm1;-
39-
40-
41 if (!BN_is_odd(e)
!BN_is_odd(e)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
42 return
never executed: return 0;
0;
never executed: return 0;
0
43-
44 BN_CTX_start(ctx);-
45 if (p1 ==
p1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
46 ((void *)0)
p1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
47 )-
48 p1 = BN_CTX_get(ctx);
never executed: p1 = BN_CTX_get(ctx);
0
49-
50 if (p2 ==
p2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
51 ((void *)0)
p2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
52 )-
53 p2 = BN_CTX_get(ctx);
never executed: p2 = BN_CTX_get(ctx);
0
54-
55 t = BN_CTX_get(ctx);-
56-
57 p1p2 = BN_CTX_get(ctx);-
58-
59 pm1 = BN_CTX_get(ctx);-
60-
61 if (pm1 ==
pm1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
62 ((void *)0)
pm1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
63 )-
64 goto
never executed: goto err;
err;
never executed: goto err;
0
65-
66 if (!bn_x931_derive_pi(p1, Xp1, ctx, cb)
!bn_x931_deriv... Xp1, ctx, cb)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
67 goto
never executed: goto err;
err;
never executed: goto err;
0
68-
69 if (!bn_x931_derive_pi(p2, Xp2, ctx, cb)
!bn_x931_deriv... Xp2, ctx, cb)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
70 goto
never executed: goto err;
err;
never executed: goto err;
0
71-
72 if (!BN_mul(p1p2, p1, p2, ctx)
!BN_mul(p1p2, p1, p2, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
73 goto
never executed: goto err;
err;
never executed: goto err;
0
74-
75-
76-
77 if (!BN_mod_inverse(p, p2, p1, ctx)
!BN_mod_invers..., p2, p1, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
78 goto
never executed: goto err;
err;
never executed: goto err;
0
79-
80 if (!BN_mul(p, p, p2, ctx)
!BN_mul(p, p, p2, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
81 goto
never executed: goto err;
err;
never executed: goto err;
0
82-
83 if (!BN_mod_inverse(t, p1, p2, ctx)
!BN_mod_invers..., p1, p2, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
84 goto
never executed: goto err;
err;
never executed: goto err;
0
85-
86 if (!BN_mul(t, t, p1, ctx)
!BN_mul(t, t, p1, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
87 goto
never executed: goto err;
err;
never executed: goto err;
0
88-
89 if (!BN_sub(p, p, t)
!BN_sub(p, p, t)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
90 goto
never executed: goto err;
err;
never executed: goto err;
0
91-
92 if (p->neg
p->negDescription
TRUEnever evaluated
FALSEnever evaluated
&& !BN_add(p, p, p1p2)
!BN_add(p, p, p1p2)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
93 goto
never executed: goto err;
err;
never executed: goto err;
0
94-
95-
96-
97 if (!BN_mod_sub(p, p, Xp, p1p2, ctx)
!BN_mod_sub(p,...Xp, p1p2, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
98 goto
never executed: goto err;
err;
never executed: goto err;
0
99-
100 if (!BN_add(p, p, Xp)
!BN_add(p, p, Xp)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
101 goto
never executed: goto err;
err;
never executed: goto err;
0
102-
103-
104-
105 for (;;) {-
106 int i = 1;-
107 BN_GENCB_call(cb, 0, i++);-
108 if (!BN_copy(pm1, p)
!BN_copy(pm1, p)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
109 goto
never executed: goto err;
err;
never executed: goto err;
0
110 if (!BN_sub_word(pm1, 1)
!BN_sub_word(pm1, 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
111 goto
never executed: goto err;
err;
never executed: goto err;
0
112 if (!BN_gcd(t, pm1, e, ctx)
!BN_gcd(t, pm1, e, ctx)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
113 goto
never executed: goto err;
err;
never executed: goto err;
0
114 if (BN_is_one(t)
BN_is_one(t)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
115-
116-
117-
118-
119-
120 int r = BN_is_prime_fasttest_ex(p, 50, ctx, 1, cb);-
121 if (r < 0
r < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
122 goto
never executed: goto err;
err;
never executed: goto err;
0
123 if (r
rDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
124 break;
never executed: break;
0
125 }
never executed: end of block
0
126 if (!BN_add(p, p, p1p2)
!BN_add(p, p, p1p2)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
127 goto
never executed: goto err;
err;
never executed: goto err;
0
128 }
never executed: end of block
0
129-
130 BN_GENCB_call(cb, 3, 0);-
131-
132 ret = 1;-
133-
134 err:
code before this statement never executed: err:
0
135-
136 BN_CTX_end(ctx);-
137-
138 return
never executed: return ret;
ret;
never executed: return ret;
0
139}-
140-
141-
142-
143-
144-
145-
146int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx)-
147{-
148 BIGNUM *t;-
149 int i;-
150-
151-
152-
153-
154 if ((
(nbits < 1024)Description
TRUEnever evaluated
FALSEnever evaluated
nbits < 1024)
(nbits < 1024)Description
TRUEnever evaluated
FALSEnever evaluated
|| (
(nbits & 0xff)Description
TRUEnever evaluated
FALSEnever evaluated
nbits & 0xff)
(nbits & 0xff)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
155 return
never executed: return 0;
0;
never executed: return 0;
0
156 nbits >>= 1;-
157-
158-
159-
160-
161-
162 if (!BN_priv_rand(Xp, nbits, 1, 0)
!BN_priv_rand(Xp, nbits, 1, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
163 goto
never executed: goto err;
err;
never executed: goto err;
0
164-
165 BN_CTX_start(ctx);-
166 t = BN_CTX_get(ctx);-
167 if (t ==
t == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
168 ((void *)0)
t == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
169 )-
170 goto
never executed: goto err;
err;
never executed: goto err;
0
171-
172 for (i = 0; i < 1000
i < 1000Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
173 if (!BN_priv_rand(Xq, nbits, 1, 0)
!BN_priv_rand(Xq, nbits, 1, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
174 goto
never executed: goto err;
err;
never executed: goto err;
0
175-
176-
177 if (!BN_sub(t, Xp, Xq)
!BN_sub(t, Xp, Xq)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
178 goto
never executed: goto err;
err;
never executed: goto err;
0
179 if (BN_num_bits(t) > (nbits - 100)
BN_num_bits(t) > (nbits - 100)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
180 break;
never executed: break;
0
181 }
never executed: end of block
0
182-
183 BN_CTX_end(ctx);-
184-
185 if (i < 1000
i < 1000Description
TRUEnever evaluated
FALSEnever evaluated
)
0
186 return
never executed: return 1;
1;
never executed: return 1;
0
187-
188 return
never executed: return 0;
0;
never executed: return 0;
0
189-
190 err:-
191 BN_CTX_end(ctx);-
192 return
never executed: return 0;
0;
never executed: return 0;
0
193}-
194int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2,-
195 BIGNUM *Xp1, BIGNUM *Xp2,-
196 const BIGNUM *Xp,-
197 const BIGNUM *e, BN_CTX *ctx, BN_GENCB *cb)-
198{-
199 int ret = 0;-
200-
201 BN_CTX_start(ctx);-
202 if (Xp1 ==
Xp1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
203 ((void *)0)
Xp1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
204 )-
205 Xp1 = BN_CTX_get(ctx);
never executed: Xp1 = BN_CTX_get(ctx);
0
206 if (Xp2 ==
Xp2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
207 ((void *)0)
Xp2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
208 )-
209 Xp2 = BN_CTX_get(ctx);
never executed: Xp2 = BN_CTX_get(ctx);
0
210 if (Xp1 ==
Xp1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
211 ((void *)0)
Xp1 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
212 || Xp2 ==
Xp2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
213 ((void *)0)
Xp2 == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
214 )-
215 goto
never executed: goto error;
error;
never executed: goto error;
0
216-
217 if (!BN_priv_rand(Xp1, 101, 0, 0)
!BN_priv_rand(Xp1, 101, 0, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
218 goto
never executed: goto error;
error;
never executed: goto error;
0
219 if (!BN_priv_rand(Xp2, 101, 0, 0)
!BN_priv_rand(Xp2, 101, 0, 0)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
220 goto
never executed: goto error;
error;
never executed: goto error;
0
221 if (!BN_X931_derive_prime_ex(p, p1, p2, Xp, Xp1, Xp2, e, ctx, cb)
!BN_X931_deriv...2, e, ctx, cb)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
222 goto
never executed: goto error;
error;
never executed: goto error;
0
223-
224 ret = 1;-
225-
226 error:
code before this statement never executed: error:
0
227 BN_CTX_end(ctx);-
228-
229 return
never executed: return ret;
ret;
never executed: return ret;
0
230-
231}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2