OpenCoverage

e_aes_cbc_hmac_sha256.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_aes_cbc_hmac_sha256.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6typedef struct {-
7 AES_KEY ks;-
8 SHA256_CTX head, tail, md;-
9 size_t payload_length;-
10 union {-
11 unsigned int tls_ver;-
12 unsigned char tls_aad[16];-
13 } aux;-
14} EVP_AES_HMAC_SHA256;-
15-
16-
17-
18-
19-
20-
21-
22extern unsigned int OPENSSL_ia32cap_P[];-
23-
24-
25int aesni_set_encrypt_key(const unsigned char *userKey, int bits,-
26 AES_KEY *key);-
27int aesni_set_decrypt_key(const unsigned char *userKey, int bits,-
28 AES_KEY *key);-
29-
30void aesni_cbc_encrypt(const unsigned char *in,-
31 unsigned char *out,-
32 size_t length,-
33 const AES_KEY *key, unsigned char *ivec, int enc);-
34-
35int aesni_cbc_sha256_enc(const void *inp, void *out, size_t blocks,-
36 const AES_KEY *key, unsigned char iv[16],-
37 SHA256_CTX *ctx, const void *in0);-
38-
39-
40-
41static int aesni_cbc_hmac_sha256_init_key(EVP_CIPHER_CTX *ctx,-
42 const unsigned char *inkey,-
43 const unsigned char *iv, int enc)-
44{-
45 EVP_AES_HMAC_SHA256 *key = ((EVP_AES_HMAC_SHA256 *)EVP_CIPHER_CTX_get_cipher_data(ctx));-
46 int ret;-
47-
48 if (enc
encDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
49 ret = aesni_set_encrypt_key(inkey,
never executed: ret = aesni_set_encrypt_key(inkey, EVP_CIPHER_CTX_key_length(ctx) * 8, &key->ks);
0
50 EVP_CIPHER_CTX_key_length(ctx) * 8,
never executed: ret = aesni_set_encrypt_key(inkey, EVP_CIPHER_CTX_key_length(ctx) * 8, &key->ks);
0
51 &key->ks);
never executed: ret = aesni_set_encrypt_key(inkey, EVP_CIPHER_CTX_key_length(ctx) * 8, &key->ks);
0
52 else-
53 ret = aesni_set_decrypt_key(inkey,
never executed: ret = aesni_set_decrypt_key(inkey, EVP_CIPHER_CTX_key_length(ctx) * 8, &key->ks);
0
54 EVP_CIPHER_CTX_key_length(ctx) * 8,
never executed: ret = aesni_set_decrypt_key(inkey, EVP_CIPHER_CTX_key_length(ctx) * 8, &key->ks);
0
55 &key->ks);
never executed: ret = aesni_set_decrypt_key(inkey, EVP_CIPHER_CTX_key_length(ctx) * 8, &key->ks);
0
56-
57 SHA256_Init(&key->head);-
58 key->tail = key->head;-
59 key->md = key->head;-
60-
61 key->payload_length = ((size_t)-1);-
62-
63 return
never executed: return ret < 0 ? 0 : 1;
ret < 0
ret < 0Description
TRUEnever evaluated
FALSEnever evaluated
? 0 : 1;
never executed: return ret < 0 ? 0 : 1;
0
64}-
65-
66-
67-
68-
69-
70-
71-
72void sha256_block_data_order(void *c, const void *p, size_t len);-
73-
74static void sha256_update(SHA256_CTX *c, const void *data, size_t len)-
75{-
76 const unsigned char *ptr = data;-
77 size_t res;-
78-
79 if ((
(res = c->num)Description
TRUEnever evaluated
FALSEnever evaluated
res = c->num)
(res = c->num)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
80 res = (16*4) - res;-
81 if (len < res
len < resDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
82 res = len;
never executed: res = len;
0
83 SHA256_Update(c, ptr, res);-
84 ptr += res;-
85 len -= res;-
86 }
never executed: end of block
0
87-
88 res = len % (16*4);-
89 len -= res;-
90-
91 if (len
lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
92 sha256_block_data_order(c, ptr, len / (16*4));-
93-
94 ptr += len;-
95 c->Nh += len >> 29;-
96 c->Nl += len <<= 3;-
97 if (c->Nl < (unsigned int)len
c->Nl < (unsigned int)lenDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
98 c->Nh++;
never executed: c->Nh++;
0
99 }
never executed: end of block
0
100-
101 if (res
resDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
102 SHA256_Update(c, ptr, res);
never executed: SHA256_Update(c, ptr, res);
0
103}
never executed: end of block
0
104typedef struct {-
105 unsigned int A[8], B[8], C[8], D[8], E[8], F[8], G[8], H[8];-
106} SHA256_MB_CTX;-
107typedef struct {-
108 const unsigned char *ptr;-
109 int blocks;-
110} HASH_DESC;-
111-
112void sha256_multi_block(SHA256_MB_CTX *, const HASH_DESC *, int);-
113-
114typedef struct {-
115 const unsigned char *inp;-
116 unsigned char *out;-
117 int blocks;-
118 u64 iv[2];-
119} CIPH_DESC;-
120-
121void aesni_multi_cbc_encrypt(CIPH_DESC *, void *, int);-
122-
123static size_t tls1_1_multi_block_encrypt(EVP_AES_HMAC_SHA256 *key,-
124 unsigned char *out,-
125 const unsigned char *inp,-
126 size_t inp_len, int n4x)-
127{-
128 HASH_DESC hash_d[8], edges[8];-
129 CIPH_DESC ciph_d[8];-
130 unsigned char storage[sizeof(SHA256_MB_CTX) + 32];-
131 union {-
132 u64 q[16];-
133 u32 d[32];-
134 u8 c[128];-
135 } blocks[8];-
136 SHA256_MB_CTX *ctx;-
137 unsigned int frag, last, packlen, i, x4 = 4 * n4x, minblocks, processed =-
138 0;-
139 size_t ret = 0;-
140 u8 *IVs;-
141-
142 u64 seqnum;-
143-
144-
145-
146 if (RAND_bytes((IVs = blocks[0].c), 16 * x4) <= 0
RAND_bytes((IV... 16 * x4) <= 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
147 return
never executed: return 0;
0;
never executed: return 0;
0
148-
149-
150 ctx = (SHA256_MB_CTX *) (storage + 32 - ((size_t)storage % 32));-
151-
152 frag = (unsigned int)inp_len >> (1 + n4x);-
153 last = (unsigned int)inp_len + frag - (frag << (1 + n4x));-
154 if (last > frag
last > fragDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((last + 13 + ...64) < (x4 - 1)Description
TRUEnever evaluated
FALSEnever evaluated
last + 13 + 9) % 64) < (x4 - 1)
((last + 13 + ...64) < (x4 - 1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
155 frag++;-
156 last -= x4 - 1;-
157 }
never executed: end of block
0
158-
159 packlen = 5 + 16 + ((frag + 32 + 16) & -16);-
160-
161-
162 hash_d[0].ptr = inp;-
163 ciph_d[0].inp = inp;-
164-
165 ciph_d[0].out = out + 5 + 16;-
166 memcpy(ciph_d[0].out - 16, IVs, 16);-
167 memcpy(ciph_d[0].iv, IVs, 16);-
168 IVs += 16;-
169-
170 for (i = 1; i < x4
i < x4Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
171 ciph_d[i].inp = hash_d[i].ptr = hash_d[i - 1].ptr + frag;-
172 ciph_d[i].out = ciph_d[i - 1].out + packlen;-
173 memcpy(ciph_d[i].out - 16, IVs, 16);-
174 memcpy(ciph_d[i].iv, IVs, 16);-
175 IVs += 16;-
176 }
never executed: end of block
0
177-
178-
179 memcpy(blocks[0].c, key->md.data, 8);-
180 seqnum = ({ u64 ret_=(blocks[0].q[0]); asm ("bswapq %0" : "+r"(ret_)); ret_; });-
181-
182 for (i = 0; i < x4
i < x4Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
183 unsigned int len = (i == (x4 - 1)
i == (x4 - 1)Description
TRUEnever evaluated
FALSEnever evaluated
? last : frag);
0
184-
185-
186-
187-
188 ctx->A[i] = key->md.h[0];-
189 ctx->B[i] = key->md.h[1];-
190 ctx->C[i] = key->md.h[2];-
191 ctx->D[i] = key->md.h[3];-
192 ctx->E[i] = key->md.h[4];-
193 ctx->F[i] = key->md.h[5];-
194 ctx->G[i] = key->md.h[6];-
195 ctx->H[i] = key->md.h[7];-
196-
197-
198-
199 blocks[i].q[0] = ({ u64 ret_=(seqnum + i); asm ("bswapq %0" : "+r"(ret_)); ret_; });-
200-
201-
202-
203-
204-
205-
206 blocks[i].c[8] = ((u8 *)key->md.data)[8];-
207 blocks[i].c[9] = ((u8 *)key->md.data)[9];-
208 blocks[i].c[10] = ((u8 *)key->md.data)[10];-
209-
210 blocks[i].c[11] = (u8)(len >> 8);-
211 blocks[i].c[12] = (u8)(len);-
212-
213 memcpy(blocks[i].c + 13, hash_d[i].ptr, 64 - 13);-
214 hash_d[i].ptr += 64 - 13;-
215 hash_d[i].blocks = (len - (64 - 13)) / 64;-
216-
217 edges[i].ptr = blocks[i].c;-
218 edges[i].blocks = 1;-
219 }
never executed: end of block
0
220-
221-
222 sha256_multi_block(ctx, edges, n4x);-
223 minblocks = ((frag <= last
frag <= lastDescription
TRUEnever evaluated
FALSEnever evaluated
? frag : last) - (64 - 13)) / 64;
0
224 if (minblocks > 2048 / 64
minblocks > 2048 / 64Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
225 for (i = 0; i < x4
i < x4Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
226 edges[i].ptr = hash_d[i].ptr;-
227 edges[i].blocks = 2048 / 64;-
228 ciph_d[i].blocks = 2048 / 16;-
229 }
never executed: end of block
0
230 do {-
231 sha256_multi_block(ctx, edges, n4x);-
232 aesni_multi_cbc_encrypt(ciph_d, &key->ks, n4x);-
233-
234 for (i = 0; i < x4
i < x4Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
235 edges[i].ptr = hash_d[i].ptr += 2048;-
236 hash_d[i].blocks -= 2048 / 64;-
237 edges[i].blocks = 2048 / 64;-
238 ciph_d[i].inp += 2048;-
239 ciph_d[i].out += 2048;-
240 ciph_d[i].blocks = 2048 / 16;-
241 memcpy(ciph_d[i].iv, ciph_d[i].out - 16, 16);-
242 }
never executed: end of block
0
243 processed += 2048;-
244 minblocks -= 2048 / 64;-
245 }
never executed: end of block
while (minblocks > 2048 / 64
minblocks > 2048 / 64Description
TRUEnever evaluated
FALSEnever evaluated
);
0
246 }
never executed: end of block
0
247-
248-
249 sha256_multi_block(ctx, hash_d, n4x);-
250-
251 memset(blocks, 0, sizeof(blocks));-
252 for (i = 0; i < x4
i < x4Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
253 unsigned int len = (i == (x4 - 1)
i == (x4 - 1)Description
TRUEnever evaluated
FALSEnever evaluated
? last : frag),
0
254 off = hash_d[i].blocks * 64;-
255 const unsigned char *ptr = hash_d[i].ptr + off;-
256-
257 off = (len - processed) - (64 - 13) - off;-
258 memcpy(blocks[i].c, ptr, off);-
259 blocks[i].c[off] = 0x80;-
260 len += 64 + 13;-
261 len *= 8;-
262 if (off < (64 - 8)
off < (64 - 8)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
263-
264 blocks[i].d[15] = ({ u32 ret_=(len); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
265-
266-
267-
268 edges[i].blocks = 1;-
269 }
never executed: end of block
else {
0
270-
271 blocks[i].d[31] = ({ u32 ret_=(len); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
272-
273-
274-
275 edges[i].blocks = 2;-
276 }
never executed: end of block
0
277 edges[i].ptr = blocks[i].c;-
278 }
never executed: end of block
0
279-
280-
281 sha256_multi_block(ctx, edges, n4x);-
282-
283 memset(blocks, 0, sizeof(blocks));-
284 for (i = 0; i < x4
i < x4Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
285-
286 blocks[i].d[0] = ({ u32 ret_=(ctx->A[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
287 ctx->A[i] = key->tail.h[0];-
288 blocks[i].d[1] = ({ u32 ret_=(ctx->B[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
289 ctx->B[i] = key->tail.h[1];-
290 blocks[i].d[2] = ({ u32 ret_=(ctx->C[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
291 ctx->C[i] = key->tail.h[2];-
292 blocks[i].d[3] = ({ u32 ret_=(ctx->D[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
293 ctx->D[i] = key->tail.h[3];-
294 blocks[i].d[4] = ({ u32 ret_=(ctx->E[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
295 ctx->E[i] = key->tail.h[4];-
296 blocks[i].d[5] = ({ u32 ret_=(ctx->F[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
297 ctx->F[i] = key->tail.h[5];-
298 blocks[i].d[6] = ({ u32 ret_=(ctx->G[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
299 ctx->G[i] = key->tail.h[6];-
300 blocks[i].d[7] = ({ u32 ret_=(ctx->H[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
301 ctx->H[i] = key->tail.h[7];-
302 blocks[i].c[32] = 0x80;-
303 blocks[i].d[15] = ({ u32 ret_=((64 + 32) * 8); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
304 edges[i].ptr = blocks[i].c;-
305 edges[i].blocks = 1;-
306 }
never executed: end of block
0
307-
308-
309 sha256_multi_block(ctx, edges, n4x);-
310-
311 for (i = 0; i < x4
i < x4Description
TRUEnever evaluated
FALSEnever evaluated
; i++) {
0
312 unsigned int len = (i == (x4 - 1)
i == (x4 - 1)Description
TRUEnever evaluated
FALSEnever evaluated
? last : frag), pad, j;
0
313 unsigned char *out0 = out;-
314-
315 memcpy(ciph_d[i].out, ciph_d[i].inp, len - processed);-
316 ciph_d[i].inp = ciph_d[i].out;-
317-
318 out += 5 + 16 + len;-
319-
320-
321 *(u32 *)(out + 0) = ({ u32 ret_=(ctx->A[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
322 *(u32 *)(out + 4) = ({ u32 ret_=(ctx->B[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
323 *(u32 *)(out + 8) = ({ u32 ret_=(ctx->C[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
324 *(u32 *)(out + 12) = ({ u32 ret_=(ctx->D[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
325 *(u32 *)(out + 16) = ({ u32 ret_=(ctx->E[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
326 *(u32 *)(out + 20) = ({ u32 ret_=(ctx->F[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
327 *(u32 *)(out + 24) = ({ u32 ret_=(ctx->G[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
328 *(u32 *)(out + 28) = ({ u32 ret_=(ctx->H[i]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
329 out += 32;-
330 len += 32;-
331-
332-
333 pad = 15 - len % 16;-
334 for (j = 0; j <= pad
j <= padDescription
TRUEnever evaluated
FALSEnever evaluated
; j++)
0
335 *(
never executed: *(out++) = pad;
out++) = pad;
never executed: *(out++) = pad;
0
336 len += pad + 1;-
337-
338 ciph_d[i].blocks = (len - processed) / 16;-
339 len += 16;-
340-
341-
342 out0[0] = ((u8 *)key->md.data)[8];-
343 out0[1] = ((u8 *)key->md.data)[9];-
344 out0[2] = ((u8 *)key->md.data)[10];-
345 out0[3] = (u8)(len >> 8);-
346 out0[4] = (u8)(len);-
347-
348 ret += len + 5;-
349 inp += frag;-
350 }
never executed: end of block
0
351-
352 aesni_multi_cbc_encrypt(ciph_d, &key->ks, n4x);-
353-
354 OPENSSL_cleanse(blocks, sizeof(blocks));-
355 OPENSSL_cleanse(ctx, sizeof(*ctx));-
356-
357 return
never executed: return ret;
ret;
never executed: return ret;
0
358}-
359-
360-
361static int aesni_cbc_hmac_sha256_cipher(EVP_CIPHER_CTX *ctx,-
362 unsigned char *out,-
363 const unsigned char *in, size_t len)-
364{-
365 EVP_AES_HMAC_SHA256 *key = ((EVP_AES_HMAC_SHA256 *)EVP_CIPHER_CTX_get_cipher_data(ctx));-
366 unsigned int l;-
367 size_t plen = key->payload_length, iv = 0,-
368-
369 sha_off = 0;-
370-
371 size_t aes_off = 0, blocks;-
372-
373 sha_off = (16*4) - key->md.num;-
374-
375-
376 key->payload_length = ((size_t)-1);-
377-
378 if (len % 16
len % 16Description
TRUEnever evaluated
FALSEnever evaluated
)
0
379 return
never executed: return 0;
0;
never executed: return 0;
0
380-
381 if (EVP_CIPHER_CTX_encrypting(ctx)
EVP_CIPHER_CTX_encrypting(ctx)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
382 if (plen == ((size_t)-1)
plen == ((size_t)-1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
383 plen = len;
never executed: plen = len;
0
384 else if (len !=
len != ((plen ...2 + 16) & -16)Description
TRUEnever evaluated
FALSEnever evaluated
0
385 ((plen + 32 +
len != ((plen ...2 + 16) & -16)Description
TRUEnever evaluated
FALSEnever evaluated
0
386 16) & -16)
len != ((plen ...2 + 16) & -16)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
387 return
never executed: return 0;
0;
never executed: return 0;
0
388 else if (key->aux.tls_ver >= 0x0302
key->aux.tls_ver >= 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
)
0
389 iv = 16;
never executed: iv = 16;
0
390 if (((
(OPENSSL_ia32c...] & (1 << 29))Description
TRUEnever evaluated
FALSEnever evaluated
OPENSSL_ia32cap_P[2] & (1 << 29))
(OPENSSL_ia32c...] & (1 << 29))Description
TRUEnever evaluated
FALSEnever evaluated
||
0
391 ((
(OPENSSL_ia32c...<< (60 - 32)))Description
TRUEnever evaluated
FALSEnever evaluated
OPENSSL_ia32cap_P[1] & (1 << (60 - 32)))
(OPENSSL_ia32c...<< (60 - 32)))Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
392 ((
((OPENSSL_ia32... & (1 << 30)))Description
TRUEnever evaluated
FALSEnever evaluated
OPENSSL_ia32cap_P[1] & (1 << (43 - 32)))
((OPENSSL_ia32... & (1 << 30)))Description
TRUEnever evaluated
FALSEnever evaluated
0
393 | (OPENSSL_ia32cap_P[0] & (1 << 30)))
((OPENSSL_ia32... & (1 << 30)))Description
TRUEnever evaluated
FALSEnever evaluated
)) &&
0
394 plen > (sha_off + iv)
plen > (sha_off + iv)Description
TRUEnever evaluated
FALSEnever evaluated
&&
0
395 (
(blocks = (ple...iv)) / (16*4))Description
TRUEnever evaluated
FALSEnever evaluated
blocks = (plen - (sha_off + iv)) / (16*4))
(blocks = (ple...iv)) / (16*4))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
396 sha256_update(&key->md, in + iv, sha_off);-
397-
398 (void)aesni_cbc_sha256_enc(in, out, blocks, &key->ks,-
399 EVP_CIPHER_CTX_iv_noconst(ctx),-
400 &key->md, in + iv + sha_off);-
401 blocks *= (16*4);-
402 aes_off += blocks;-
403 sha_off += blocks;-
404 key->md.Nh += blocks >> 29;-
405 key->md.Nl += blocks <<= 3;-
406 if (key->md.Nl < (unsigned int)blocks
key->md.Nl < (...ned int)blocksDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
407 key->md.Nh++;
never executed: key->md.Nh++;
0
408 }
never executed: end of block
else {
0
409 sha_off = 0;-
410 }
never executed: end of block
0
411-
412 sha_off += iv;-
413 sha256_update(&key->md, in + sha_off, plen - sha_off);-
414-
415 if (plen != len
plen != lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
416 if (in != out
in != outDescription
TRUEnever evaluated
FALSEnever evaluated
)
0
417 memcpy(out + aes_off, in + aes_off, plen - aes_off);
never executed: memcpy(out + aes_off, in + aes_off, plen - aes_off);
0
418-
419-
420 SHA256_Final(out + plen, &key->md);-
421 key->md = key->tail;-
422 sha256_update(&key->md, out + plen, 32);-
423 SHA256_Final(out + plen, &key->md);-
424-
425-
426 plen += 32;-
427 for (l = len - plen - 1; plen < len
plen < lenDescription
TRUEnever evaluated
FALSEnever evaluated
; plen++)
0
428 out[plen] = l;
never executed: out[plen] = l;
0
429-
430 aesni_cbc_encrypt(out + aes_off, out + aes_off, len - aes_off,-
431 &key->ks, EVP_CIPHER_CTX_iv_noconst(ctx), 1);-
432 }
never executed: end of block
else {
0
433 aesni_cbc_encrypt(in + aes_off, out + aes_off, len - aes_off,-
434 &key->ks, EVP_CIPHER_CTX_iv_noconst(ctx), 1);-
435 }
never executed: end of block
0
436 } else {-
437 union {-
438 unsigned int u[32 / sizeof(unsigned int)];-
439 unsigned char c[64 + 32];-
440 } mac, *pmac;-
441-
442-
443 pmac = (void *)(((size_t)mac.c + 63) & ((size_t)0 - 64));-
444-
445-
446 aesni_cbc_encrypt(in, out, len, &key->ks,-
447 EVP_CIPHER_CTX_iv_noconst(ctx), 0);-
448-
449 if (plen != ((size_t)-1)
plen != ((size_t)-1)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
450 size_t inp_len, mask, j, i;-
451 unsigned int res, maxpad, pad, bitlen;-
452 int ret = 1;-
453 union {-
454 unsigned int u[16];-
455 unsigned char c[(16*4)];-
456 } *data = (void *)key->md.data;-
457-
458 if ((
(key->aux.tls_... 3]) >= 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
key->aux.tls_aad[plen - 4] << 8 | key->aux.tls_aad[plen - 3])
(key->aux.tls_... 3]) >= 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
0
459 >= 0x0302
(key->aux.tls_... 3]) >= 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
)
0
460 iv = 16;
never executed: iv = 16;
0
461-
462 if (len < (iv + 32 + 1)
len < (iv + 32 + 1)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
463 return
never executed: return 0;
0;
never executed: return 0;
0
464-
465-
466 out += iv;-
467 len -= iv;-
468-
469-
470 pad = out[len - 1];-
471 maxpad = len - (32 + 1);-
472 maxpad |= (255 - maxpad) >> (sizeof(maxpad) * 8 - 8);-
473 maxpad &= 255;-
474-
475 mask = constant_time_ge(maxpad, pad);-
476 ret &= mask;-
477-
478-
479-
480-
481-
482-
483 pad = constant_time_select(mask, pad, maxpad);-
484-
485 inp_len = len - (32 + pad + 1);-
486-
487 key->aux.tls_aad[plen - 2] = inp_len >> 8;-
488 key->aux.tls_aad[plen - 1] = inp_len;-
489-
490-
491 key->md = key->head;-
492 sha256_update(&key->md, key->aux.tls_aad, plen);-
493-
494-
495 len -= 32;-
496 if (len >= (256 + (16*4))
len >= (256 + (16*4))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
497 j = (len - (256 + (16*4))) & (0 - (16*4));-
498 j += (16*4) - key->md.num;-
499 sha256_update(&key->md, out, j);-
500 out += j;-
501 len -= j;-
502 inp_len -= j;-
503 }
never executed: end of block
0
504-
505-
506 bitlen = key->md.Nl + (inp_len << 3);-
507-
508 bitlen = ({ u32 ret_=(bitlen); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
509 pmac->u[0] = 0;-
510 pmac->u[1] = 0;-
511 pmac->u[2] = 0;-
512 pmac->u[3] = 0;-
513 pmac->u[4] = 0;-
514 pmac->u[5] = 0;-
515 pmac->u[6] = 0;-
516 pmac->u[7] = 0;-
517-
518 for (res = key->md.num, j = 0; j < len
j < lenDescription
TRUEnever evaluated
FALSEnever evaluated
; j++) {
0
519 size_t c = out[j];-
520 mask = (j - inp_len) >> (sizeof(j) * 8 - 8);-
521 c &= mask;-
522 c |= 0x80 & ~mask & ~((inp_len - j) >> (sizeof(j) * 8 - 8));-
523 data->c[res++] = (unsigned char)c;-
524-
525 if (res != (16*4)
res != (16*4)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
526 continue;
never executed: continue;
0
527-
528-
529 mask = 0 - ((inp_len + 7 - j) >> (sizeof(j) * 8 - 1));-
530 data->u[16 - 1] |= bitlen & mask;-
531 sha256_block_data_order(&key->md, data, 1);-
532 mask &= 0 - ((j - inp_len - 72) >> (sizeof(j) * 8 - 1));-
533 pmac->u[0] |= key->md.h[0] & mask;-
534 pmac->u[1] |= key->md.h[1] & mask;-
535 pmac->u[2] |= key->md.h[2] & mask;-
536 pmac->u[3] |= key->md.h[3] & mask;-
537 pmac->u[4] |= key->md.h[4] & mask;-
538 pmac->u[5] |= key->md.h[5] & mask;-
539 pmac->u[6] |= key->md.h[6] & mask;-
540 pmac->u[7] |= key->md.h[7] & mask;-
541 res = 0;-
542 }
never executed: end of block
0
543-
544 for (i = res; i < (16*4)
i < (16*4)Description
TRUEnever evaluated
FALSEnever evaluated
; i++, j++)
0
545 data->c[i] = 0;
never executed: data->c[i] = 0;
0
546-
547 if (res > (16*4) - 8
res > (16*4) - 8Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
548 mask = 0 - ((inp_len + 8 - j) >> (sizeof(j) * 8 - 1));-
549 data->u[16 - 1] |= bitlen & mask;-
550 sha256_block_data_order(&key->md, data, 1);-
551 mask &= 0 - ((j - inp_len - 73) >> (sizeof(j) * 8 - 1));-
552 pmac->u[0] |= key->md.h[0] & mask;-
553 pmac->u[1] |= key->md.h[1] & mask;-
554 pmac->u[2] |= key->md.h[2] & mask;-
555 pmac->u[3] |= key->md.h[3] & mask;-
556 pmac->u[4] |= key->md.h[4] & mask;-
557 pmac->u[5] |= key->md.h[5] & mask;-
558 pmac->u[6] |= key->md.h[6] & mask;-
559 pmac->u[7] |= key->md.h[7] & mask;-
560-
561 memset(data, 0, (16*4));-
562 j += 64;-
563 }
never executed: end of block
0
564 data->u[16 - 1] = bitlen;-
565 sha256_block_data_order(&key->md, data, 1);-
566 mask = 0 - ((j - inp_len - 73) >> (sizeof(j) * 8 - 1));-
567 pmac->u[0] |= key->md.h[0] & mask;-
568 pmac->u[1] |= key->md.h[1] & mask;-
569 pmac->u[2] |= key->md.h[2] & mask;-
570 pmac->u[3] |= key->md.h[3] & mask;-
571 pmac->u[4] |= key->md.h[4] & mask;-
572 pmac->u[5] |= key->md.h[5] & mask;-
573 pmac->u[6] |= key->md.h[6] & mask;-
574 pmac->u[7] |= key->md.h[7] & mask;-
575-
576-
577 pmac->u[0] = ({ u32 ret_=(pmac->u[0]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
578 pmac->u[1] = ({ u32 ret_=(pmac->u[1]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
579 pmac->u[2] = ({ u32 ret_=(pmac->u[2]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
580 pmac->u[3] = ({ u32 ret_=(pmac->u[3]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
581 pmac->u[4] = ({ u32 ret_=(pmac->u[4]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
582 pmac->u[5] = ({ u32 ret_=(pmac->u[5]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
583 pmac->u[6] = ({ u32 ret_=(pmac->u[6]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
584 pmac->u[7] = ({ u32 ret_=(pmac->u[7]); asm ("bswapl %0" : "+r"(ret_)); ret_; });-
585 len += 32;-
586 key->md = key->tail;-
587 sha256_update(&key->md, pmac->c, 32);-
588 SHA256_Final(pmac->c, &key->md);-
589-
590-
591 out += inp_len;-
592 len -= inp_len;-
593-
594 {-
595 unsigned char *p =-
596 out + len - 1 - maxpad - 32;-
597 size_t off = out - p;-
598 unsigned int c, cmask;-
599-
600 maxpad += 32;-
601 for (res = 0, i = 0, j = 0; j < maxpad
j < maxpadDescription
TRUEnever evaluated
FALSEnever evaluated
; j++) {
0
602 c = p[j];-
603 cmask =-
604 ((int)(j - off - 32)) >>-
605 (sizeof(int) * 8 - 1);-
606 res |= (c ^ pad) & ~cmask;-
607 cmask &= ((int)(off - 1 - j)) >> (sizeof(int) * 8 - 1);-
608 res |= (c ^ pmac->c[i]) & cmask;-
609 i += 1 & cmask;-
610 }
never executed: end of block
0
611 maxpad -= 32;-
612-
613 res = 0 - ((0 - res) >> (sizeof(res) * 8 - 1));-
614 ret &= (int)~res;-
615 }-
616 return
never executed: return ret;
ret;
never executed: return ret;
0
617 } else {-
618 sha256_update(&key->md, out, len);-
619 }
never executed: end of block
0
620 }-
621-
622 return
never executed: return 1;
1;
never executed: return 1;
0
623}-
624-
625static int aesni_cbc_hmac_sha256_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg,-
626 void *ptr)-
627{-
628 EVP_AES_HMAC_SHA256 *key = ((EVP_AES_HMAC_SHA256 *)EVP_CIPHER_CTX_get_cipher_data(ctx));-
629 unsigned int u_arg = (unsigned int)arg;-
630-
631 switch (type) {-
632 case
never executed: case 0x17:
0x17:
never executed: case 0x17:
0
633 {-
634 unsigned int i;-
635 unsigned char hmac_key[64];-
636-
637 memset(hmac_key, 0, sizeof(hmac_key));-
638-
639 if (arg < 0
arg < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
640 return
never executed: return -1;
-1;
never executed: return -1;
0
641-
642 if (u_arg > sizeof(hmac_key)
u_arg > sizeof(hmac_key)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
643 SHA256_Init(&key->head);-
644 sha256_update(&key->head, ptr, arg);-
645 SHA256_Final(hmac_key, &key->head);-
646 }
never executed: end of block
else {
0
647 memcpy(hmac_key, ptr, arg);-
648 }
never executed: end of block
0
649-
650 for (i = 0; i < sizeof(hmac_key)
i < sizeof(hmac_key)Description
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
651 hmac_key[i] ^= 0x36;
never executed: hmac_key[i] ^= 0x36;
0
652 SHA256_Init(&key->head);-
653 sha256_update(&key->head, hmac_key, sizeof(hmac_key));-
654-
655 for (i = 0; i < sizeof(hmac_key)
i < sizeof(hmac_key)Description
TRUEnever evaluated
FALSEnever evaluated
; i++)
0
656 hmac_key[i] ^= 0x36 ^ 0x5c;
never executed: hmac_key[i] ^= 0x36 ^ 0x5c;
0
657 SHA256_Init(&key->tail);-
658 sha256_update(&key->tail, hmac_key, sizeof(hmac_key));-
659-
660 OPENSSL_cleanse(hmac_key, sizeof(hmac_key));-
661-
662 return
never executed: return 1;
1;
never executed: return 1;
0
663 }-
664 case
never executed: case 0x16:
0x16:
never executed: case 0x16:
0
665 {-
666 unsigned char *p = ptr;-
667 unsigned int len;-
668-
669 if (arg != 13
arg != 13Description
TRUEnever evaluated
FALSEnever evaluated
)
0
670 return
never executed: return -1;
-1;
never executed: return -1;
0
671-
672 len = p[arg - 2] << 8 | p[arg - 1];-
673-
674 if (EVP_CIPHER_CTX_encrypting(ctx)
EVP_CIPHER_CTX_encrypting(ctx)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
675 key->payload_length = len;-
676 if ((
(key->aux.tls_... 3]) >= 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
key->aux.tls_ver =
(key->aux.tls_... 3]) >= 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
0
677 p[arg - 4] << 8 | p[arg - 3]) >= 0x0302
(key->aux.tls_... 3]) >= 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
678 if (len < 16
len < 16Description
TRUEnever evaluated
FALSEnever evaluated
)
0
679 return
never executed: return 0;
0;
never executed: return 0;
0
680 len -= 16;-
681 p[arg - 2] = len >> 8;-
682 p[arg - 1] = len;-
683 }
never executed: end of block
0
684 key->md = key->head;-
685 sha256_update(&key->md, p, arg);-
686-
687 return
never executed: return (int)(((len + 32 + 16) & -16) - len);
(int)(((len + 32 +
never executed: return (int)(((len + 32 + 16) & -16) - len);
0
688 16) & -16)
never executed: return (int)(((len + 32 + 16) & -16) - len);
0
689 - len);
never executed: return (int)(((len + 32 + 16) & -16) - len);
0
690 } else {-
691 memcpy(key->aux.tls_aad, ptr, arg);-
692 key->payload_length = arg;-
693-
694 return
never executed: return 32;
32;
never executed: return 32;
0
695 }-
696 }-
697-
698 case
never executed: case 0x1c:
0x1c:
never executed: case 0x1c:
0
699 return
never executed: return (int)(5 + 16 + ((arg + 32 + 16) & -16));
(int)(5 + 16 + ((arg + 32 + 16) & -16));
never executed: return (int)(5 + 16 + ((arg + 32 + 16) & -16));
0
700 case
never executed: case 0x19:
0x19:
never executed: case 0x19:
0
701 {-
702 EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *param =-
703 (EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *) ptr;-
704 unsigned int n4x = 1, x4;-
705 unsigned int frag, last, packlen, inp_len;-
706-
707 if (arg < 0
arg < 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
708 return
never executed: return -1;
-1;
never executed: return -1;
0
709-
710 if (u_arg < sizeof(EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM)
u_arg < sizeof...TIBLOCK_PARAM)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
711 return
never executed: return -1;
-1;
never executed: return -1;
0
712-
713 inp_len = param->inp[11] << 8 | param->inp[12];-
714-
715 if (EVP_CIPHER_CTX_encrypting(ctx)
EVP_CIPHER_CTX_encrypting(ctx)Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
716 if ((
(param->inp[9]...[10]) < 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
param->inp[9] << 8 | param->inp[10]) < 0x0302
(param->inp[9]...[10]) < 0x0302Description
TRUEnever evaluated
FALSEnever evaluated
)
0
717 return
never executed: return -1;
-1;
never executed: return -1;
0
718-
719 if (inp_len
inp_lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
720 if (inp_len < 4096
inp_len < 4096Description
TRUEnever evaluated
FALSEnever evaluated
)
0
721 return
never executed: return 0;
0;
never executed: return 0;
0
722-
723 if (inp_len >= 8192
inp_len >= 8192Description
TRUEnever evaluated
FALSEnever evaluated
&& OPENSSL_ia32cap_P[2] & (1 << 5)
OPENSSL_ia32ca...[2] & (1 << 5)Description
TRUEnever evaluated
FALSEnever evaluated
)
0
724 n4x = 2;
never executed: n4x = 2;
0
725 }
never executed: end of block
else if ((
(n4x = param->interleave / 4)Description
TRUEnever evaluated
FALSEnever evaluated
n4x = param->interleave / 4)
(n4x = param->interleave / 4)Description
TRUEnever evaluated
FALSEnever evaluated
&& n4x <= 2
n4x <= 2Description
TRUEnever evaluated
FALSEnever evaluated
)
0
726 inp_len = param->len;
never executed: inp_len = param->len;
0
727 else-
728 return
never executed: return -1;
-1;
never executed: return -1;
0
729-
730 key->md = key->head;-
731 sha256_update(&key->md, param->inp, 13);-
732-
733 x4 = 4 * n4x;-
734 n4x += 1;-
735-
736 frag = inp_len >> n4x;-
737 last = inp_len + frag - (frag << n4x);-
738 if (last > frag
last > fragDescription
TRUEnever evaluated
FALSEnever evaluated
&& ((
((last + 13 + ...64 < (x4 - 1))Description
TRUEnever evaluated
FALSEnever evaluated
last + 13 + 9) % 64 < (x4 - 1))
((last + 13 + ...64 < (x4 - 1))Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
739 frag++;-
740 last -= x4 - 1;-
741 }
never executed: end of block
0
742-
743 packlen = 5 + 16 + ((frag + 32 + 16) & -16);-
744 packlen = (packlen << n4x) - packlen;-
745 packlen += 5 + 16 + ((last + 32 + 16) & -16);-
746-
747 param->interleave = x4;-
748-
749 return
never executed: return (int)packlen;
(int)packlen;
never executed: return (int)packlen;
0
750 } else-
751 return
never executed: return -1;
-1;
never executed: return -1;
0
752 }-
753 case
never executed: case 0x1a:
0x1a:
never executed: case 0x1a:
0
754 {-
755 EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *param =-
756 (EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM *) ptr;-
757-
758 return
never executed: return (int)tls1_1_multi_block_encrypt(key, param->out, param->inp, param->len, param->interleave / 4);
(int)tls1_1_multi_block_encrypt(key, param->out,
never executed: return (int)tls1_1_multi_block_encrypt(key, param->out, param->inp, param->len, param->interleave / 4);
0
759 param->inp, param->len,
never executed: return (int)tls1_1_multi_block_encrypt(key, param->out, param->inp, param->len, param->interleave / 4);
0
760 param->interleave / 4);
never executed: return (int)tls1_1_multi_block_encrypt(key, param->out, param->inp, param->len, param->interleave / 4);
0
761 }-
762 case
never executed: case 0x1b:
0x1b:
never executed: case 0x1b:
0
763-
764 default
never executed: default:
:
never executed: default:
0
765 return
never executed: return -1;
-1;
never executed: return -1;
0
766 }-
767}-
768-
769static EVP_CIPHER aesni_128_cbc_hmac_sha256_cipher = {-
770-
771 948,-
772-
773-
774-
775 16, 16, 16,-
776 0x2 | 0x1000 |-
777 0x200000 | 0x400000,-
778 aesni_cbc_hmac_sha256_init_key,-
779 aesni_cbc_hmac_sha256_cipher,-
780 -
781 ((void *)0)-
782 ,-
783 sizeof(EVP_AES_HMAC_SHA256),-
784 0x1000 ? -
785 ((void *)0) -
786 : EVP_CIPHER_set_asn1_iv,-
787 0x1000 ? -
788 ((void *)0) -
789 : EVP_CIPHER_get_asn1_iv,-
790 aesni_cbc_hmac_sha256_ctrl,-
791 -
792 ((void *)0)-
793-
794};-
795-
796static EVP_CIPHER aesni_256_cbc_hmac_sha256_cipher = {-
797-
798 950,-
799-
800-
801-
802 16, 32, 16,-
803 0x2 | 0x1000 |-
804 0x200000 | 0x400000,-
805 aesni_cbc_hmac_sha256_init_key,-
806 aesni_cbc_hmac_sha256_cipher,-
807 -
808 ((void *)0)-
809 ,-
810 sizeof(EVP_AES_HMAC_SHA256),-
811 0x1000 ? -
812 ((void *)0) -
813 : EVP_CIPHER_set_asn1_iv,-
814 0x1000 ? -
815 ((void *)0) -
816 : EVP_CIPHER_get_asn1_iv,-
817 aesni_cbc_hmac_sha256_ctrl,-
818 -
819 ((void *)0)-
820-
821};-
822-
823const EVP_CIPHER *EVP_aes_128_cbc_hmac_sha256(void)-
824{-
825 return
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
((
(OPENSSL_ia32c... (1<<(57-32)))Description
TRUEnever evaluated
FALSEevaluated 3920 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
OPENSSL_ia32cap_P[1] & (1<<(57-32)))
(OPENSSL_ia32c... (1<<(57-32)))Description
TRUEnever evaluated
FALSEevaluated 3920 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
&&
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
826 aesni_cbc_sha256_enc(
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
827 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
828 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
829 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
830 , 0,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
831 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
832 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
833 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
834 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
835 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
836 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
837 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
838 )
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
?
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
839 &aesni_128_cbc_hmac_sha256_cipher :
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
3920
840 ((void *)0)
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
3920
841 );
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_128_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
3920
842}-
843-
844const EVP_CIPHER *EVP_aes_256_cbc_hmac_sha256(void)-
845{-
846 return
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
((
(OPENSSL_ia32c... (1<<(57-32)))Description
TRUEnever evaluated
FALSEevaluated 3920 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
OPENSSL_ia32cap_P[1] & (1<<(57-32)))
(OPENSSL_ia32c... (1<<(57-32)))Description
TRUEnever evaluated
FALSEevaluated 3920 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
&&
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
847 aesni_cbc_sha256_enc(
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
848 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
849 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
850 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
851 , 0,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
852 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
853 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
854 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
855 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
856 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
857 ,
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
858 ((void *)0)
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
859 )
aesni_cbc_sha2... ((void *)0) )Description
TRUEnever evaluated
FALSEnever evaluated
?
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
0-3920
860 &aesni_256_cbc_hmac_sha256_cipher :
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
3920
861 ((void *)0)
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
3920
862 );
executed 3920 times by 1 test: return ((OPENSSL_ia32cap_P[1] & (1<<(57-32))) && aesni_cbc_sha256_enc( ((void *)0) , ((void *)0) , 0, ((void *)0) , ((void *)0) , ((void *)0) , ((void *)0) ) ? &aesni_256_cbc_hmac_sha256_cipher : ((void *)0) );
Executed by:
  • libcrypto.so.1.1
3920
863}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2