OpenCoverage

ecx_meth.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ecx_meth.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2typedef enum {-
3 KEY_OP_PUBLIC,-
4 KEY_OP_PRIVATE,-
5 KEY_OP_KEYGEN-
6} ecx_key_op_t;-
7-
8-
9static int ecx_key_op(EVP_PKEY *pkey, int id, const X509_ALGOR *palg,-
10 const unsigned char *p, int plen, ecx_key_op_t op)-
11{-
12 ECX_KEY *key = -
13 ((void *)0)-
14 ;-
15 unsigned char *privkey, *pubkey;-
16-
17 if (op != KEY_OP_KEYGEN
op != KEY_OP_KEYGENDescription
TRUEevaluated 3347 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 6273 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3347-6273
18 if (palg !=
palg != ((void *)0)Description
TRUEevaluated 194 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3153 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
194-3153
19 ((void *)0)
palg != ((void *)0)Description
TRUEevaluated 194 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3153 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
194-3153
20 ) {-
21 int ptype;-
22-
23-
24 X509_ALGOR_get0(-
25 ((void *)0)-
26 , &ptype, -
27 ((void *)0)-
28 , palg);-
29 if (ptype != -1
ptype != -1Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 190 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
4-190
30 ERR_put_error(16,(266),(102),__FILE__,58);-
31 return
executed 4 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 4 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
4
32 }-
33 }
executed 190 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
190
34-
35 if (p ==
p == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3339 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4-3339
36 ((void *)0)
p == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3339 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4-3339
37 || plen != (((
(id) == 1034Description
TRUEevaluated 3140 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 199 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
id) == 1034
(id) == 1034Description
TRUEevaluated 3140 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 199 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| (
(id) == 1087Description
TRUEevaluated 87 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 112 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
id) == 1087
(id) == 1087Description
TRUEevaluated 87 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 112 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) ? 32 : ((id) == 1035 ? 56 : 57))
plen != (((id)...35 ? 56 : 57))Description
TRUEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3325 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
14-3325
38 ERR_put_error(16,(266),(102),__FILE__,64);-
39 return
executed 18 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 18 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
18
40 }-
41 }
executed 3325 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3325
42-
43 key = CRYPTO_zalloc(sizeof(*key), __FILE__, 69);-
44 if (key ==
key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 9598 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-9598
45 ((void *)0)
key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 9598 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-9598
46 ) {-
47 ERR_put_error(16,(266),((1|64)),__FILE__,71);-
48 return
never executed: return 0;
0;
never executed: return 0;
0
49 }-
50 pubkey = key->pubkey;-
51-
52 if (op == KEY_OP_PUBLIC
op == KEY_OP_PUBLICDescription
TRUEevaluated 3237 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 6361 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3237-6361
53 memcpy(pubkey, p, plen);-
54 }
executed 3237 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
3237
55 privkey = key->privkey = CRYPTO_secure_malloc((((id) == 1034 || (id) == 1087) ? 32 : ((id) == 1035 ? 56 : 57)), __FILE__, 79);-
56 if (privkey ==
privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6361 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-6361
57 ((void *)0)
privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 6361 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-6361
58 ) {-
59 ERR_put_error(16,(266),((1|64)),__FILE__,81);-
60 goto
never executed: goto err;
err;
never executed: goto err;
0
61 }-
62 if (op == KEY_OP_KEYGEN
op == KEY_OP_KEYGENDescription
TRUEevaluated 6273 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 88 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
88-6273
63 if (RAND_priv_bytes(privkey, (((id) == 1034 || (id) == 1087) ? 32 : ((id) == 1035 ? 56 : 57))) <= 0
RAND_priv_byte...6 : 57))) <= 0Description
TRUEnever evaluated
FALSEevaluated 6273 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-6273
64 CRYPTO_secure_free(privkey, __FILE__, 86);-
65 key->privkey = -
66 ((void *)0)-
67 ;-
68 goto
never executed: goto err;
err;
never executed: goto err;
0
69 }-
70 if (id == 1034
id == 1034Description
TRUEevaluated 6220 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 53 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
53-6220
71 privkey[0] &= 248;-
72 privkey[32 - 1] &= 127;-
73 privkey[32 - 1] |= 64;-
74 }
executed 6220 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else if (id == 1035
id == 1035Description
TRUEevaluated 53 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-6220
75 privkey[0] &= 252;-
76 privkey[56 - 1] |= 128;-
77 }
executed 53 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
53
78 }
executed 6273 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
6273
79 memcpy(privkey, p, (((id) == 1034 || (id) == 1087) ? 32 : ((id) == 1035 ? 56 : 57)));-
80 }
executed 88 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
88
81 switch (id) {-
82 case
executed 6229 times by 1 test: case 1034:
Executed by:
  • libcrypto.so.1.1
1034:
executed 6229 times by 1 test: case 1034:
Executed by:
  • libcrypto.so.1.1
6229
83 X25519_public_from_private(pubkey, privkey);-
84 break;
executed 6229 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
6229
85 case
executed 35 times by 1 test: case 1087:
Executed by:
  • libcrypto.so.1.1
1087:
executed 35 times by 1 test: case 1087:
Executed by:
  • libcrypto.so.1.1
35
86 ED25519_public_from_private(pubkey, privkey);-
87 break;
executed 35 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
35
88 case
executed 59 times by 1 test: case 1035:
Executed by:
  • libcrypto.so.1.1
1035:
executed 59 times by 1 test: case 1035:
Executed by:
  • libcrypto.so.1.1
59
89 X448_public_from_private(pubkey, privkey);-
90 break;
executed 59 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
59
91 case
executed 38 times by 1 test: case 1088:
Executed by:
  • libcrypto.so.1.1
1088:
executed 38 times by 1 test: case 1088:
Executed by:
  • libcrypto.so.1.1
38
92 ED448_public_from_private(pubkey, privkey);-
93 break;
executed 38 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
38
94 }-
95 }
executed 6361 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
6361
96-
97 EVP_PKEY_assign(pkey, id, key);-
98 return
executed 9598 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 9598 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
9598
99 err:-
100 CRYPTO_free(key, __FILE__, 120);-
101 return
never executed: return 0;
0;
never executed: return 0;
0
102}-
103-
104static int ecx_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)-
105{-
106 const ECX_KEY *ecxkey = pkey->pkey.ecx;-
107 unsigned char *penc;-
108-
109 if (ecxkey ==
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
110 ((void *)0)
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
111 ) {-
112 ERR_put_error(16,(268),(116),__FILE__,130);-
113 return
never executed: return 0;
0;
never executed: return 0;
0
114 }-
115-
116 penc = CRYPTO_memdup((ecxkey->pubkey), ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57)), __FILE__, 134);-
117 if (penc ==
penc == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
118 ((void *)0)
penc == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
119 ) {-
120 ERR_put_error(16,(268),((1|64)),__FILE__,136);-
121 return
never executed: return 0;
0;
never executed: return 0;
0
122 }-
123-
124 if (!X509_PUBKEY_set0_param(pk, OBJ_nid2obj(pkey->ameth->pkey_id),
!X509_PUBKEY_s...5 ? 56 : 57)))Description
TRUEnever evaluated
FALSEnever evaluated
0
125 -1,
!X509_PUBKEY_s...5 ? 56 : 57)))Description
TRUEnever evaluated
FALSEnever evaluated
0
126 ((void *)0)
!X509_PUBKEY_s...5 ? 56 : 57)))Description
TRUEnever evaluated
FALSEnever evaluated
0
127 , penc, ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57)))
!X509_PUBKEY_s...5 ? 56 : 57)))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
128 CRYPTO_free(penc, __FILE__, 142);-
129 ERR_put_error(16,(268),((1|64)),__FILE__,143);-
130 return
never executed: return 0;
0;
never executed: return 0;
0
131 }-
132 return
never executed: return 1;
1;
never executed: return 1;
0
133}-
134-
135static int ecx_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)-
136{-
137 const unsigned char *p;-
138 int pklen;-
139 X509_ALGOR *palg;-
140-
141 if (!X509_PUBKEY_get0_param(
!X509_PUBKEY_g...&palg, pubkey)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-118
142 ((void *)0)
!X509_PUBKEY_g...&palg, pubkey)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-118
143 , &p, &pklen, &palg, pubkey)
!X509_PUBKEY_g...&palg, pubkey)Description
TRUEnever evaluated
FALSEevaluated 118 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-118
144 return
never executed: return 0;
0;
never executed: return 0;
0
145 return
executed 118 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, palg, p, pklen, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
ecx_key_op(pkey, pkey->ameth->pkey_id, palg, p, pklen,
executed 118 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, palg, p, pklen, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
118
146 KEY_OP_PUBLIC);
executed 118 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, palg, p, pklen, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
118
147}-
148-
149static int ecx_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b)-
150{-
151 const ECX_KEY *akey = a->pkey.ecx;-
152 const ECX_KEY *bkey = b->pkey.ecx;-
153-
154 if (akey ==
akey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 82 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-82
155 ((void *)0)
akey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 82 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-82
156 || bkey ==
bkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 82 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-82
157 ((void *)0)
bkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 82 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-82
158 )-
159 return
never executed: return -2;
-2;
never executed: return -2;
0
160-
161 return
executed 82 times by 1 test: return CRYPTO_memcmp(akey->pubkey, bkey->pubkey, ((((a)->ameth->pkey_id) == 1034 || ((a)->ameth->pkey_id) == 1087) ? 32 : (((a)->ameth->pkey_id) == 1035 ? 56 : 57))) == 0;
Executed by:
  • libcrypto.so.1.1
CRYPTO_memcmp(akey->pubkey, bkey->pubkey, ((((a)->ameth->pkey_id) == 1034 || ((a)->ameth->pkey_id) == 1087) ? 32 : (((a)->ameth->pkey_id) == 1035 ? 56 : 57))) == 0;
executed 82 times by 1 test: return CRYPTO_memcmp(akey->pubkey, bkey->pubkey, ((((a)->ameth->pkey_id) == 1034 || ((a)->ameth->pkey_id) == 1087) ? 32 : (((a)->ameth->pkey_id) == 1035 ? 56 : 57))) == 0;
Executed by:
  • libcrypto.so.1.1
82
162}-
163-
164static int ecx_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8)-
165{-
166 const unsigned char *p;-
167 int plen;-
168 ASN1_OCTET_STRING *oct = -
169 ((void *)0)-
170 ;-
171 const X509_ALGOR *palg;-
172 int rv;-
173-
174 if (!PKCS8_pkey_get0(
!PKCS8_pkey_ge...en, &palg, p8)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-76
175 ((void *)0)
!PKCS8_pkey_ge...en, &palg, p8)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-76
176 , &p, &plen, &palg, p8)
!PKCS8_pkey_ge...en, &palg, p8)Description
TRUEnever evaluated
FALSEevaluated 76 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-76
177 return
never executed: return 0;
0;
never executed: return 0;
0
178-
179 oct = d2i_ASN1_OCTET_STRING(-
180 ((void *)0)-
181 , &p, plen);-
182 if (oct ==
oct == ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 75 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-75
183 ((void *)0)
oct == ((void *)0)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 75 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-75
184 ) {-
185 p = -
186 ((void *)0)-
187 ;-
188 plen = 0;-
189 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
1
190 p = ASN1_STRING_get0_data(oct);-
191 plen = ASN1_STRING_length(oct);-
192 }
executed 75 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
75
193-
194 rv = ecx_key_op(pkey, pkey->ameth->pkey_id, palg, p, plen, KEY_OP_PRIVATE);-
195 ASN1_OCTET_STRING_free(oct);-
196 return
executed 76 times by 1 test: return rv;
Executed by:
  • libcrypto.so.1.1
rv;
executed 76 times by 1 test: return rv;
Executed by:
  • libcrypto.so.1.1
76
197}-
198-
199static int ecx_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)-
200{-
201 const ECX_KEY *ecxkey = pkey->pkey.ecx;-
202 ASN1_OCTET_STRING oct;-
203 unsigned char *penc = -
204 ((void *)0)-
205 ;-
206 int penclen;-
207-
208 if (ecxkey ==
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
209 ((void *)0)
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
210 || ecxkey->privkey ==
ecxkey->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
211 ((void *)0)
ecxkey->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
212 ) {-
213 ERR_put_error(16,(267),(123),__FILE__,205);-
214 return
never executed: return 0;
0;
never executed: return 0;
0
215 }-
216-
217 oct.data = ecxkey->privkey;-
218 oct.length = ((((
((pkey)->ameth...ey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey)->ameth->pkey_id) == 1034
((pkey)->ameth...ey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| ((
((pkey)->ameth...ey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey)->ameth->pkey_id) == 1087
((pkey)->ameth...ey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) ? 32 : (((
((pkey)->ameth...ey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey)->ameth->pkey_id) == 1035
((pkey)->ameth...ey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
? 56 : 57));
1-3
219 oct.flags = 0;-
220-
221 penclen = i2d_ASN1_OCTET_STRING(&oct, &penc);-
222 if (penclen < 0
penclen < 0Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-4
223 ERR_put_error(16,(267),((1|64)),__FILE__,215);-
224 return
never executed: return 0;
0;
never executed: return 0;
0
225 }-
226-
227 if (!PKCS8_pkey_set0(p8, OBJ_nid2obj(pkey->ameth->pkey_id), 0,
!PKCS8_pkey_se...penc, penclen)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
228 -1,
!PKCS8_pkey_se...penc, penclen)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
229 ((void *)0)
!PKCS8_pkey_se...penc, penclen)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
230 , penc, penclen)
!PKCS8_pkey_se...penc, penclen)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-4
231 CRYPTO_clear_free(penc, penclen, __FILE__, 221);-
232 ERR_put_error(16,(267),((1|64)),__FILE__,222);-
233 return
never executed: return 0;
0;
never executed: return 0;
0
234 }-
235-
236 return
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
4
237}-
238-
239static int ecx_size(const EVP_PKEY *pkey)-
240{-
241 return
never executed: return ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57));
((((
((pkey)->ameth...ey_id) == 1034Description
TRUEnever evaluated
FALSEnever evaluated
pkey)->ameth->pkey_id) == 1034
((pkey)->ameth...ey_id) == 1034Description
TRUEnever evaluated
FALSEnever evaluated
|| ((
((pkey)->ameth...ey_id) == 1087Description
TRUEnever evaluated
FALSEnever evaluated
pkey)->ameth->pkey_id) == 1087
((pkey)->ameth...ey_id) == 1087Description
TRUEnever evaluated
FALSEnever evaluated
) ? 32 : (((
((pkey)->ameth...ey_id) == 1035Description
TRUEnever evaluated
FALSEnever evaluated
pkey)->ameth->pkey_id) == 1035
((pkey)->ameth...ey_id) == 1035Description
TRUEnever evaluated
FALSEnever evaluated
? 56 : 57));
never executed: return ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57));
0
242}-
243-
244static int ecx_bits(const EVP_PKEY *pkey)-
245{-
246 if (((
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 121 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
pkey->ameth->pkey_id) == 1034
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 121 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
|| (
(pkey->ameth->pkey_id) == 1087Description
TRUEnever evaluated
FALSEnever evaluated
pkey->ameth->pkey_id) == 1087
(pkey->ameth->pkey_id) == 1087Description
TRUEnever evaluated
FALSEnever evaluated
)) {
0-121
247 return
executed 121 times by 1 test: return 253;
Executed by:
  • libcrypto.so.1.1
253;
executed 121 times by 1 test: return 253;
Executed by:
  • libcrypto.so.1.1
121
248 } else if(((
((pkey->ameth-...y_id) == 1035)Description
TRUEnever evaluated
FALSEnever evaluated
pkey->ameth->pkey_id) == 1035)
((pkey->ameth-...y_id) == 1035)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
249 return
never executed: return 448;
448;
never executed: return 448;
0
250 } else {-
251 return
never executed: return 456;
456;
never executed: return 456;
0
252 }-
253}-
254-
255static int ecx_security_bits(const EVP_PKEY *pkey)-
256{-
257 if (((
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 75 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1034
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 75 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| (
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 38 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 37 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1087
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 38 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 37 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)) {
1-75
258 return
executed 39 times by 1 test: return 128;
Executed by:
  • libcrypto.so.1.1
128;
executed 39 times by 1 test: return 128;
Executed by:
  • libcrypto.so.1.1
39
259 } else {-
260 return
executed 37 times by 1 test: return 224;
Executed by:
  • libcrypto.so.1.1
224;
executed 37 times by 1 test: return 224;
Executed by:
  • libcrypto.so.1.1
37
261 }-
262}-
263-
264static void ecx_free(EVP_PKEY *pkey)-
265{-
266 if (pkey->pkey.ecx !=
pkey->pkey.ecx != ((void *)0)Description
TRUEevaluated 9598 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 22 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
22-9598
267 ((void *)0)
pkey->pkey.ecx != ((void *)0)Description
TRUEevaluated 9598 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 22 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
22-9598
268 )-
269 CRYPTO_secure_clear_free(pkey->pkey.ecx->privkey, ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57)), __FILE__, 257);
executed 9598 times by 1 test: CRYPTO_secure_clear_free(pkey->pkey.ecx->privkey, ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57)), __FILE__, 257);
Executed by:
  • libcrypto.so.1.1
9598
270 CRYPTO_free(pkey->pkey.ecx, __FILE__, 258);-
271}
executed 9620 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
9620
272-
273-
274static int ecx_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b)-
275{-
276 return
executed 3917 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 3917 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
3917
277}-
278-
279static int ecx_key_print(BIO *bp, const EVP_PKEY *pkey, int indent,-
280 ASN1_PCTX *ctx, ecx_key_op_t op)-
281{-
282 const ECX_KEY *ecxkey = pkey->pkey.ecx;-
283 const char *nm = OBJ_nid2ln(pkey->ameth->pkey_id);-
284-
285 if (op == KEY_OP_PRIVATE
op == KEY_OP_PRIVATEDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
3-4
286 if (ecxkey ==
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
287 ((void *)0)
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
288 || ecxkey->privkey ==
ecxkey->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
289 ((void *)0)
ecxkey->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
290 ) {-
291 if (BIO_printf(bp, "%*s<INVALID PRIVATE KEY>\n", indent, "") <= 0
BIO_printf(bp,...dent, "") <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
292 return
never executed: return 0;
0;
never executed: return 0;
0
293 return
never executed: return 1;
1;
never executed: return 1;
0
294 }-
295 if (BIO_printf(bp, "%*s%s Private-Key:\n", indent, "", nm) <= 0
BIO_printf(bp,..., "", nm) <= 0Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-4
296 return
never executed: return 0;
0;
never executed: return 0;
0
297 if (BIO_printf(bp, "%*spriv:\n", indent, "") <= 0
BIO_printf(bp,...dent, "") <= 0Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-4
298 return
never executed: return 0;
0;
never executed: return 0;
0
299 if (ASN1_buf_print(bp, ecxkey->privkey, ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57)),
ASN1_buf_print...dent + 4) == 0Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
300 indent + 4) == 0
ASN1_buf_print...dent + 4) == 0Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-4
301 return
never executed: return 0;
0;
never executed: return 0;
0
302 }
executed 4 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
4
303 if (ecxkey ==
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-3
304 ((void *)0)
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-3
305 ) {-
306 if (BIO_printf(bp, "%*s<INVALID PUBLIC KEY>\n", indent, "") <= 0
BIO_printf(bp,...dent, "") <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
307 return
never executed: return 0;
0;
never executed: return 0;
0
308 return
never executed: return 1;
1;
never executed: return 1;
0
309 }-
310 if (BIO_printf(bp, "%*s%s Public-Key:\n", indent, "", nm) <= 0
BIO_printf(bp,..., "", nm) <= 0Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-3
311 return
never executed: return 0;
0;
never executed: return 0;
0
312 }
executed 3 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3
313 if (BIO_printf(bp, "%*spub:\n", indent, "") <= 0
BIO_printf(bp,...dent, "") <= 0Description
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-7
314 return
never executed: return 0;
0;
never executed: return 0;
0
315-
316 if (ASN1_buf_print(bp, ecxkey->pubkey, ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57)),
ASN1_buf_print...dent + 4) == 0Description
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-7
317 indent + 4) == 0
ASN1_buf_print...dent + 4) == 0Description
TRUEnever evaluated
FALSEevaluated 7 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-7
318 return
never executed: return 0;
0;
never executed: return 0;
0
319 return
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
7
320}-
321-
322static int ecx_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent,-
323 ASN1_PCTX *ctx)-
324{-
325 return
executed 4 times by 1 test: return ecx_key_print(bp, pkey, indent, ctx, KEY_OP_PRIVATE);
Executed by:
  • libcrypto.so.1.1
ecx_key_print(bp, pkey, indent, ctx, KEY_OP_PRIVATE);
executed 4 times by 1 test: return ecx_key_print(bp, pkey, indent, ctx, KEY_OP_PRIVATE);
Executed by:
  • libcrypto.so.1.1
4
326}-
327-
328static int ecx_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent,-
329 ASN1_PCTX *ctx)-
330{-
331 return
executed 3 times by 1 test: return ecx_key_print(bp, pkey, indent, ctx, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
ecx_key_print(bp, pkey, indent, ctx, KEY_OP_PUBLIC);
executed 3 times by 1 test: return ecx_key_print(bp, pkey, indent, ctx, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
3
332}-
333-
334static int ecx_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)-
335{-
336 switch (op) {-
337-
338 case
executed 3125 times by 1 test: case 0x9:
Executed by:
  • libcrypto.so.1.1
0x9:
executed 3125 times by 1 test: case 0x9:
Executed by:
  • libcrypto.so.1.1
3125
339 return
executed 3125 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , arg2, arg1, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
ecx_key_op(pkey, pkey->ameth->pkey_id,
executed 3125 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , arg2, arg1, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
3125
340 ((void *)0)
executed 3125 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , arg2, arg1, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
3125
341 , arg2, arg1,
executed 3125 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , arg2, arg1, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
3125
342 KEY_OP_PUBLIC);
executed 3125 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , arg2, arg1, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
3125
343-
344 case
executed 5759 times by 1 test: case 0xa:
Executed by:
  • libcrypto.so.1.1
0xa:
executed 5759 times by 1 test: case 0xa:
Executed by:
  • libcrypto.so.1.1
5759
345 if (pkey->pkey.ecx !=
pkey->pkey.ecx != ((void *)0)Description
TRUEevaluated 5759 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-5759
346 ((void *)0)
pkey->pkey.ecx != ((void *)0)Description
TRUEevaluated 5759 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-5759
347 ) {-
348 unsigned char **ppt = arg2;-
349-
350 *ppt = CRYPTO_memdup((pkey->pkey.ecx->pubkey), ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57)), __FILE__, 328);-
351 if (*
*ppt != ((void *)0)Description
TRUEevaluated 5759 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
ppt !=
*ppt != ((void *)0)Description
TRUEevaluated 5759 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-5759
352 ((void *)0)
*ppt != ((void *)0)Description
TRUEevaluated 5759 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-5759
353 )-
354 return
executed 5759 times by 1 test: return ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57));
Executed by:
  • libcrypto.so.1.1
((((
((pkey)->ameth...ey_id) == 1034Description
TRUEevaluated 5699 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 60 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey)->ameth->pkey_id) == 1034
((pkey)->ameth...ey_id) == 1034Description
TRUEevaluated 5699 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 60 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| ((
((pkey)->ameth...ey_id) == 1087Description
TRUEnever evaluated
FALSEevaluated 60 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey)->ameth->pkey_id) == 1087
((pkey)->ameth...ey_id) == 1087Description
TRUEnever evaluated
FALSEevaluated 60 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) ? 32 : (((
((pkey)->ameth...ey_id) == 1035Description
TRUEevaluated 60 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
pkey)->ameth->pkey_id) == 1035
((pkey)->ameth...ey_id) == 1035Description
TRUEevaluated 60 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
? 56 : 57));
executed 5759 times by 1 test: return ((((pkey)->ameth->pkey_id) == 1034 || ((pkey)->ameth->pkey_id) == 1087) ? 32 : (((pkey)->ameth->pkey_id) == 1035 ? 56 : 57));
Executed by:
  • libcrypto.so.1.1
0-5759
355 }
never executed: end of block
0
356 return
never executed: return 0;
0;
never executed: return 0;
0
357-
358 default
never executed: default:
:
never executed: default:
0
359 return
never executed: return -2;
-2;
never executed: return -2;
0
360-
361 }-
362}-
363-
364static int ecd_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2)-
365{-
366 switch (op) {-
367 case
never executed: case 0x3:
0x3:
never executed: case 0x3:
0
368-
369 *(int *)arg2 = 0;-
370 return
never executed: return 2;
2;
never executed: return 2;
0
371-
372 default
never executed: default:
:
never executed: default:
0
373 return
never executed: return -2;
-2;
never executed: return -2;
0
374-
375 }-
376}-
377-
378static int ecx_set_priv_key(EVP_PKEY *pkey, const unsigned char *priv,-
379 size_t len)-
380{-
381 return
executed 13 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , priv, len, KEY_OP_PRIVATE);
Executed by:
  • libcrypto.so.1.1
ecx_key_op(pkey, pkey->ameth->pkey_id,
executed 13 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , priv, len, KEY_OP_PRIVATE);
Executed by:
  • libcrypto.so.1.1
13
382 ((void *)0)
executed 13 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , priv, len, KEY_OP_PRIVATE);
Executed by:
  • libcrypto.so.1.1
13
383 , priv, len,
executed 13 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , priv, len, KEY_OP_PRIVATE);
Executed by:
  • libcrypto.so.1.1
13
384 KEY_OP_PRIVATE);
executed 13 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , priv, len, KEY_OP_PRIVATE);
Executed by:
  • libcrypto.so.1.1
13
385}-
386-
387static int ecx_set_pub_key(EVP_PKEY *pkey, const unsigned char *pub, size_t len)-
388{-
389 return
executed 15 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , pub, len, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
ecx_key_op(pkey, pkey->ameth->pkey_id,
executed 15 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , pub, len, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
15
390 ((void *)0)
executed 15 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , pub, len, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
15
391 , pub, len,
executed 15 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , pub, len, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
15
392 KEY_OP_PUBLIC);
executed 15 times by 1 test: return ecx_key_op(pkey, pkey->ameth->pkey_id, ((void *)0) , pub, len, KEY_OP_PUBLIC);
Executed by:
  • libcrypto.so.1.1
15
393}-
394-
395static int ecx_get_priv_key(const EVP_PKEY *pkey, unsigned char *priv,-
396 size_t *len)-
397{-
398 const ECX_KEY *key = pkey->pkey.ecx;-
399-
400 if (priv ==
priv == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4
401 ((void *)0)
priv == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4
402 ) {-
403 *len = (((
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1034
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| (
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1087
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) ? 32 : ((
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1035
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
? 56 : 57));
1-3
404 return
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
4
405 }-
406-
407 if (key ==
key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
408 ((void *)0)
key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
409 -
410 || key->privkey ==
key->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
411 ((void *)0)
key->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
412 -
413 || *
*len < (size_t...35 ? 56 : 57))Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
len < (size_t)(((pkey->ameth->pkey_id) == 1034 || (pkey->ameth->pkey_id) == 1087) ? 32 : ((pkey->ameth->pkey_id) == 1035 ? 56 : 57))
*len < (size_t...35 ? 56 : 57))Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-4
414 return
never executed: return 0;
0;
never executed: return 0;
0
415-
416 *len = (((
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1034
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| (
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1087
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) ? 32 : ((
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1035
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
? 56 : 57));
1-3
417 memcpy(priv, key->privkey, *len);-
418-
419 return
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
4
420}-
421-
422static int ecx_get_pub_key(const EVP_PKEY *pkey, unsigned char *pub,-
423 size_t *len)-
424{-
425 const ECX_KEY *key = pkey->pkey.ecx;-
426-
427 if (pub ==
pub == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4
428 ((void *)0)
pub == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
4
429 ) {-
430 *len = (((
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1034
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| (
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1087
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) ? 32 : ((
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1035
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
? 56 : 57));
1-3
431 return
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
4
432 }-
433-
434 if (key ==
key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
435 ((void *)0)
key == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
436 -
437 || *
*len < (size_t...35 ? 56 : 57))Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
len < (size_t)(((pkey->ameth->pkey_id) == 1034 || (pkey->ameth->pkey_id) == 1087) ? 32 : ((pkey->ameth->pkey_id) == 1035 ? 56 : 57))
*len < (size_t...35 ? 56 : 57))Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-4
438 return
never executed: return 0;
0;
never executed: return 0;
0
439-
440 *len = (((
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1034
(pkey->ameth->pkey_id) == 1034Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| (
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1087
(pkey->ameth->pkey_id) == 1087Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) ? 32 : ((
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
pkey->ameth->pkey_id) == 1035
(pkey->ameth->pkey_id) == 1035Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
? 56 : 57));
1-3
441 memcpy(pub, key->pubkey, *len);-
442-
443 return
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 4 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
4
444}-
445-
446const EVP_PKEY_ASN1_METHOD ecx25519_asn1_meth = {-
447 1034,-
448 1034,-
449 0,-
450 "X25519",-
451 "OpenSSL X25519 algorithm",-
452-
453 ecx_pub_decode,-
454 ecx_pub_encode,-
455 ecx_pub_cmp,-
456 ecx_pub_print,-
457-
458 ecx_priv_decode,-
459 ecx_priv_encode,-
460 ecx_priv_print,-
461-
462 ecx_size,-
463 ecx_bits,-
464 ecx_security_bits,-
465-
466 0, 0, 0, 0,-
467 ecx_cmp_parameters,-
468 0, 0,-
469-
470 ecx_free,-
471 ecx_ctrl,-
472 -
473 ((void *)0)-
474 ,-
475 -
476 ((void *)0)-
477 ,-
478-
479 -
480 ((void *)0)-
481 ,-
482 -
483 ((void *)0)-
484 ,-
485 -
486 ((void *)0)-
487 ,-
488-
489 -
490 ((void *)0)-
491 ,-
492 -
493 ((void *)0)-
494 ,-
495 -
496 ((void *)0)-
497 ,-
498-
499 ecx_set_priv_key,-
500 ecx_set_pub_key,-
501 ecx_get_priv_key,-
502 ecx_get_pub_key,-
503};-
504-
505const EVP_PKEY_ASN1_METHOD ecx448_asn1_meth = {-
506 1035,-
507 1035,-
508 0,-
509 "X448",-
510 "OpenSSL X448 algorithm",-
511-
512 ecx_pub_decode,-
513 ecx_pub_encode,-
514 ecx_pub_cmp,-
515 ecx_pub_print,-
516-
517 ecx_priv_decode,-
518 ecx_priv_encode,-
519 ecx_priv_print,-
520-
521 ecx_size,-
522 ecx_bits,-
523 ecx_security_bits,-
524-
525 0, 0, 0, 0,-
526 ecx_cmp_parameters,-
527 0, 0,-
528-
529 ecx_free,-
530 ecx_ctrl,-
531 -
532 ((void *)0)-
533 ,-
534 -
535 ((void *)0)-
536 ,-
537-
538 -
539 ((void *)0)-
540 ,-
541 -
542 ((void *)0)-
543 ,-
544 -
545 ((void *)0)-
546 ,-
547-
548 -
549 ((void *)0)-
550 ,-
551 -
552 ((void *)0)-
553 ,-
554 -
555 ((void *)0)-
556 ,-
557-
558 ecx_set_priv_key,-
559 ecx_set_pub_key,-
560 ecx_get_priv_key,-
561 ecx_get_pub_key,-
562};-
563-
564static int ecd_size25519(const EVP_PKEY *pkey)-
565{-
566 return
executed 10 times by 1 test: return 64;
Executed by:
  • libcrypto.so.1.1
64;
executed 10 times by 1 test: return 64;
Executed by:
  • libcrypto.so.1.1
10
567}-
568-
569static int ecd_size448(const EVP_PKEY *pkey)-
570{-
571 return
executed 10 times by 1 test: return 114;
Executed by:
  • libcrypto.so.1.1
114;
executed 10 times by 1 test: return 114;
Executed by:
  • libcrypto.so.1.1
10
572}-
573-
574static int ecd_item_verify(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,-
575 X509_ALGOR *sigalg, ASN1_BIT_STRING *str,-
576 EVP_PKEY *pkey)-
577{-
578 const ASN1_OBJECT *obj;-
579 int ptype;-
580 int nid;-
581-
582-
583 X509_ALGOR_get0(&obj, &ptype, -
584 ((void *)0)-
585 , sigalg);-
586 nid = OBJ_obj2nid(obj);-
587 if ((nid != 1087
nid != 1087Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& nid != 1088
nid != 1088Description
TRUEnever evaluated
FALSEnever evaluated
) || ptype != -1
ptype != -1Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-1
588 ERR_put_error(16,(270),(102),__FILE__,516);-
589 return
never executed: return 0;
0;
never executed: return 0;
0
590 }-
591-
592 if (!EVP_DigestVerifyInit(ctx,
!EVP_DigestVer...d *)0) , pkey)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
593 ((void *)0)
!EVP_DigestVer...d *)0) , pkey)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
594 ,
!EVP_DigestVer...d *)0) , pkey)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
595 ((void *)0)
!EVP_DigestVer...d *)0) , pkey)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
596 ,
!EVP_DigestVer...d *)0) , pkey)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
597 ((void *)0)
!EVP_DigestVer...d *)0) , pkey)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-1
598 , pkey)
!EVP_DigestVer...d *)0) , pkey)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
599 return
never executed: return 0;
0;
never executed: return 0;
0
600-
601 return
executed 1 time by 1 test: return 2;
Executed by:
  • libcrypto.so.1.1
2;
executed 1 time by 1 test: return 2;
Executed by:
  • libcrypto.so.1.1
1
602}-
603-
604static int ecd_item_sign25519(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,-
605 X509_ALGOR *alg1, X509_ALGOR *alg2,-
606 ASN1_BIT_STRING *str)-
607{-
608-
609 X509_ALGOR_set0(alg1, OBJ_nid2obj(1087), -1, -
610 ((void *)0)-
611 );-
612 if (alg2
alg2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
613 X509_ALGOR_set0(alg2, OBJ_nid2obj(1087), -1,
never executed: X509_ALGOR_set0(alg2, OBJ_nid2obj(1087), -1, ((void *)0) );
0
614 ((void *)0)
never executed: X509_ALGOR_set0(alg2, OBJ_nid2obj(1087), -1, ((void *)0) );
0
615 );
never executed: X509_ALGOR_set0(alg2, OBJ_nid2obj(1087), -1, ((void *)0) );
0
616-
617 return
never executed: return 3;
3;
never executed: return 3;
0
618}-
619-
620static int ecd_sig_info_set25519(X509_SIG_INFO *siginf, const X509_ALGOR *alg,-
621 const ASN1_STRING *sig)-
622{-
623 X509_SIG_INFO_set(siginf, 0, 1087, 128,-
624 0x2);-
625 return
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 7 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
7
626}-
627-
628static int ecd_item_sign448(EVP_MD_CTX *ctx, const ASN1_ITEM *it, void *asn,-
629 X509_ALGOR *alg1, X509_ALGOR *alg2,-
630 ASN1_BIT_STRING *str)-
631{-
632-
633 X509_ALGOR_set0(alg1, OBJ_nid2obj(1088), -1, -
634 ((void *)0)-
635 );-
636 if (alg2 !=
alg2 != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
637 ((void *)0)
alg2 != ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
638 )-
639 X509_ALGOR_set0(alg2, OBJ_nid2obj(1088), -1,
never executed: X509_ALGOR_set0(alg2, OBJ_nid2obj(1088), -1, ((void *)0) );
0
640 ((void *)0)
never executed: X509_ALGOR_set0(alg2, OBJ_nid2obj(1088), -1, ((void *)0) );
0
641 );
never executed: X509_ALGOR_set0(alg2, OBJ_nid2obj(1088), -1, ((void *)0) );
0
642-
643 return
never executed: return 3;
3;
never executed: return 3;
0
644}-
645-
646static int ecd_sig_info_set448(X509_SIG_INFO *siginf, const X509_ALGOR *alg,-
647 const ASN1_STRING *sig)-
648{-
649 X509_SIG_INFO_set(siginf, 0, 1088, 224,-
650 0x2);-
651 return
executed 1 time by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 1 time by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1
652}-
653-
654-
655const EVP_PKEY_ASN1_METHOD ed25519_asn1_meth = {-
656 1087,-
657 1087,-
658 0,-
659 "ED25519",-
660 "OpenSSL ED25519 algorithm",-
661-
662 ecx_pub_decode,-
663 ecx_pub_encode,-
664 ecx_pub_cmp,-
665 ecx_pub_print,-
666-
667 ecx_priv_decode,-
668 ecx_priv_encode,-
669 ecx_priv_print,-
670-
671 ecd_size25519,-
672 ecx_bits,-
673 ecx_security_bits,-
674-
675 0, 0, 0, 0,-
676 ecx_cmp_parameters,-
677 0, 0,-
678-
679 ecx_free,-
680 ecd_ctrl,-
681 -
682 ((void *)0)-
683 ,-
684 -
685 ((void *)0)-
686 ,-
687 ecd_item_verify,-
688 ecd_item_sign25519,-
689 ecd_sig_info_set25519,-
690-
691 -
692 ((void *)0)-
693 ,-
694 -
695 ((void *)0)-
696 ,-
697 -
698 ((void *)0)-
699 ,-
700-
701 ecx_set_priv_key,-
702 ecx_set_pub_key,-
703 ecx_get_priv_key,-
704 ecx_get_pub_key,-
705};-
706-
707const EVP_PKEY_ASN1_METHOD ed448_asn1_meth = {-
708 1088,-
709 1088,-
710 0,-
711 "ED448",-
712 "OpenSSL ED448 algorithm",-
713-
714 ecx_pub_decode,-
715 ecx_pub_encode,-
716 ecx_pub_cmp,-
717 ecx_pub_print,-
718-
719 ecx_priv_decode,-
720 ecx_priv_encode,-
721 ecx_priv_print,-
722-
723 ecd_size448,-
724 ecx_bits,-
725 ecx_security_bits,-
726-
727 0, 0, 0, 0,-
728 ecx_cmp_parameters,-
729 0, 0,-
730-
731 ecx_free,-
732 ecd_ctrl,-
733 -
734 ((void *)0)-
735 ,-
736 -
737 ((void *)0)-
738 ,-
739 ecd_item_verify,-
740 ecd_item_sign448,-
741 ecd_sig_info_set448,-
742-
743 -
744 ((void *)0)-
745 ,-
746 -
747 ((void *)0)-
748 ,-
749 -
750 ((void *)0)-
751 ,-
752-
753 ecx_set_priv_key,-
754 ecx_set_pub_key,-
755 ecx_get_priv_key,-
756 ecx_get_pub_key,-
757};-
758-
759static int pkey_ecx_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY *pkey)-
760{-
761 return
executed 6273 times by 1 test: return ecx_key_op(pkey, ctx->pmeth->pkey_id, ((void *)0) , ((void *)0) , 0, KEY_OP_KEYGEN);
Executed by:
  • libcrypto.so.1.1
ecx_key_op(pkey, ctx->pmeth->pkey_id,
executed 6273 times by 1 test: return ecx_key_op(pkey, ctx->pmeth->pkey_id, ((void *)0) , ((void *)0) , 0, KEY_OP_KEYGEN);
Executed by:
  • libcrypto.so.1.1
6273
762 ((void *)0)
executed 6273 times by 1 test: return ecx_key_op(pkey, ctx->pmeth->pkey_id, ((void *)0) , ((void *)0) , 0, KEY_OP_KEYGEN);
Executed by:
  • libcrypto.so.1.1
6273
763 ,
executed 6273 times by 1 test: return ecx_key_op(pkey, ctx->pmeth->pkey_id, ((void *)0) , ((void *)0) , 0, KEY_OP_KEYGEN);
Executed by:
  • libcrypto.so.1.1
6273
764 ((void *)0)
executed 6273 times by 1 test: return ecx_key_op(pkey, ctx->pmeth->pkey_id, ((void *)0) , ((void *)0) , 0, KEY_OP_KEYGEN);
Executed by:
  • libcrypto.so.1.1
6273
765 , 0, KEY_OP_KEYGEN);
executed 6273 times by 1 test: return ecx_key_op(pkey, ctx->pmeth->pkey_id, ((void *)0) , ((void *)0) , 0, KEY_OP_KEYGEN);
Executed by:
  • libcrypto.so.1.1
6273
766}-
767-
768static int validate_ecx_derive(EVP_PKEY_CTX *ctx, unsigned char *key,-
769 size_t *keylen,-
770 const unsigned char **privkey,-
771 const unsigned char **pubkey)-
772{-
773 const ECX_KEY *ecxkey, *peerkey;-
774-
775 if (ctx->pkey ==
ctx->pkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
776 ((void *)0)
ctx->pkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
777 || ctx->peerkey ==
ctx->peerkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
778 ((void *)0)
ctx->peerkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
779 ) {-
780 ERR_put_error(16,(278),(140),__FILE__,664);-
781 return
never executed: return 0;
0;
never executed: return 0;
0
782 }-
783 ecxkey = ctx->pkey->pkey.ecx;-
784 peerkey = ctx->peerkey->pkey.ecx;-
785 if (ecxkey ==
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
786 ((void *)0)
ecxkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
787 || ecxkey->privkey ==
ecxkey->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
788 ((void *)0)
ecxkey->privkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
789 ) {-
790 ERR_put_error(16,(278),(123),__FILE__,670);-
791 return
never executed: return 0;
0;
never executed: return 0;
0
792 }-
793 if (peerkey ==
peerkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
794 ((void *)0)
peerkey == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5856
795 ) {-
796 ERR_put_error(16,(278),(133),__FILE__,674);-
797 return
never executed: return 0;
0;
never executed: return 0;
0
798 }-
799 *privkey = ecxkey->privkey;-
800 *pubkey = peerkey->pubkey;-
801-
802 return
executed 5856 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 5856 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
5856
803}-
804-
805static int pkey_ecx_derive25519(EVP_PKEY_CTX *ctx, unsigned char *key,-
806 size_t *keylen)-
807{-
808 const unsigned char *privkey, *pubkey;-
809-
810 if (!validate_ecx_derive(ctx, key, keylen, &privkey, &pubkey)
!validate_ecx_...vkey, &pubkey)Description
TRUEnever evaluated
FALSEevaluated 5832 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-5832
811 || (key !=
key != ((void *)0)Description
TRUEevaluated 2916 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2916 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2916
812 ((void *)0)
key != ((void *)0)Description
TRUEevaluated 2916 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2916 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2916
813 -
814 && X25519(key, privkey, pubkey) == 0
X25519(key, pr..., pubkey) == 0Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2914 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
))
2-2914
815 return
executed 2 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 2 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
2
816 *keylen = 32;-
817 return
executed 5830 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 5830 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
5830
818}-
819-
820static int pkey_ecx_derive448(EVP_PKEY_CTX *ctx, unsigned char *key,-
821 size_t *keylen)-
822{-
823 const unsigned char *privkey, *pubkey;-
824-
825 if (!validate_ecx_derive(ctx, key, keylen, &privkey, &pubkey)
!validate_ecx_...vkey, &pubkey)Description
TRUEnever evaluated
FALSEevaluated 24 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-24
826 || (key !=
key != ((void *)0)Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
12
827 ((void *)0)
key != ((void *)0)Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
12
828 -
829 && X448(key, privkey, pubkey) == 0
X448(key, priv..., pubkey) == 0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
))
1-11
830 return
executed 1 time by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 1 time by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
1
831 *keylen = 56;-
832 return
executed 23 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 23 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
23
833}-
834-
835static int pkey_ecx_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)-
836{-
837-
838 if (type == 2
type == 2Description
TRUEevaluated 5856 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-5856
839 return
executed 5856 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 5856 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
5856
840 return
never executed: return -2;
-2;
never executed: return -2;
0
841}-
842-
843const EVP_PKEY_METHOD ecx25519_pkey_meth = {-
844 1034,-
845 0, 0, 0, 0, 0, 0, 0,-
846 pkey_ecx_keygen,-
847 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-
848 pkey_ecx_derive25519,-
849 pkey_ecx_ctrl,-
850 0-
851};-
852-
853const EVP_PKEY_METHOD ecx448_pkey_meth = {-
854 1035,-
855 0, 0, 0, 0, 0, 0, 0,-
856 pkey_ecx_keygen,-
857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-
858 pkey_ecx_derive448,-
859 pkey_ecx_ctrl,-
860 0-
861};-
862-
863static int pkey_ecd_digestsign25519(EVP_MD_CTX *ctx, unsigned char *sig,-
864 size_t *siglen, const unsigned char *tbs,-
865 size_t tbslen)-
866{-
867 const ECX_KEY *edkey = EVP_MD_CTX_pkey_ctx(ctx)->pkey->pkey.ecx;-
868-
869 if (sig ==
sig == ((void *)0)Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
6-11
870 ((void *)0)
sig == ((void *)0)Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
6-11
871 ) {-
872 *siglen = 64;-
873 return
executed 6 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 6 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
6
874 }-
875 if (*
*siglen < 64Description
TRUEnever evaluated
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
siglen < 64
*siglen < 64Description
TRUEnever evaluated
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-11
876 ERR_put_error(16,(276),(100),__FILE__,748);-
877 return
never executed: return 0;
0;
never executed: return 0;
0
878 }-
879-
880 if (ED25519_sign(sig, tbs, tbslen, edkey->pubkey, edkey->privkey) == 0
ED25519_sign(s...>privkey) == 0Description
TRUEnever evaluated
FALSEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-11
881 return
never executed: return 0;
0;
never executed: return 0;
0
882 *siglen = 64;-
883 return
executed 11 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 11 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
11
884}-
885-
886static int pkey_ecd_digestsign448(EVP_MD_CTX *ctx, unsigned char *sig,-
887 size_t *siglen, const unsigned char *tbs,-
888 size_t tbslen)-
889{-
890 const ECX_KEY *edkey = EVP_MD_CTX_pkey_ctx(ctx)->pkey->pkey.ecx;-
891-
892 if (sig ==
sig == ((void *)0)Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
9-14
893 ((void *)0)
sig == ((void *)0)Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
9-14
894 ) {-
895 *siglen = 114;-
896 return
executed 9 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 9 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
9
897 }-
898 if (*
*siglen < 114Description
TRUEnever evaluated
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
siglen < 114
*siglen < 114Description
TRUEnever evaluated
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-14
899 ERR_put_error(16,(277),(100),__FILE__,769);-
900 return
never executed: return 0;
0;
never executed: return 0;
0
901 }-
902-
903 if (ED448_sign(sig, tbs, tbslen, edkey->pubkey, edkey->privkey,
ED448_sign(sig...*)0) , 0) == 0Description
TRUEnever evaluated
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-14
904 ((void *)0)
ED448_sign(sig...*)0) , 0) == 0Description
TRUEnever evaluated
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-14
905 ,
ED448_sign(sig...*)0) , 0) == 0Description
TRUEnever evaluated
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-14
906 0) == 0
ED448_sign(sig...*)0) , 0) == 0Description
TRUEnever evaluated
FALSEevaluated 14 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-14
907 return
never executed: return 0;
0;
never executed: return 0;
0
908 *siglen = 114;-
909 return
executed 14 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 14 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
14
910}-
911-
912static int pkey_ecd_digestverify25519(EVP_MD_CTX *ctx, const unsigned char *sig,-
913 size_t siglen, const unsigned char *tbs,-
914 size_t tbslen)-
915{-
916 const ECX_KEY *edkey = EVP_MD_CTX_pkey_ctx(ctx)->pkey->pkey.ecx;-
917-
918 if (siglen != 64
siglen != 64Description
TRUEnever evaluated
FALSEevaluated 10 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-10
919 return
never executed: return 0;
0;
never executed: return 0;
0
920-
921 return
executed 10 times by 1 test: return ED25519_verify(tbs, tbslen, sig, edkey->pubkey);
Executed by:
  • libcrypto.so.1.1
ED25519_verify(tbs, tbslen, sig, edkey->pubkey);
executed 10 times by 1 test: return ED25519_verify(tbs, tbslen, sig, edkey->pubkey);
Executed by:
  • libcrypto.so.1.1
10
922}-
923-
924static int pkey_ecd_digestverify448(EVP_MD_CTX *ctx, const unsigned char *sig,-
925 size_t siglen, const unsigned char *tbs,-
926 size_t tbslen)-
927{-
928 const ECX_KEY *edkey = EVP_MD_CTX_pkey_ctx(ctx)->pkey->pkey.ecx;-
929-
930 if (siglen != 114
siglen != 114Description
TRUEnever evaluated
FALSEevaluated 9 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-9
931 return
never executed: return 0;
0;
never executed: return 0;
0
932-
933 return
executed 9 times by 1 test: return ED448_verify(tbs, tbslen, sig, edkey->pubkey, ((void *)0) , 0);
Executed by:
  • libcrypto.so.1.1
ED448_verify(tbs, tbslen, sig, edkey->pubkey,
executed 9 times by 1 test: return ED448_verify(tbs, tbslen, sig, edkey->pubkey, ((void *)0) , 0);
Executed by:
  • libcrypto.so.1.1
9
934 ((void *)0)
executed 9 times by 1 test: return ED448_verify(tbs, tbslen, sig, edkey->pubkey, ((void *)0) , 0);
Executed by:
  • libcrypto.so.1.1
9
935 , 0);
executed 9 times by 1 test: return ED448_verify(tbs, tbslen, sig, edkey->pubkey, ((void *)0) , 0);
Executed by:
  • libcrypto.so.1.1
9
936}-
937-
938static int pkey_ecd_ctrl(EVP_PKEY_CTX *ctx, int type, int p1, void *p2)-
939{-
940 switch (type) {-
941 case
executed 50 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
1:
executed 50 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
50
942-
943 if (p2 ==
p2 == ((void *)0)Description
TRUEevaluated 48 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2-48
944 ((void *)0)
p2 == ((void *)0)Description
TRUEevaluated 48 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2-48
945 || (const
(const EVP_MD ... EVP_md_null()Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
EVP_MD *)p2 == EVP_md_null()
(const EVP_MD ... EVP_md_null()Description
TRUEnever evaluated
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-2
946 return
executed 48 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 48 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
48
947 ERR_put_error(16,(271),(138),__FILE__,811);-
948 return
executed 2 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 2 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
2
949-
950 case
never executed: case 7:
7:
never executed: case 7:
0
951 return
never executed: return 1;
1;
never executed: return 1;
0
952 }-
953 return
never executed: return -2;
-2;
never executed: return -2;
0
954}-
955-
956const EVP_PKEY_METHOD ed25519_pkey_meth = {-
957 1087, 4,-
958 0, 0, 0, 0, 0, 0,-
959 pkey_ecx_keygen,-
960 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-
961 pkey_ecd_ctrl,-
962 0,-
963 pkey_ecd_digestsign25519,-
964 pkey_ecd_digestverify25519-
965};-
966-
967const EVP_PKEY_METHOD ed448_pkey_meth = {-
968 1088, 4,-
969 0, 0, 0, 0, 0, 0,-
970 pkey_ecx_keygen,-
971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-
972 pkey_ecd_ctrl,-
973 0,-
974 pkey_ecd_digestsign448,-
975 pkey_ecd_digestverify448-
976};-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2