OpenCoverage

x509_cmp.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509/x509_cmp.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b)-
3{-
4 int i;-
5 const X509_CINF *ai, *bi;-
6-
7 ai = &a->cert_info;-
8 bi = &b->cert_info;-
9 i = ASN1_INTEGER_cmp(&ai->serialNumber, &bi->serialNumber);-
10 if (i
iDescription
TRUEevaluated 50 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 50 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
50
11 return
executed 50 times by 1 test: return i;
Executed by:
  • libcrypto.so.1.1
i;
executed 50 times by 1 test: return i;
Executed by:
  • libcrypto.so.1.1
50
12 return
executed 50 times by 1 test: return X509_NAME_cmp(ai->issuer, bi->issuer);
Executed by:
  • libcrypto.so.1.1
X509_NAME_cmp(ai->issuer, bi->issuer);
executed 50 times by 1 test: return X509_NAME_cmp(ai->issuer, bi->issuer);
Executed by:
  • libcrypto.so.1.1
50
13}-
14-
15-
16unsigned long X509_issuer_and_serial_hash(X509 *a)-
17{-
18 unsigned long ret = 0;-
19 EVP_MD_CTX *ctx = EVP_MD_CTX_new();-
20 unsigned char md[16];-
21 char *f;-
22-
23 if (ctx ==
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
24 ((void *)0)
ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
25 )-
26 goto
never executed: goto err;
err;
never executed: goto err;
0
27 f = X509_NAME_oneline(a->cert_info.issuer, -
28 ((void *)0)-
29 , 0);-
30 if (!EVP_DigestInit_ex(ctx, EVP_md5(),
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
31 ((void *)0)
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
32 )
!EVP_DigestIni... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
33 goto
never executed: goto err;
err;
never executed: goto err;
0
34 if (!EVP_DigestUpdate(ctx, (unsigned char *)f, strlen(f))
!EVP_DigestUpd...)f, strlen(f))Description
TRUEnever evaluated
FALSEnever evaluated
)
0
35 goto
never executed: goto err;
err;
never executed: goto err;
0
36 CRYPTO_free(f, __FILE__, 46);-
37 if (!EVP_DigestUpdate
!EVP_DigestUpd...Number.length)Description
TRUEnever evaluated
FALSEnever evaluated
0
38 (ctx, (unsigned char *)a->cert_info.serialNumber.data,
!EVP_DigestUpd...Number.length)Description
TRUEnever evaluated
FALSEnever evaluated
0
39 (unsigned long)a->cert_info.serialNumber.length)
!EVP_DigestUpd...Number.length)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
40 goto
never executed: goto err;
err;
never executed: goto err;
0
41 if (!EVP_DigestFinal_ex(ctx, &(md[0]),
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
42 ((void *)0)
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
43 )
!EVP_DigestFin... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
44 goto
never executed: goto err;
err;
never executed: goto err;
0
45 ret = (((unsigned long)md[0]) | ((unsigned long)md[1] << 8L) |-
46 ((unsigned long)md[2] << 16L) | ((unsigned long)md[3] << 24L)-
47 ) & 0xffffffffL;-
48 err:
code before this statement never executed: err:
0
49 EVP_MD_CTX_free(ctx);-
50 return
never executed: return ret;
ret;
never executed: return ret;
0
51}-
52-
53-
54int X509_issuer_name_cmp(const X509 *a, const X509 *b)-
55{-
56 return
never executed: return X509_NAME_cmp(a->cert_info.issuer, b->cert_info.issuer);
X509_NAME_cmp(a->cert_info.issuer, b->cert_info.issuer);
never executed: return X509_NAME_cmp(a->cert_info.issuer, b->cert_info.issuer);
0
57}-
58-
59int X509_subject_name_cmp(const X509 *a, const X509 *b)-
60{-
61 return
executed 1197 times by 1 test: return X509_NAME_cmp(a->cert_info.subject, b->cert_info.subject);
Executed by:
  • libcrypto.so.1.1
X509_NAME_cmp(a->cert_info.subject, b->cert_info.subject);
executed 1197 times by 1 test: return X509_NAME_cmp(a->cert_info.subject, b->cert_info.subject);
Executed by:
  • libcrypto.so.1.1
1197
62}-
63-
64int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b)-
65{-
66 return
never executed: return X509_NAME_cmp(a->crl.issuer, b->crl.issuer);
X509_NAME_cmp(a->crl.issuer, b->crl.issuer);
never executed: return X509_NAME_cmp(a->crl.issuer, b->crl.issuer);
0
67}-
68-
69int X509_CRL_match(const X509_CRL *a, const X509_CRL *b)-
70{-
71 return
never executed: return memcmp(a->sha1_hash, b->sha1_hash, 20);
memcmp(a->sha1_hash, b->sha1_hash, 20);
never executed: return memcmp(a->sha1_hash, b->sha1_hash, 20);
0
72}-
73-
74X509_NAME *X509_get_issuer_name(const X509 *a)-
75{-
76 return
executed 23517 times by 1 test: return a->cert_info.issuer;
Executed by:
  • libcrypto.so.1.1
a->cert_info.issuer;
executed 23517 times by 1 test: return a->cert_info.issuer;
Executed by:
  • libcrypto.so.1.1
23517
77}-
78-
79unsigned long X509_issuer_name_hash(X509 *x)-
80{-
81 return
never executed: return X509_NAME_hash(x->cert_info.issuer);
X509_NAME_hash(x->cert_info.issuer);
never executed: return X509_NAME_hash(x->cert_info.issuer);
0
82}-
83-
84-
85unsigned long X509_issuer_name_hash_old(X509 *x)-
86{-
87 return
never executed: return X509_NAME_hash_old(x->cert_info.issuer);
X509_NAME_hash_old(x->cert_info.issuer);
never executed: return X509_NAME_hash_old(x->cert_info.issuer);
0
88}-
89-
90-
91X509_NAME *X509_get_subject_name(const X509 *a)-
92{-
93 return
executed 87226 times by 1 test: return a->cert_info.subject;
Executed by:
  • libcrypto.so.1.1
a->cert_info.subject;
executed 87226 times by 1 test: return a->cert_info.subject;
Executed by:
  • libcrypto.so.1.1
87226
94}-
95-
96ASN1_INTEGER *X509_get_serialNumber(X509 *a)-
97{-
98 return
executed 1854 times by 1 test: return &a->cert_info.serialNumber;
Executed by:
  • libcrypto.so.1.1
&a->cert_info.serialNumber;
executed 1854 times by 1 test: return &a->cert_info.serialNumber;
Executed by:
  • libcrypto.so.1.1
1854
99}-
100-
101const ASN1_INTEGER *X509_get0_serialNumber(const X509 *a)-
102{-
103 return
never executed: return &a->cert_info.serialNumber;
&a->cert_info.serialNumber;
never executed: return &a->cert_info.serialNumber;
0
104}-
105-
106unsigned long X509_subject_name_hash(X509 *x)-
107{-
108 return
never executed: return X509_NAME_hash(x->cert_info.subject);
X509_NAME_hash(x->cert_info.subject);
never executed: return X509_NAME_hash(x->cert_info.subject);
0
109}-
110-
111-
112unsigned long X509_subject_name_hash_old(X509 *x)-
113{-
114 return
never executed: return X509_NAME_hash_old(x->cert_info.subject);
X509_NAME_hash_old(x->cert_info.subject);
never executed: return X509_NAME_hash_old(x->cert_info.subject);
0
115}-
116int X509_cmp(const X509 *a, const X509 *b)-
117{-
118 int rv;-
119-
120 X509_check_purpose((X509 *)a, -1, 0);-
121 X509_check_purpose((X509 *)b, -1, 0);-
122-
123 rv = memcmp(a->sha1_hash, b->sha1_hash, 20);-
124 if (rv
rvDescription
TRUEevaluated 583 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
19-583
125 return
executed 583 times by 1 test: return rv;
Executed by:
  • libcrypto.so.1.1
rv;
executed 583 times by 1 test: return rv;
Executed by:
  • libcrypto.so.1.1
583
126-
127 if (!a->cert_info.enc.modified
!a->cert_info.enc.modifiedDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& !b->cert_info.enc.modified
!b->cert_info.enc.modifiedDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-19
128 if (a->cert_info.enc.len < b->cert_info.enc.len
a->cert_info.e...t_info.enc.lenDescription
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
129 return
never executed: return -1;
-1;
never executed: return -1;
0
130 if (a->cert_info.enc.len > b->cert_info.enc.len
a->cert_info.e...t_info.enc.lenDescription
TRUEnever evaluated
FALSEevaluated 19 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-19
131 return
never executed: return 1;
1;
never executed: return 1;
0
132 return
executed 19 times by 1 test: return memcmp(a->cert_info.enc.enc, b->cert_info.enc.enc, a->cert_info.enc.len);
Executed by:
  • libcrypto.so.1.1
memcmp(a->cert_info.enc.enc, b->cert_info.enc.enc,
executed 19 times by 1 test: return memcmp(a->cert_info.enc.enc, b->cert_info.enc.enc, a->cert_info.enc.len);
Executed by:
  • libcrypto.so.1.1
19
133 a->cert_info.enc.len);
executed 19 times by 1 test: return memcmp(a->cert_info.enc.enc, b->cert_info.enc.enc, a->cert_info.enc.len);
Executed by:
  • libcrypto.so.1.1
19
134 }-
135 return
never executed: return rv;
rv;
never executed: return rv;
0
136}-
137-
138int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b)-
139{-
140 int ret;-
141-
142-
143-
144 if (!a->canon_enc
!a->canon_encDescription
TRUEnever evaluated
FALSEevaluated 16426 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| a->modified
a->modifiedDescription
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 16420 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-16426
145 ret = i2d_X509_NAME((X509_NAME *)a, -
146 ((void *)0)-
147 );-
148 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-6
149 return
never executed: return -2;
-2;
never executed: return -2;
0
150 }
executed 6 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
6
151-
152 if (!b->canon_enc
!b->canon_encDescription
TRUEnever evaluated
FALSEevaluated 16426 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| b->modified
b->modifiedDescription
TRUEnever evaluated
FALSEevaluated 16426 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-16426
153 ret = i2d_X509_NAME((X509_NAME *)b, -
154 ((void *)0)-
155 );-
156 if (ret < 0
ret < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
157 return
never executed: return -2;
-2;
never executed: return -2;
0
158 }
never executed: end of block
0
159-
160 ret = a->canon_enclen - b->canon_enclen;-
161-
162 if (ret != 0
ret != 0Description
TRUEevaluated 5984 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 10442 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
|| a->canon_enclen == 0
a->canon_enclen == 0Description
TRUEnever evaluated
FALSEevaluated 10442 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-10442
163 return
executed 5984 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 5984 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
5984
164-
165 return
executed 10442 times by 1 test: return memcmp(a->canon_enc, b->canon_enc, a->canon_enclen);
Executed by:
  • libcrypto.so.1.1
memcmp(a->canon_enc, b->canon_enc, a->canon_enclen);
executed 10442 times by 1 test: return memcmp(a->canon_enc, b->canon_enc, a->canon_enclen);
Executed by:
  • libcrypto.so.1.1
10442
166-
167}-
168-
169unsigned long X509_NAME_hash(X509_NAME *x)-
170{-
171 unsigned long ret = 0;-
172 unsigned char md[20];-
173-
174-
175 i2d_X509_NAME(x, -
176 ((void *)0)-
177 );-
178 if (!EVP_Digest(x->canon_enc, x->canon_enclen, md,
!EVP_Digest(x-... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 416 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-416
179 ((void *)0)
!EVP_Digest(x-... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 416 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-416
180 , EVP_sha1(),
!EVP_Digest(x-... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 416 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-416
181
!EVP_Digest(x-... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 416 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-416
182 ((void *)0)
!EVP_Digest(x-... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 416 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-416
183 )
!EVP_Digest(x-... ((void *)0) )Description
TRUEnever evaluated
FALSEevaluated 416 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-416
184 return
never executed: return 0;
0;
never executed: return 0;
0
185-
186 ret = (((unsigned long)md[0]) | ((unsigned long)md[1] << 8L) |-
187 ((unsigned long)md[2] << 16L) | ((unsigned long)md[3] << 24L)-
188 ) & 0xffffffffL;-
189 return
executed 416 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 416 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
416
190}-
191-
192-
193-
194-
195-
196-
197-
198unsigned long X509_NAME_hash_old(X509_NAME *x)-
199{-
200 EVP_MD_CTX *md_ctx = EVP_MD_CTX_new();-
201 unsigned long ret = 0;-
202 unsigned char md[16];-
203-
204 if (md_ctx ==
md_ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
205 ((void *)0)
md_ctx == ((void *)0)Description
TRUEnever evaluated
FALSEnever evaluated
0
206 )-
207 return
never executed: return ret;
ret;
never executed: return ret;
0
208-
209-
210 i2d_X509_NAME(x, -
211 ((void *)0)-
212 );-
213 EVP_MD_CTX_set_flags(md_ctx, 0x0008);-
214 if (EVP_DigestInit_ex(md_ctx, EVP_md5(),
EVP_DigestInit... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
215 ((void *)0)
EVP_DigestInit... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
216 )
EVP_DigestInit... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
217 && EVP_DigestUpdate(md_ctx, x->bytes->data, x->bytes->length)
EVP_DigestUpda...bytes->length)Description
TRUEnever evaluated
FALSEnever evaluated
0
218 && EVP_DigestFinal_ex(md_ctx, md,
EVP_DigestFina... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
219 ((void *)0)
EVP_DigestFina... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
0
220 )
EVP_DigestFina... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
)
0
221 ret = (((unsigned long)md[0]) | ((unsigned long)md[1] << 8L) |
never executed: ret = (((unsigned long)md[0]) | ((unsigned long)md[1] << 8L) | ((unsigned long)md[2] << 16L) | ((unsigned long)md[3] << 24L) ) & 0xffffffffL;
0
222 ((unsigned long)md[2] << 16L) | ((unsigned long)md[3] << 24L)
never executed: ret = (((unsigned long)md[0]) | ((unsigned long)md[1] << 8L) | ((unsigned long)md[2] << 16L) | ((unsigned long)md[3] << 24L) ) & 0xffffffffL;
0
223 ) & 0xffffffffL;
never executed: ret = (((unsigned long)md[0]) | ((unsigned long)md[1] << 8L) | ((unsigned long)md[2] << 16L) | ((unsigned long)md[3] << 24L) ) & 0xffffffffL;
0
224 EVP_MD_CTX_free(md_ctx);-
225-
226 return
never executed: return ret;
ret;
never executed: return ret;
0
227}-
228-
229-
230-
231X509 *X509_find_by_issuer_and_serial(struct stack_st_X509 *sk, X509_NAME *name,-
232 ASN1_INTEGER *serial)-
233{-
234 int i;-
235 X509 x, *x509 = -
236 ((void *)0)-
237 ;-
238-
239 if (!sk
!skDescription
TRUEnever evaluated
FALSEevaluated 50 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-50
240 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
241 ((void *)0)
never executed: return ((void *)0) ;
0
242 ;
never executed: return ((void *)0) ;
0
243-
244 x.cert_info.serialNumber = *serial;-
245 x.cert_info.issuer = name;-
246-
247 for (i = 0; i < sk_X509_num(sk)
i < sk_X509_num(sk)Description
TRUEevaluated 100 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
; i++) {
0-100
248 x509 = sk_X509_value(sk, i);-
249 if (X509_issuer_and_serial_cmp(x509, &x) == 0
X509_issuer_an...x509, &x) == 0Description
TRUEevaluated 50 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 50 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
50
250 return
executed 50 times by 1 test: return x509;
Executed by:
  • libcrypto.so.1.1
x509;
executed 50 times by 1 test: return x509;
Executed by:
  • libcrypto.so.1.1
50
251 }
executed 50 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
50
252 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
253 ((void *)0)
never executed: return ((void *)0) ;
0
254 ;
never executed: return ((void *)0) ;
0
255}-
256-
257X509 *X509_find_by_subject(struct stack_st_X509 *sk, X509_NAME *name)-
258{-
259 X509 *x509;-
260 int i;-
261-
262 for (i = 0; i < sk_X509_num(sk)
i < sk_X509_num(sk)Description
TRUEevaluated 29 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 12 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
12-29
263 x509 = sk_X509_value(sk, i);-
264 if (X509_NAME_cmp(X509_get_subject_name(x509), name) == 0
X509_NAME_cmp(...9), name) == 0Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 18 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
11-18
265 return
executed 11 times by 1 test: return x509;
Executed by:
  • libcrypto.so.1.1
x509;
executed 11 times by 1 test: return x509;
Executed by:
  • libcrypto.so.1.1
11
266 }
executed 18 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
18
267 return
executed 12 times by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
executed 12 times by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
12
268 ((void *)0)
executed 12 times by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
12
269 ;
executed 12 times by 1 test: return ((void *)0) ;
Executed by:
  • libcrypto.so.1.1
12
270}-
271-
272EVP_PKEY *X509_get0_pubkey(const X509 *x)-
273{-
274 if (x ==
x == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 53470 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-53470
275 ((void *)0)
x == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 53470 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-53470
276 )-
277 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
278 ((void *)0)
never executed: return ((void *)0) ;
0
279 ;
never executed: return ((void *)0) ;
0
280 return
executed 53470 times by 1 test: return X509_PUBKEY_get0(x->cert_info.key);
Executed by:
  • libcrypto.so.1.1
X509_PUBKEY_get0(x->cert_info.key);
executed 53470 times by 1 test: return X509_PUBKEY_get0(x->cert_info.key);
Executed by:
  • libcrypto.so.1.1
53470
281}-
282-
283EVP_PKEY *X509_get_pubkey(X509 *x)-
284{-
285 if (x ==
x == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 63 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-63
286 ((void *)0)
x == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 63 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-63
287 )-
288 return
never executed: return ((void *)0) ;
never executed: return ((void *)0) ;
0
289 ((void *)0)
never executed: return ((void *)0) ;
0
290 ;
never executed: return ((void *)0) ;
0
291 return
executed 63 times by 1 test: return X509_PUBKEY_get(x->cert_info.key);
Executed by:
  • libcrypto.so.1.1
X509_PUBKEY_get(x->cert_info.key);
executed 63 times by 1 test: return X509_PUBKEY_get(x->cert_info.key);
Executed by:
  • libcrypto.so.1.1
63
292}-
293-
294int X509_check_private_key(const X509 *x, const EVP_PKEY *k)-
295{-
296 const EVP_PKEY *xk;-
297 int ret;-
298-
299 xk = X509_get0_pubkey(x);-
300-
301 if (xk
xkDescription
TRUEevaluated 8648 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-8648
302 ret = EVP_PKEY_cmp(xk, k);
executed 8648 times by 1 test: ret = EVP_PKEY_cmp(xk, k);
Executed by:
  • libcrypto.so.1.1
8648
303 else-
304 ret = -2;
never executed: ret = -2;
0
305-
306 switch (ret) {-
307 case
executed 8647 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
1:
executed 8647 times by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
8647
308 break;
executed 8647 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
8647
309 case
executed 1 time by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
0:
executed 1 time by 1 test: case 0:
Executed by:
  • libcrypto.so.1.1
1
310 ERR_put_error(11,(128),(116),__FILE__,294);-
311 break;
executed 1 time by 1 test: break;
Executed by:
  • libcrypto.so.1.1
1
312 case
never executed: case -1:
-1:
never executed: case -1:
0
313 ERR_put_error(11,(128),(115),__FILE__,297);-
314 break;
never executed: break;
0
315 case
never executed: case -2:
-2:
never executed: case -2:
0
316 ERR_put_error(11,(128),(117),__FILE__,300);-
317 }
never executed: end of block
0
318 if (ret > 0
ret > 0Description
TRUEevaluated 8647 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
1-8647
319 return
executed 8647 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
1;
executed 8647 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
8647
320 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
321}-
322static int check_suite_b(EVP_PKEY *pkey, int sign_nid, unsigned long *pflags)-
323{-
324 const EC_GROUP *grp = -
325 ((void *)0)-
326 ;-
327 int curve_nid;-
328 if (pkey
pkeyDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
&& EVP_PKEY_id(pkey) == 408
EVP_PKEY_id(pkey) == 408Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-4
329 grp = EC_KEY_get0_group(EVP_PKEY_get0_EC_KEY(pkey));
executed 2 times by 1 test: grp = EC_KEY_get0_group(EVP_PKEY_get0_EC_KEY(pkey));
Executed by:
  • libcrypto.so.1.1
2
330 if (!grp
!grpDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
2
331 return
executed 2 times by 1 test: return 57;
Executed by:
  • libcrypto.so.1.1
57;
executed 2 times by 1 test: return 57;
Executed by:
  • libcrypto.so.1.1
2
332 curve_nid = EC_GROUP_get_curve_name(grp);-
333-
334 if (curve_nid == 715
curve_nid == 715Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
1
335-
336-
337-
338 if (sign_nid != -1
sign_nid != -1Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& sign_nid != 795
sign_nid != 795Description
TRUEnever evaluated
FALSEnever evaluated
)
0-1
339 return
never executed: return 59;
59;
never executed: return 59;
0
340 if (!(*pflags & 0x20000)
!(*pflags & 0x20000)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
341 return
never executed: return 60;
60;
never executed: return 60;
0
342-
343 *pflags &= ~0x10000;-
344 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else if (curve_nid == 415
curve_nid == 415Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
) {
0-1
345 if (sign_nid != -1
sign_nid != -1Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
&& sign_nid != 794
sign_nid != 794Description
TRUEnever evaluated
FALSEnever evaluated
)
0-1
346 return
never executed: return 59;
59;
never executed: return 59;
0
347 if (!(*pflags & 0x10000)
!(*pflags & 0x10000)Description
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
0-1
348 return
never executed: return 60;
60;
never executed: return 60;
0
349 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else
1
350 return
never executed: return 58;
58;
never executed: return 58;
0
351-
352 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
353}-
354-
355int X509_chain_check_suiteb(int *perror_depth, X509 *x, struct stack_st_X509 *chain,-
356 unsigned long flags)-
357{-
358 int rv, i, sign_nid;-
359 EVP_PKEY *pk;-
360 unsigned long tflags = flags;-
361-
362 if (!(flags & 0x30000)
!(flags & 0x30000)Description
TRUEevaluated 1342 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
4-1342
363 return
executed 1342 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 1342 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
1342
364-
365-
366 if (x ==
x == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
367 ((void *)0)
x == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-4
368 ) {-
369 x = sk_X509_value(chain, 0);-
370 i = 1;-
371 }
never executed: end of block
else
0
372 i = 0;
executed 4 times by 1 test: i = 0;
Executed by:
  • libcrypto.so.1.1
4
373-
374 pk = X509_get0_pubkey(x);-
375-
376-
377-
378-
379-
380-
381-
382 if (chain ==
chain == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-4
383 ((void *)0)
chain == ((void *)0)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-4
384 )-
385 return
executed 4 times by 1 test: return check_suite_b(pk, -1, &tflags);
Executed by:
  • libcrypto.so.1.1
check_suite_b(pk, -1, &tflags);
executed 4 times by 1 test: return check_suite_b(pk, -1, &tflags);
Executed by:
  • libcrypto.so.1.1
4
386-
387 if (X509_get_version(x) != 2
X509_get_version(x) != 2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
388 rv = 56;-
389-
390 i = 0;-
391 goto
never executed: goto end;
end;
never executed: goto end;
0
392 }-
393-
394-
395 rv = check_suite_b(pk, -1, &tflags);-
396 if (rv != 0
rv != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
397-
398 i = 0;-
399 goto
never executed: goto end;
end;
never executed: goto end;
0
400 }-
401 for (; i < sk_X509_num(chain)
i < sk_X509_num(chain)Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
402 sign_nid = X509_get_signature_nid(x);-
403 x = sk_X509_value(chain, i);-
404 if (X509_get_version(x) != 2
X509_get_version(x) != 2Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
405 rv = 56;-
406 goto
never executed: goto end;
end;
never executed: goto end;
0
407 }-
408 pk = X509_get0_pubkey(x);-
409 rv = check_suite_b(pk, sign_nid, &tflags);-
410 if (rv != 0
rv != 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
411 goto
never executed: goto end;
end;
never executed: goto end;
0
412 }
never executed: end of block
0
413-
414-
415 rv = check_suite_b(pk, X509_get_signature_nid(x), &tflags);-
416 end:
code before this statement never executed: end:
0
417 if (rv != 0
rv != 0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
418-
419 if ((rv == 59
rv == 59Description
TRUEnever evaluated
FALSEnever evaluated
0
420 || rv == 60
rv == 60Description
TRUEnever evaluated
FALSEnever evaluated
) && i
iDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
421 i--;
never executed: i--;
0
422-
423-
424-
425-
426 if (rv == 60
rv == 60Description
TRUEnever evaluated
FALSEnever evaluated
&& flags != tflags
flags != tflagsDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
427 rv = 61;
never executed: rv = 61;
0
428 if (perror_depth
perror_depthDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
429 *
never executed: *perror_depth = i;
perror_depth = i;
never executed: *perror_depth = i;
0
430 }
never executed: end of block
0
431 return
never executed: return rv;
rv;
never executed: return rv;
0
432}-
433-
434int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags)-
435{-
436 int sign_nid;-
437 if (!(flags & 0x30000)
!(flags & 0x30000)Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
)
0-5
438 return
executed 5 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
0;
executed 5 times by 1 test: return 0;
Executed by:
  • libcrypto.so.1.1
5
439 sign_nid = OBJ_obj2nid(crl->crl.sig_alg.algorithm);-
440 return
never executed: return check_suite_b(pk, sign_nid, &flags);
check_suite_b(pk, sign_nid, &flags);
never executed: return check_suite_b(pk, sign_nid, &flags);
0
441}-
442struct stack_st_X509 *X509_chain_up_ref(struct stack_st_X509 *chain)-
443{-
444 struct stack_st_X509 *ret;-
445 int i;-
446 ret = sk_X509_dup(chain);-
447 for (i = 0; i < sk_X509_num(ret)
i < sk_X509_num(ret)Description
TRUEevaluated 5071 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 3673 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; i++) {
3673-5071
448 X509 *x = sk_X509_value(ret, i);-
449 X509_up_ref(x);-
450 }
executed 5071 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
5071
451 return
executed 3673 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
ret;
executed 3673 times by 1 test: return ret;
Executed by:
  • libcrypto.so.1.1
3673
452}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2