OpenCoverage

rsa_gen.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rsa/rsa_gen.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2static int rsa_builtin_keygen(RSA *rsa, int bits, int primes, BIGNUM *e_value,-
3 BN_GENCB *cb);-
4int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)-
5{-
6 if (rsa->meth->rsa_keygen !=
rsa->meth->rsa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
7 ((void *)0)
rsa->meth->rsa...!= ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
8 )-
9 return
never executed: return rsa->meth->rsa_keygen(rsa, bits, e_value, cb);
rsa->meth->rsa_keygen(rsa, bits, e_value, cb);
never executed: return rsa->meth->rsa_keygen(rsa, bits, e_value, cb);
0
10-
11 return
never executed: return RSA_generate_multi_prime_key(rsa, bits, 2, e_value, cb);
RSA_generate_multi_prime_key(rsa, bits, 2,
never executed: return RSA_generate_multi_prime_key(rsa, bits, 2, e_value, cb);
0
12 e_value, cb);
never executed: return RSA_generate_multi_prime_key(rsa, bits, 2, e_value, cb);
0
13}-
14-
15int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes,-
16 BIGNUM *e_value, BN_GENCB *cb)-
17{-
18-
19 if (rsa->meth->rsa_multi_prime_keygen !=
rsa->meth->rsa...!= ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 22 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-22
20 ((void *)0)
rsa->meth->rsa...!= ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 22 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-22
21 ) {-
22 return
never executed: return rsa->meth->rsa_multi_prime_keygen(rsa, bits, primes, e_value, cb);
rsa->meth->rsa_multi_prime_keygen(rsa, bits, primes,
never executed: return rsa->meth->rsa_multi_prime_keygen(rsa, bits, primes, e_value, cb);
0
23 e_value, cb);
never executed: return rsa->meth->rsa_multi_prime_keygen(rsa, bits, primes, e_value, cb);
0
24 } else if (rsa->meth->rsa_keygen !=
rsa->meth->rsa...!= ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 22 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-22
25 ((void *)0)
rsa->meth->rsa...!= ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 22 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-22
26 ) {-
27-
28-
29-
30-
31-
32-
33 if (primes == 2
primes == 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
34 return
never executed: return rsa->meth->rsa_keygen(rsa, bits, e_value, cb);
rsa->meth->rsa_keygen(rsa, bits, e_value, cb);
never executed: return rsa->meth->rsa_keygen(rsa, bits, e_value, cb);
0
35 else-
36 return
never executed: return 0;
0;
never executed: return 0;
0
37 }-
38-
39 return
executed 22 times by 1 test: return rsa_builtin_keygen(rsa, bits, primes, e_value, cb);
Executed by:
  • libcrypto.so.1.1
rsa_builtin_keygen(rsa, bits, primes, e_value, cb);
executed 22 times by 1 test: return rsa_builtin_keygen(rsa, bits, primes, e_value, cb);
Executed by:
  • libcrypto.so.1.1
22
40}-
41-
42static int rsa_builtin_keygen(RSA *rsa, int bits, int primes, BIGNUM *e_value,-
43 BN_GENCB *cb)-
44{-
45 BIGNUM *r0 = -
46 ((void *)0)-
47 , *r1 = -
48 ((void *)0)-
49 , *r2 = -
50 ((void *)0)-
51 , *tmp, *prime;-
52 int ok = -1, n = 0, bitsr[5], bitse = 0;-
53 int i = 0, quo = 0, rmd = 0, adj = 0, retries = 0;-
54 RSA_PRIME_INFO *pinfo = -
55 ((void *)0)-
56 ;-
57 struct stack_st_RSA_PRIME_INFO *prime_infos = -
58 ((void *)0)-
59 ;-
60 BN_CTX *ctx = -
61 ((void *)0)-
62 ;-
63 unsigned long bitst = 0;-
64 unsigned long error = 0;-
65-
66 if (bits < 512
bits < 512Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3-19
67 ok = 0;-
68 ERR_put_error(4,(129),(120),__FILE__,78);-
69 goto
executed 3 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
err;
executed 3 times by 1 test: goto err;
Executed by:
  • libcrypto.so.1.1
3
70 }-
71-
72 if (primes < 2
primes < 2Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| primes > rsa_multip_cap(bits)
primes > rsa_multip_cap(bits)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-19
73 ok = 0;-
74 ERR_put_error(4,(129),(165),__FILE__,84);-
75 goto
never executed: goto err;
err;
never executed: goto err;
0
76 }-
77-
78 ctx = BN_CTX_new();-
79 if (ctx ==
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
80 ((void *)0)
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
81 )-
82 goto
never executed: goto err;
err;
never executed: goto err;
0
83 BN_CTX_start(ctx);-
84 r0 = BN_CTX_get(ctx);-
85 r1 = BN_CTX_get(ctx);-
86 r2 = BN_CTX_get(ctx);-
87 if (r2 ==
r2 == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
88 ((void *)0)
r2 == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
89 )-
90 goto
never executed: goto err;
err;
never executed: goto err;
0
91-
92-
93 quo = bits / primes;-
94 rmd = bits % primes;-
95-
96 for (i = 0; i < primes
i < primesDescription
TRUEevaluated 50 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++)
19-50
97 bitsr[i] = (
(i < rmd)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 42 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
i < rmd)
(i < rmd)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 42 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
? quo + 1 : quo;
executed 50 times by 1 test: bitsr[i] = (i < rmd) ? quo + 1 : quo;
Executed by:
  • libcrypto.so.1.1
8-50
98-
99-
100 if (!rsa->n
!rsa->nDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->n = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->n = BN_new()) ==
((rsa->n = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
101 ((void *)0)
((rsa->n = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
102 )
((rsa->n = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
103 goto
never executed: goto err;
err;
never executed: goto err;
0
104 if (!rsa->d
!rsa->dDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->d = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->d = BN_secure_new()) ==
((rsa->d = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
105 ((void *)0)
((rsa->d = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
106 )
((rsa->d = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
107 goto
never executed: goto err;
err;
never executed: goto err;
0
108 if (!rsa->e
!rsa->eDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->e = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->e = BN_new()) ==
((rsa->e = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
109 ((void *)0)
((rsa->e = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
110 )
((rsa->e = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
111 goto
never executed: goto err;
err;
never executed: goto err;
0
112 if (!rsa->p
!rsa->pDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->p = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->p = BN_secure_new()) ==
((rsa->p = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
113 ((void *)0)
((rsa->p = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
114 )
((rsa->p = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
115 goto
never executed: goto err;
err;
never executed: goto err;
0
116 if (!rsa->q
!rsa->qDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->q = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->q = BN_secure_new()) ==
((rsa->q = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
117 ((void *)0)
((rsa->q = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
118 )
((rsa->q = BN_... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
119 goto
never executed: goto err;
err;
never executed: goto err;
0
120 if (!rsa->dmp1
!rsa->dmp1Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->dmp1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->dmp1 = BN_secure_new()) ==
((rsa->dmp1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
121 ((void *)0)
((rsa->dmp1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
122 )
((rsa->dmp1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
123 goto
never executed: goto err;
err;
never executed: goto err;
0
124 if (!rsa->dmq1
!rsa->dmq1Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->dmq1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->dmq1 = BN_secure_new()) ==
((rsa->dmq1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
125 ((void *)0)
((rsa->dmq1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
126 )
((rsa->dmq1 = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
127 goto
never executed: goto err;
err;
never executed: goto err;
0
128 if (!rsa->iqmp
!rsa->iqmpDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& ((
((rsa->iqmp = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
rsa->iqmp = BN_secure_new()) ==
((rsa->iqmp = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
129 ((void *)0)
((rsa->iqmp = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
130 )
((rsa->iqmp = ... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
131 goto
never executed: goto err;
err;
never executed: goto err;
0
132-
133-
134 if (primes > 2
primes > 2Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 13 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
6-13
135 rsa->version = 1;-
136 prime_infos = sk_RSA_PRIME_INFO_new_reserve(-
137 ((void *)0)-
138 , primes - 2);-
139 if (prime_infos ==
prime_infos == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-6
140 ((void *)0)
prime_infos == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-6
141 )-
142 goto
never executed: goto err;
err;
never executed: goto err;
0
143 if (rsa->prime_infos !=
rsa->prime_inf...!= ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-6
144 ((void *)0)
rsa->prime_inf...!= ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-6
145 ) {-
146-
147 sk_RSA_PRIME_INFO_pop_free(rsa->prime_infos, rsa_multip_info_free);-
148 }
never executed: end of block
0
149 rsa->prime_infos = prime_infos;-
150-
151-
152 for (i = 2; i < primes
i < primesDescription
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
6-12
153 pinfo = rsa_multip_info_new();-
154 if (pinfo ==
pinfo == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-12
155 ((void *)0)
pinfo == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-12
156 )-
157 goto
never executed: goto err;
err;
never executed: goto err;
0
158 (void)sk_RSA_PRIME_INFO_push(prime_infos, pinfo);-
159 }
executed 12 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
12
160 }
executed 6 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
6
161-
162 if (BN_copy(rsa->e, e_value) ==
BN_copy(rsa->e...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
163 ((void *)0)
BN_copy(rsa->e...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
164 )-
165 goto
never executed: goto err;
err;
never executed: goto err;
0
166-
167-
168 for (i = 0; i < primes
i < primesDescription
TRUEevaluated 50 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
19-50
169 adj = 0;-
170 retries = 0;-
171-
172 if (i == 0
i == 0Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 31 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
19-31
173 prime = rsa->p;-
174 }
executed 19 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else if (i == 1
i == 1Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
12-19
175 prime = rsa->q;-
176 }
executed 19 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
19
177 pinfo = sk_RSA_PRIME_INFO_value(prime_infos, i - 2);-
178 prime = pinfo->r;-
179 }
executed 12 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
12
180 BN_set_flags(prime, 0x04);-
181-
182 for (;;) {-
183 redo:-
184 if (!BN_generate_prime_ex(prime, bitsr[i] + adj, 0,
!BN_generate_p...oid *)0) , cb)Description
TRUEnever evaluated
FALSEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-64
185 ((void *)0)
!BN_generate_p...oid *)0) , cb)Description
TRUEnever evaluated
FALSEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-64
186 ,
!BN_generate_p...oid *)0) , cb)Description
TRUEnever evaluated
FALSEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-64
187 ((void *)0)
!BN_generate_p...oid *)0) , cb)Description
TRUEnever evaluated
FALSEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-64
188 , cb)
!BN_generate_p...oid *)0) , cb)Description
TRUEnever evaluated
FALSEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-64
189 goto
never executed: goto err;
err;
never executed: goto err;
0
190-
191-
192-
193-
194 {-
195 int j;-
196-
197 for (j = 0; j < i
j < iDescription
TRUEevaluated 92 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; j++) {
64-92
198 BIGNUM *prev_prime;-
199-
200 if (j == 0
j == 0Description
TRUEevaluated 45 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 47 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
45-47
201 prev_prime = rsa->p;
executed 45 times by 1 test: prev_prime = rsa->p;
Executed by:
  • libcrypto.so.1.1
45
202 else if (j == 1
j == 1Description
TRUEevaluated 26 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 21 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
21-26
203 prev_prime = rsa->q;
executed 26 times by 1 test: prev_prime = rsa->q;
Executed by:
  • libcrypto.so.1.1
26
204 else-
205 prev_prime = sk_RSA_PRIME_INFO_value(prime_infos,
executed 21 times by 1 test: prev_prime = sk_RSA_PRIME_INFO_value(prime_infos, j - 2)->r;
Executed by:
  • libcrypto.so.1.1
21
206 j - 2)->r;
executed 21 times by 1 test: prev_prime = sk_RSA_PRIME_INFO_value(prime_infos, j - 2)->r;
Executed by:
  • libcrypto.so.1.1
21
207-
208 if (!BN_cmp(prime, prev_prime)
!BN_cmp(prime, prev_prime)Description
TRUEnever evaluated
FALSEevaluated 92 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-92
209 goto
never executed: goto redo;
redo;
never executed: goto redo;
0
210 }-
211 }
executed 92 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
92
212 }-
213 if (!BN_sub(r2, prime, BN_value_one())
!BN_sub(r2, pr...N_value_one())Description
TRUEnever evaluated
FALSEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-64
214 goto
never executed: goto err;
err;
never executed: goto err;
0
215 ERR_set_mark();-
216 BN_set_flags(r2, 0x04);-
217 if (BN_mod_inverse(r1, r2, rsa->e, ctx) !=
BN_mod_inverse...!= ((void *)0)Description
TRUEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-64
218 ((void *)0)
BN_mod_inverse...!= ((void *)0)Description
TRUEevaluated 64 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-64
219 ) {-
220-
221 break;
executed 64 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
64
222 }-
223 error = ERR_peek_last_error();-
224 if ((
(int)(((error)...& 0x0FFL) == 3Description
TRUEnever evaluated
FALSEnever evaluated
int)(((error) >> 24L) & 0x0FFL) == 3
(int)(((error)...& 0x0FFL) == 3Description
TRUEnever evaluated
FALSEnever evaluated
0
225 && (
(int)( (error)...0xFFFL) == 108Description
TRUEnever evaluated
FALSEnever evaluated
int)( (error) & 0xFFFL) == 108
(int)( (error)...0xFFFL) == 108Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
226-
227 ERR_pop_to_mark();-
228 }
never executed: end of block
else {
0
229 goto
never executed: goto err;
err;
never executed: goto err;
0
230 }-
231 if (!BN_GENCB_call(cb, 2, n++)
!BN_GENCB_call(cb, 2, n++)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
232 goto
never executed: goto err;
err;
never executed: goto err;
0
233 }
never executed: end of block
0
234-
235 bitse += bitsr[i];-
236-
237-
238 if (i == 1
i == 1Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 45 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
19-45
239-
240 if (!BN_mul(r1, rsa->p, rsa->q, ctx)
!BN_mul(r1, rs..., rsa->q, ctx)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
241 goto
never executed: goto err;
err;
never executed: goto err;
0
242 }
executed 19 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else if (i != 0
i != 0Description
TRUEevaluated 26 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
19-26
243-
244 if (!BN_mul(r1, rsa->n, prime, ctx)
!BN_mul(r1, rs...n, prime, ctx)Description
TRUEnever evaluated
FALSEevaluated 26 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-26
245 goto
never executed: goto err;
err;
never executed: goto err;
0
246 }
executed 26 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
26
247-
248 if (!BN_GENCB_call(cb, 3, i)
!BN_GENCB_call(cb, 3, i)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
249 goto
never executed: goto err;
err;
never executed: goto err;
0
250 continue;
executed 19 times by 1 test: continue;
Executed by:
  • libcrypto.so.1.1
19
251 }-
252 if (!BN_rshift(r2, r1, bitse - 4)
!BN_rshift(r2, r1, bitse - 4)Description
TRUEnever evaluated
FALSEevaluated 45 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-45
253 goto
never executed: goto err;
err;
never executed: goto err;
0
254 bitst = BN_get_word(r2);-
255-
256 if (bitst < 0x9
bitst < 0x9Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 35 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| bitst > 0xF
bitst > 0xFDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 31 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
4-35
257 bitse -= bitsr[i];-
258 if (!BN_GENCB_call(cb, 2, n++)
!BN_GENCB_call(cb, 2, n++)Description
TRUEnever evaluated
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-14
259 goto
never executed: goto err;
err;
never executed: goto err;
0
260 if (primes > 4
primes > 4Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
4-10
261 if (bitst < 0x9
bitst < 0x9Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
4-6
262 adj++;
executed 6 times by 1 test: adj++;
Executed by:
  • libcrypto.so.1.1
6
263 else-
264 adj--;
executed 4 times by 1 test: adj--;
Executed by:
  • libcrypto.so.1.1
4
265 } else if (retries == 4
retries == 4Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-4
266-
267-
268-
269-
270-
271 i = -1;-
272 bitse = 0;-
273 continue;
never executed: continue;
0
274 }-
275 retries++;-
276 goto
executed 14 times by 1 test: goto redo;
Executed by:
  • libcrypto.so.1.1
redo;
executed 14 times by 1 test: goto redo;
Executed by:
  • libcrypto.so.1.1
14
277 }-
278-
279 if (i > 1
i > 1Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& BN_copy(pinfo->pp, rsa->n) ==
BN_copy(pinfo-...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
280 ((void *)0)
BN_copy(pinfo-...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-12
281 )-
282 goto
never executed: goto err;
err;
never executed: goto err;
0
283 if (BN_copy(rsa->n, r1) ==
BN_copy(rsa->n...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 31 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-31
284 ((void *)0)
BN_copy(rsa->n...== ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 31 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-31
285 )-
286 goto
never executed: goto err;
err;
never executed: goto err;
0
287 if (!BN_GENCB_call(cb, 3, i)
!BN_GENCB_call(cb, 3, i)Description
TRUEnever evaluated
FALSEevaluated 31 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-31
288 goto
never executed: goto err;
err;
never executed: goto err;
0
289 }
executed 31 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
31
290-
291 if (BN_cmp(rsa->p, rsa->q) < 0
BN_cmp(rsa->p, rsa->q) < 0Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 10 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
9-10
292 tmp = rsa->p;-
293 rsa->p = rsa->q;-
294 rsa->q = tmp;-
295 }
executed 9 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
9
296-
297-
298-
299-
300 if (!BN_sub(r1, rsa->p, BN_value_one())
!BN_sub(r1, rs...N_value_one())Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
301 goto
never executed: goto err;
err;
never executed: goto err;
0
302-
303 if (!BN_sub(r2, rsa->q, BN_value_one())
!BN_sub(r2, rs...N_value_one())Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
304 goto
never executed: goto err;
err;
never executed: goto err;
0
305-
306 if (!BN_mul(r0, r1, r2, ctx)
!BN_mul(r0, r1, r2, ctx)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
307 goto
never executed: goto err;
err;
never executed: goto err;
0
308-
309 for (i = 2; i < primes
i < primesDescription
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
12-19
310 pinfo = sk_RSA_PRIME_INFO_value(prime_infos, i - 2);-
311-
312 if (!BN_sub(pinfo->d, pinfo->r, BN_value_one())
!BN_sub(pinfo-...N_value_one())Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-12
313 goto
never executed: goto err;
err;
never executed: goto err;
0
314 if (!BN_mul(r0, r0, pinfo->d, ctx)
!BN_mul(r0, r0, pinfo->d, ctx)Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-12
315 goto
never executed: goto err;
err;
never executed: goto err;
0
316 }
executed 12 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
12
317-
318 {-
319 BIGNUM *pr0 = BN_new();-
320-
321 if (pr0 ==
pr0 == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
322 ((void *)0)
pr0 == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
323 )-
324 goto
never executed: goto err;
err;
never executed: goto err;
0
325-
326 BN_with_flags(pr0, r0, 0x04);-
327 if (!BN_mod_inverse(rsa->d, rsa->e, pr0, ctx)
!BN_mod_invers...->e, pr0, ctx)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-19
328 BN_free(pr0);-
329 goto
never executed: goto err;
err;
never executed: goto err;
0
330 }-
331-
332 BN_free(pr0);-
333 }-
334-
335 {-
336 BIGNUM *d = BN_new();-
337-
338 if (d ==
d == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
339 ((void *)0)
d == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
340 )-
341 goto
never executed: goto err;
err;
never executed: goto err;
0
342-
343 BN_with_flags(d, rsa->d, 0x04);-
344-
345-
346 if (!BN_div(
!BN_div( ((voi...d),(r1),(ctx))Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
347 ((void *)0)
!BN_div( ((voi...d),(r1),(ctx))Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
348 ,(rsa->dmp1),(d),(r1),(ctx))
!BN_div( ((voi...d),(r1),(ctx))Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
349 || !BN_div(
!BN_div( ((voi...d),(r2),(ctx))Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
350 ((void *)0)
!BN_div( ((voi...d),(r2),(ctx))Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
351 ,(rsa->dmq1),(d),(r2),(ctx))
!BN_div( ((voi...d),(r2),(ctx))Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-19
352 BN_free(d);-
353 goto
never executed: goto err;
err;
never executed: goto err;
0
354 }-
355-
356-
357 for (i = 2; i < primes
i < primesDescription
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
12-19
358 pinfo = sk_RSA_PRIME_INFO_value(prime_infos, i - 2);-
359-
360 if (!BN_div(
!BN_div( ((voi...nfo->d),(ctx))Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-12
361 ((void *)0)
!BN_div( ((voi...nfo->d),(ctx))Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-12
362 ,(pinfo->d),(d),(pinfo->d),(ctx))
!BN_div( ((voi...nfo->d),(ctx))Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-12
363 BN_free(d);-
364 goto
never executed: goto err;
err;
never executed: goto err;
0
365 }-
366 }
executed 12 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
12
367-
368-
369 BN_free(d);-
370 }-
371-
372 {-
373 BIGNUM *p = BN_new();-
374-
375 if (p ==
p == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
376 ((void *)0)
p == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-19
377 )-
378 goto
never executed: goto err;
err;
never executed: goto err;
0
379 BN_with_flags(p, rsa->p, 0x04);-
380-
381-
382 if (!BN_mod_inverse(rsa->iqmp, rsa->q, p, ctx)
!BN_mod_invers...sa->q, p, ctx)Description
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-19
383 BN_free(p);-
384 goto
never executed: goto err;
err;
never executed: goto err;
0
385 }-
386-
387-
388 for (i = 2; i < primes
i < primesDescription
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
12-19
389 pinfo = sk_RSA_PRIME_INFO_value(prime_infos, i - 2);-
390 BN_with_flags(p, pinfo->r, 0x04);-
391 if (!BN_mod_inverse(pinfo->t, pinfo->pp, p, ctx)
!BN_mod_invers...o->pp, p, ctx)Description
TRUEnever evaluated
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-12
392 BN_free(p);-
393 goto
never executed: goto err;
err;
never executed: goto err;
0
394 }-
395 }
executed 12 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
12
396-
397-
398 BN_free(p);-
399 }-
400-
401 ok = 1;-
402 err:
code before this statement executed 19 times by 1 test: err:
Executed by:
  • libcrypto.so.1.1
19
403 if (ok == -1
ok == -1Description
TRUEnever evaluated
FALSEevaluated 22 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-22
404 ERR_put_error(4,(129),(3),__FILE__,387);-
405 ok = 0;-
406 }
never executed: end of block
0
407 if (ctx !=
ctx != ((void *)0)Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
3-19
408 ((void *)0)
ctx != ((void *)0)Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
3-19
409 )-
410 BN_CTX_end(ctx);
executed 19 times by 1 test: BN_CTX_end(ctx);
Executed by:
  • libcrypto.so.1.1
19
411 BN_CTX_free(ctx);-
412 return
executed 22 times by 1 test: return ok;
Executed by:
  • libcrypto.so.1.1
ok;
executed 22 times by 1 test: return ok;
Executed by:
  • libcrypto.so.1.1
22
413}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2