OpenCoverage

ecs_ossl.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/ecdsa/ecs_ossl.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4static int ecdsa_prepare_digest(const unsigned char *dgst, int dgst_len,-
5 BIGNUM *order, BIGNUM *ret);-
6static ECDSA_SIG *ecdsa_do_sign(const unsigned char *dgst, int dgst_len,-
7 const BIGNUM *, const BIGNUM *, EC_KEY *eckey);-
8static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp,-
9 BIGNUM **rp);-
10static int ecdsa_do_verify(const unsigned char *dgst, int dgst_len,-
11 const ECDSA_SIG *sig, EC_KEY *eckey);-
12-
13static ECDSA_METHOD openssl_ecdsa_meth = {-
14 .name = "OpenSSL ECDSA method",-
15 .ecdsa_do_sign = ecdsa_do_sign,-
16 .ecdsa_sign_setup = ecdsa_sign_setup,-
17 .ecdsa_do_verify = ecdsa_do_verify-
18};-
19-
20const ECDSA_METHOD *-
21ECDSA_OpenSSL(void)-
22{-
23 return
executed 1 time by 1 test: return &openssl_ecdsa_meth;
Executed by:
  • ecdsatest
&openssl_ecdsa_meth;
executed 1 time by 1 test: return &openssl_ecdsa_meth;
Executed by:
  • ecdsatest
1
24}-
25-
26static int-
27ecdsa_prepare_digest(const unsigned char *dgst, int dgst_len, BIGNUM *order,-
28 BIGNUM *ret)-
29{-
30 int dgst_bits, order_bits;-
31-
32 if (!BN_bin2bn(dgst, dgst_len, ret)
!BN_bin2bn(dgs...dgst_len, ret)Description
TRUEnever evaluated
FALSEevaluated 455 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-455
33 ERR_put_error(42,(0xfff),(3),__FILE__,97);-
34 return
never executed: return 0;
0;
never executed: return 0;
0
35 }-
36-
37-
38 dgst_bits = 8 * dgst_len;-
39 order_bits = BN_num_bits(order);-
40 if (dgst_bits > order_bits
dgst_bits > order_bitsDescription
TRUEnever evaluated
FALSEevaluated 455 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-455
41 if (!BN_rshift(ret, ret, dgst_bits - order_bits)
!BN_rshift(ret... - order_bits)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
42 ERR_put_error(42,(0xfff),(3),__FILE__,106);-
43 return
never executed: return 0;
0;
never executed: return 0;
0
44 }-
45 }
never executed: end of block
0
46-
47 return
executed 455 times by 1 test: return 1;
Executed by:
  • ecdsatest
1;
executed 455 times by 1 test: return 1;
Executed by:
  • ecdsatest
455
48}-
49-
50static int-
51ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp)-
52{-
53 BN_CTX *ctx = ctx_in;-
54 BIGNUM *k = -
55 ((void *)0)-
56 , *r = -
57 ((void *)0)-
58 , *order = -
59 ((void *)0)-
60 , *X = -
61 ((void *)0)-
62 ;-
63 EC_POINT *point = -
64 ((void *)0)-
65 ;-
66 const EC_GROUP *group;-
67 int order_bits, ret = 0;-
68-
69 if (eckey ==
eckey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
70 ((void *)0)
eckey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
71 || (
(group = EC_KE...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
group = EC_KEY_get0_group(eckey)) ==
(group = EC_KE...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
72 ((void *)0)
(group = EC_KE...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
73 ) {-
74 ERR_put_error(42,(0xfff),((3|64)),__FILE__,124);-
75 return
never executed: return 0;
0;
never executed: return 0;
0
76 }-
77-
78 if (ctx ==
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
79 ((void *)0)
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
80 ) {-
81 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
82 ((void *)0)
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
83 ) {-
84 ERR_put_error(42,(0xfff),((1|64)),__FILE__,130);-
85 return
never executed: return 0;
0;
never executed: return 0;
0
86 }-
87 }
never executed: end of block
0
88-
89 if ((
(k = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
k = BN_new()) ==
(k = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
90 ((void *)0)
(k = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
91 || (
(r = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
r = BN_new()) ==
(r = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
92 ((void *)0)
(r = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
93 ||-
94 (
(order = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
order = BN_new()) ==
(order = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
95 ((void *)0)
(order = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
96 || (
(X = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
X = BN_new()) ==
(X = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
97 ((void *)0)
(X = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
98 ) {-
99 ERR_put_error(42,(0xfff),((1|64)),__FILE__,137);-
100 goto
never executed: goto err;
err;
never executed: goto err;
0
101 }-
102 if ((
(point = EC_PO...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
point = EC_POINT_new(group)) ==
(point = EC_PO...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
103 ((void *)0)
(point = EC_PO...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
104 ) {-
105 ERR_put_error(42,(0xfff),(16),__FILE__,141);-
106 goto
never executed: goto err;
err;
never executed: goto err;
0
107 }-
108 if (!EC_GROUP_get_order(group, order, ctx)
!EC_GROUP_get_...p, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
109 ERR_put_error(42,(0xfff),(16),__FILE__,145);-
110 goto
never executed: goto err;
err;
never executed: goto err;
0
111 }-
112-
113-
114 order_bits = BN_num_bits(order);-
115 if (!BN_set_bit(k, order_bits)
!BN_set_bit(k, order_bits)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
||
0-76
116 !BN_set_bit(r, order_bits)
!BN_set_bit(r, order_bits)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
||
0-76
117 !BN_set_bit(X, order_bits)
!BN_set_bit(X, order_bits)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
)
0-76
118 goto
never executed: goto err;
err;
never executed: goto err;
0
119-
120 do {-
121 do {-
122 if (!BN_rand_range(k, order)
!BN_rand_range(k, order)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
123 ERR_put_error(42,(0xfff),(104),__FILE__,160)-
124 ;-
125 goto
never executed: goto err;
err;
never executed: goto err;
0
126 }-
127 }
executed 76 times by 1 test: end of block
Executed by:
  • ecdsatest
while (((
((k)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
k)->top == 0)
((k)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
);
0-76
128 if (!BN_add(r, k, order)
!BN_add(r, k, order)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
||
0-76
129 !BN_add(X, r, order)
!BN_add(X, r, order)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
||
0-76
130 !BN_copy(k, BN_num_bits(r) > order_bits ? r : X)
!BN_copy(k, BN..._bits ? r : X)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
)
0-76
131 goto
never executed: goto err;
err;
never executed: goto err;
0
132-
133 ((k)->flags|=(0x04));-
134-
135-
136 if (!EC_POINT_mul(group, point, k,
!EC_POINT_mul(...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
137 ((void *)0)
!EC_POINT_mul(...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
138 ,
!EC_POINT_mul(...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
139 ((void *)0)
!EC_POINT_mul(...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
140 , ctx)
!EC_POINT_mul(...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
141 ERR_put_error(42,(0xfff),(16),__FILE__,188);-
142 goto
never executed: goto err;
err;
never executed: goto err;
0
143 }-
144 if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) ==
EC_METHOD_get_...group)) == 406Description
TRUEevaluated 42 times by 1 test
Evaluated by:
  • ecdsatest
FALSEevaluated 34 times by 1 test
Evaluated by:
  • ecdsatest
34-42
145 406
EC_METHOD_get_...group)) == 406Description
TRUEevaluated 42 times by 1 test
Evaluated by:
  • ecdsatest
FALSEevaluated 34 times by 1 test
Evaluated by:
  • ecdsatest
) {
34-42
146 if (!EC_POINT_get_affine_coordinates_GFp(group, point,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 42 times by 1 test
Evaluated by:
  • ecdsatest
0-42
147 X,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 42 times by 1 test
Evaluated by:
  • ecdsatest
0-42
148 ((void *)0)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 42 times by 1 test
Evaluated by:
  • ecdsatest
0-42
149 , ctx)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 42 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-42
150 ERR_put_error(42,(0xfff),(16),__FILE__,195);-
151 goto
never executed: goto err;
err;
never executed: goto err;
0
152 }-
153 }
executed 42 times by 1 test: end of block
Executed by:
  • ecdsatest
42
154-
155 else {-
156 if (!EC_POINT_get_affine_coordinates_GF2m(group, point,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 34 times by 1 test
Evaluated by:
  • ecdsatest
0-34
157 X,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 34 times by 1 test
Evaluated by:
  • ecdsatest
0-34
158 ((void *)0)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 34 times by 1 test
Evaluated by:
  • ecdsatest
0-34
159 , ctx)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 34 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-34
160 ERR_put_error(42,(0xfff),(16),__FILE__,203);-
161 goto
never executed: goto err;
err;
never executed: goto err;
0
162 }-
163 }
executed 34 times by 1 test: end of block
Executed by:
  • ecdsatest
34
164-
165 if (!BN_nnmod(r, X, order, ctx)
!BN_nnmod(r, X, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
166 ERR_put_error(42,(0xfff),(3),__FILE__,209);-
167 goto
never executed: goto err;
err;
never executed: goto err;
0
168 }-
169 }
executed 76 times by 1 test: end of block
Executed by:
  • ecdsatest
while (((
((r)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
r)->top == 0)
((r)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
);
0-76
170-
171 if (!BN_mod_inverse_ct(k, k, order, ctx)
!BN_mod_invers...k, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
172 ERR_put_error(42,(0xfff),(3),__FILE__,215);-
173 goto
never executed: goto err;
err;
never executed: goto err;
0
174 }-
175 BN_clear_free(*rp);-
176 BN_clear_free(*kinvp);-
177 *rp = r;-
178 *kinvp = k;-
179 ret = 1;-
180-
181 err:
code before this statement executed 76 times by 1 test: err:
Executed by:
  • ecdsatest
76
182 if (ret == 0
ret == 0Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
183 BN_clear_free(k);-
184 BN_clear_free(r);-
185 }
never executed: end of block
0
186 if (ctx_in ==
ctx_in == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
187 ((void *)0)
ctx_in == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
188 )-
189 BN_CTX_free(ctx);
never executed: BN_CTX_free(ctx);
0
190 BN_free(order);-
191 EC_POINT_free(point);-
192 BN_clear_free(X);-
193 return
executed 76 times by 1 test: return (ret);
Executed by:
  • ecdsatest
(ret);
executed 76 times by 1 test: return (ret);
Executed by:
  • ecdsatest
76
194}-
195-
196-
197static ECDSA_SIG *-
198ecdsa_do_sign(const unsigned char *dgst, int dgst_len,-
199 const BIGNUM *in_kinv, const BIGNUM *in_r, EC_KEY *eckey)-
200{-
201 BIGNUM *b = -
202 ((void *)0)-
203 , *binv = -
204 ((void *)0)-
205 , *bm = -
206 ((void *)0)-
207 , *bxr = -
208 ((void *)0)-
209 ;-
210 BIGNUM *kinv = -
211 ((void *)0)-
212 , *m = -
213 ((void *)0)-
214 , *order = -
215 ((void *)0)-
216 , *range = -
217 ((void *)0)-
218 , *s;-
219 const BIGNUM *ckinv, *priv_key;-
220 BN_CTX *ctx = -
221 ((void *)0)-
222 ;-
223 const EC_GROUP *group;-
224 ECDSA_SIG *ret;-
225 ECDSA_DATA *ecdsa;-
226 int ok = 0;-
227-
228 ecdsa = ecdsa_check(eckey);-
229 group = EC_KEY_get0_group(eckey);-
230 priv_key = EC_KEY_get0_private_key(eckey);-
231-
232 if (group ==
group == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
233 ((void *)0)
group == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
234 || priv_key ==
priv_key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
235 ((void *)0)
priv_key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
236 || ecdsa ==
ecdsa == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
237 ((void *)0)
ecdsa == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
238 ) {-
239 ERR_put_error(42,(0xfff),((3|64)),__FILE__,256);-
240 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
241 ((void *)0)
never executed: return ((void *)0) ;
0
242 ;
never executed: return ((void *)0) ;
0
243 }-
244-
245 if ((
(ret = ECDSA_S...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
ret = ECDSA_SIG_new()) ==
(ret = ECDSA_S...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
246 ((void *)0)
(ret = ECDSA_S...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
247 ) {-
248 ERR_put_error(42,(0xfff),((1|64)),__FILE__,261);-
249 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
250 ((void *)0)
never executed: return ((void *)0) ;
0
251 ;
never executed: return ((void *)0) ;
0
252 }-
253 s = ret->s;-
254-
255 if ((
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
ctx = BN_CTX_new()) ==
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
256 ((void *)0)
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
257 || (
(order = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
order = BN_new()) ==
(order = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
258 ((void *)0)
(order = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
259 ||-
260 (
(range = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
range = BN_new()) ==
(range = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
261 ((void *)0)
(range = BN_ne...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
262 || (
(b = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
b = BN_new()) ==
(b = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
263 ((void *)0)
(b = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
264 ||-
265 (
(binv = BN_new...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
binv = BN_new()) ==
(binv = BN_new...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
266 ((void *)0)
(binv = BN_new...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
267 || (
(bm = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
bm = BN_new()) ==
(bm = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
268 ((void *)0)
(bm = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
269 ||-
270 (
(bxr = BN_new(...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
bxr = BN_new()) ==
(bxr = BN_new(...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
271 ((void *)0)
(bxr = BN_new(...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
272 || (
(m = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
m = BN_new()) ==
(m = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
273 ((void *)0)
(m = BN_new()) == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
274 ) {-
275 ERR_put_error(42,(0xfff),((1|64)),__FILE__,270);-
276 goto
never executed: goto err;
err;
never executed: goto err;
0
277 }-
278-
279 if (!EC_GROUP_get_order(group, order, ctx)
!EC_GROUP_get_...p, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
280 ERR_put_error(42,(0xfff),(16),__FILE__,275);-
281 goto
never executed: goto err;
err;
never executed: goto err;
0
282 }-
283-
284 if (!ecdsa_prepare_digest(dgst, dgst_len, order, m)
!ecdsa_prepare...len, order, m)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
)
0-76
285 goto
never executed: goto err;
err;
never executed: goto err;
0
286-
287 do {-
288 if (in_kinv ==
in_kinv == ((void *)0)Description
TRUEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
FALSEnever evaluated
0-76
289 ((void *)0)
in_kinv == ((void *)0)Description
TRUEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
FALSEnever evaluated
0-76
290 || in_r ==
in_r == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
291 ((void *)0)
in_r == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
292 ) {-
293 if (!ECDSA_sign_setup(eckey, ctx, &kinv, &ret->r)
!ECDSA_sign_se...kinv, &ret->r)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
294 ERR_put_error(42,(0xfff),(42),__FILE__,285);-
295 goto
never executed: goto err;
err;
never executed: goto err;
0
296 }-
297 ckinv = kinv;-
298 }
executed 76 times by 1 test: end of block
Executed by:
  • ecdsatest
else {
76
299 ckinv = in_kinv;-
300 if (BN_copy(ret->r, in_r) ==
BN_copy(ret->r...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
301 ((void *)0)
BN_copy(ret->r...== ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
302 ) {-
303 ERR_put_error(42,(0xfff),((1|64)),__FILE__,292);-
304 goto
never executed: goto err;
err;
never executed: goto err;
0
305 }-
306 }
never executed: end of block
0
307 if (!BN_sub(range, order, BN_value_one())
!BN_sub(range,...N_value_one())Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
308 ERR_put_error(42,(0xfff),(3),__FILE__,312);-
309 goto
never executed: goto err;
err;
never executed: goto err;
0
310 }-
311 if (!BN_rand_range(b, range)
!BN_rand_range(b, range)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
312 ERR_put_error(42,(0xfff),(3),__FILE__,316);-
313 goto
never executed: goto err;
err;
never executed: goto err;
0
314 }-
315 if (!BN_add(b, b, BN_value_one())
!BN_add(b, b, BN_value_one())Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
316 ERR_put_error(42,(0xfff),(3),__FILE__,320);-
317 goto
never executed: goto err;
err;
never executed: goto err;
0
318 }-
319-
320 if (BN_mod_inverse_ct(binv, b, order, ctx) ==
BN_mod_inverse...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
321 ((void *)0)
BN_mod_inverse...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
0-76
322 ) {-
323 ERR_put_error(42,(0xfff),(3),__FILE__,325);-
324 goto
never executed: goto err;
err;
never executed: goto err;
0
325 }-
326-
327 if (!BN_mod_mul(bxr, b, priv_key, order, ctx)
!BN_mod_mul(bx...y, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
328 ERR_put_error(42,(0xfff),(3),__FILE__,330);-
329 goto
never executed: goto err;
err;
never executed: goto err;
0
330 }-
331 if (!BN_mod_mul(bxr, bxr, ret->r, order, ctx)
!BN_mod_mul(bx...r, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
332 ERR_put_error(42,(0xfff),(3),__FILE__,334);-
333 goto
never executed: goto err;
err;
never executed: goto err;
0
334 }-
335 if (!BN_mod_mul(bm, b, m, order, ctx)
!BN_mod_mul(bm...m, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
336 ERR_put_error(42,(0xfff),(3),__FILE__,338);-
337 goto
never executed: goto err;
err;
never executed: goto err;
0
338 }-
339 if (!BN_mod_add(s, bm, bxr, order, ctx)
!BN_mod_add(s,...r, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
340 ERR_put_error(42,(0xfff),(3),__FILE__,342);-
341 goto
never executed: goto err;
err;
never executed: goto err;
0
342 }-
343 if (!BN_mod_mul(s, s, binv, order, ctx)
!BN_mod_mul(s,...v, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
344 ERR_put_error(42,(0xfff),(3),__FILE__,346);-
345 goto
never executed: goto err;
err;
never executed: goto err;
0
346 }-
347 if (!BN_mod_mul(s, s, ckinv, order, ctx)
!BN_mod_mul(s,...v, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
348 ERR_put_error(42,(0xfff),(3),__FILE__,350);-
349 goto
never executed: goto err;
err;
never executed: goto err;
0
350 }-
351-
352 if (((
((s)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
s)->top == 0)
((s)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
353-
354-
355-
356-
357 if (in_kinv !=
in_kinv != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
358 ((void *)0)
in_kinv != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
359 && in_r !=
in_r != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
360 ((void *)0)
in_r != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
361 ) {-
362 ERR_put_error(42,(0xfff),(106),__FILE__,360);-
363 goto
never executed: goto err;
err;
never executed: goto err;
0
364 }-
365 }
never executed: end of block
else
0
366-
367 break;
executed 76 times by 1 test: break;
Executed by:
  • ecdsatest
76
368 } while (1);-
369-
370 ok = 1;-
371-
372 err:
code before this statement executed 76 times by 1 test: err:
Executed by:
  • ecdsatest
76
373 if (ok == 0
ok == 0Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-76
374 ECDSA_SIG_free(ret);-
375 ret = -
376 ((void *)0)-
377 ;-
378 }
never executed: end of block
0
379 BN_CTX_free(ctx);-
380 BN_clear_free(b);-
381 BN_clear_free(binv);-
382 BN_clear_free(bm);-
383 BN_clear_free(bxr);-
384 BN_clear_free(kinv);-
385 BN_clear_free(m);-
386 BN_free(order);-
387 BN_free(range);-
388 return
executed 76 times by 1 test: return ret;
Executed by:
  • ecdsatest
ret;
executed 76 times by 1 test: return ret;
Executed by:
  • ecdsatest
76
389}-
390-
391static int-
392ecdsa_do_verify(const unsigned char *dgst, int dgst_len, const ECDSA_SIG *sig,-
393 EC_KEY *eckey)-
394{-
395 BN_CTX *ctx;-
396 BIGNUM *order, *u1, *u2, *m, *X;-
397 EC_POINT *point = -
398 ((void *)0)-
399 ;-
400 const EC_GROUP *group;-
401 const EC_POINT *pub_key;-
402 int ret = -1;-
403-
404 if (eckey ==
eckey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
405 ((void *)0)
eckey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
406 || (
(group = EC_KE...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
group = EC_KEY_get0_group(eckey)) ==
(group = EC_KE...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
407 ((void *)0)
(group = EC_KE...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
408 ||-
409 (
(pub_key = EC_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
pub_key = EC_KEY_get0_public_key(eckey)) ==
(pub_key = EC_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
410 ((void *)0)
(pub_key = EC_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
411 || sig ==
sig == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
412 ((void *)0)
sig == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
413 ) {-
414 ERR_put_error(42,(0xfff),(103),__FILE__,400);-
415 return
never executed: return -1;
-1;
never executed: return -1;
0
416 }-
417-
418 if ((
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
ctx = BN_CTX_new()) ==
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
419 ((void *)0)
(ctx = BN_CTX_...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
420 ) {-
421 ERR_put_error(42,(0xfff),((1|64)),__FILE__,405);-
422 return
never executed: return -1;
-1;
never executed: return -1;
0
423 }-
424 BN_CTX_start(ctx);-
425 order = BN_CTX_get(ctx);-
426 u1 = BN_CTX_get(ctx);-
427 u2 = BN_CTX_get(ctx);-
428 m = BN_CTX_get(ctx);-
429 X = BN_CTX_get(ctx);-
430 if (X ==
X == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
431 ((void *)0)
X == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
0-380
432 ) {-
433 ERR_put_error(42,(0xfff),(3),__FILE__,415);-
434 goto
never executed: goto err;
err;
never executed: goto err;
0
435 }-
436-
437 if (!EC_GROUP_get_order(group, order, ctx)
!EC_GROUP_get_...p, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-380
438 ERR_put_error(42,(0xfff),(16),__FILE__,420);-
439 goto
never executed: goto err;
err;
never executed: goto err;
0
440 }-
441-
442-
443 if (((
((sig->r)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
sig->r)->top == 0)
((sig->r)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
|| ((
((sig->r)->neg != 0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
sig->r)->neg != 0)
((sig->r)->neg != 0)Description
TRUEnever evaluated
FALSEevaluated 380 times by 1 test
Evaluated by:
  • ecdsatest
||
0-380
444 BN_ucmp(sig->r, order) >= 0
BN_ucmp(sig->r, order) >= 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • ecdsatest
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
||
1-379
445 ((
((sig->s)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
sig->s)->top == 0)
((sig->s)->top == 0)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
|| ((
((sig->s)->neg != 0)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
sig->s)->neg != 0)
((sig->s)->neg != 0)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
||
0-379
446 BN_ucmp(sig->s, order) >= 0
BN_ucmp(sig->s, order) >= 0Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-379
447 ERR_put_error(42,(0xfff),(100),__FILE__,429);-
448 ret = 0;-
449 goto
executed 1 time by 1 test: goto err;
Executed by:
  • ecdsatest
err;
executed 1 time by 1 test: goto err;
Executed by:
  • ecdsatest
1
450 }-
451-
452 if (!ecdsa_prepare_digest(dgst, dgst_len, order, m)
!ecdsa_prepare...len, order, m)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
)
0-379
453 goto
never executed: goto err;
err;
never executed: goto err;
0
454-
455 if (!BN_mod_inverse_ct(u2, sig->s, order, ctx)
!BN_mod_invers...s, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-379
456 ERR_put_error(42,(0xfff),(3),__FILE__,438);-
457 goto
never executed: goto err;
err;
never executed: goto err;
0
458 }-
459 if (!BN_mod_mul(u1, m, u2, order, ctx)
!BN_mod_mul(u1...2, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-379
460 ERR_put_error(42,(0xfff),(3),__FILE__,442);-
461 goto
never executed: goto err;
err;
never executed: goto err;
0
462 }-
463 if (!BN_mod_mul(u2, sig->r, u2, order, ctx)
!BN_mod_mul(u2...2, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-379
464 ERR_put_error(42,(0xfff),(3),__FILE__,446);-
465 goto
never executed: goto err;
err;
never executed: goto err;
0
466 }-
467-
468-
469 if ((
(point = EC_PO...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
point = EC_POINT_new(group)) ==
(point = EC_PO...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
0-379
470 ((void *)0)
(point = EC_PO...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
0-379
471 ) {-
472 ERR_put_error(42,(0xfff),((1|64)),__FILE__,452);-
473 goto
never executed: goto err;
err;
never executed: goto err;
0
474 }-
475 if (!EC_POINT_mul(group, point, u1, pub_key, u2, ctx)
!EC_POINT_mul(..._key, u2, ctx)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-379
476 ERR_put_error(42,(0xfff),(16),__FILE__,456);-
477 goto
never executed: goto err;
err;
never executed: goto err;
0
478 }-
479 if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) ==
EC_METHOD_get_...group)) == 406Description
TRUEevaluated 210 times by 1 test
Evaluated by:
  • ecdsatest
FALSEevaluated 169 times by 1 test
Evaluated by:
  • ecdsatest
169-210
480 406
EC_METHOD_get_...group)) == 406Description
TRUEevaluated 210 times by 1 test
Evaluated by:
  • ecdsatest
FALSEevaluated 169 times by 1 test
Evaluated by:
  • ecdsatest
) {
169-210
481 if (!EC_POINT_get_affine_coordinates_GFp(group, point, X,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 210 times by 1 test
Evaluated by:
  • ecdsatest
0-210
482 ((void *)0)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 210 times by 1 test
Evaluated by:
  • ecdsatest
0-210
483 ,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 210 times by 1 test
Evaluated by:
  • ecdsatest
0-210
484 ctx)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 210 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-210
485 ERR_put_error(42,(0xfff),(16),__FILE__,463);-
486 goto
never executed: goto err;
err;
never executed: goto err;
0
487 }-
488 }
executed 210 times by 1 test: end of block
Executed by:
  • ecdsatest
210
489-
490 else {-
491 if (!EC_POINT_get_affine_coordinates_GF2m(group, point, X,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 169 times by 1 test
Evaluated by:
  • ecdsatest
0-169
492 ((void *)0)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 169 times by 1 test
Evaluated by:
  • ecdsatest
0-169
493 ,
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 169 times by 1 test
Evaluated by:
  • ecdsatest
0-169
494 ctx)
!EC_POINT_get_...id *)0) , ctx)Description
TRUEnever evaluated
FALSEevaluated 169 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-169
495 ERR_put_error(42,(0xfff),(16),__FILE__,471);-
496 goto
never executed: goto err;
err;
never executed: goto err;
0
497 }-
498 }
executed 169 times by 1 test: end of block
Executed by:
  • ecdsatest
169
499-
500 if (!BN_nnmod(u1, X, order, ctx)
!BN_nnmod(u1, X, order, ctx)Description
TRUEnever evaluated
FALSEevaluated 379 times by 1 test
Evaluated by:
  • ecdsatest
) {
0-379
501 ERR_put_error(42,(0xfff),(3),__FILE__,477);-
502 goto
never executed: goto err;
err;
never executed: goto err;
0
503 }-
504-
505-
506 ret = (BN_ucmp(u1, sig->r) == 0);-
507-
508 err:
code before this statement executed 379 times by 1 test: err:
Executed by:
  • ecdsatest
379
509 BN_CTX_end(ctx);-
510 BN_CTX_free(ctx);-
511 EC_POINT_free(point);-
512 return
executed 380 times by 1 test: return ret;
Executed by:
  • ecdsatest
ret;
executed 380 times by 1 test: return ret;
Executed by:
  • ecdsatest
380
513}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2