OpenCoverage

bn_x931p.c

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

Generated by Squish Coco 4.2.2