Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/aes/aes_ige.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||
---|---|---|---|---|---|---|---|---|
1 | - | |||||||
2 | - | |||||||
3 | - | |||||||
4 | typedef struct { | - | ||||||
5 | unsigned long data[(16 / sizeof(unsigned long))]; | - | ||||||
6 | } aes_block_t; | - | ||||||
7 | void | - | ||||||
8 | AES_ige_encrypt(const unsigned char *in, unsigned char *out, size_t length, | - | ||||||
9 | const AES_KEY *key, unsigned char *ivec, const int enc) | - | ||||||
10 | { | - | ||||||
11 | size_t n; | - | ||||||
12 | size_t len; | - | ||||||
13 | - | |||||||
14 | (void)(((length % 16) == 0) ? 0 : (OpenSSLDie(__FILE__, 86, "(length % AES_BLOCK_SIZE) == 0"),1)); | - | ||||||
15 | - | |||||||
16 | len = length / 16; | - | ||||||
17 | - | |||||||
18 | if (1 == enc
| 10-11 | ||||||
19 | if (in != out
| 1-10 | ||||||
20 | (( dead code: size_t)in|(size_t)out|(size_t)ivec) %((size_t)in|(size_t)out|(size_t)ivec) % sizeof(long) == 0 dead code: ((size_t)in|(size_t)out|(size_t)ivec) % sizeof(long) == 0 | - | ||||||
21 | sizeof(long) == 0 dead code: )) {((size_t)in|(size_t)out|(size_t)ivec) % sizeof(long) == 0 | - | ||||||
22 | aes_block_t *ivp = (aes_block_t *)ivec; | - | ||||||
23 | aes_block_t *iv2p = (aes_block_t *)(ivec + 16); | - | ||||||
24 | - | |||||||
25 | while (len
| 10-2586 | ||||||
26 | aes_block_t *inp = (aes_block_t *)in; | - | ||||||
27 | aes_block_t *outp = (aes_block_t *)out; | - | ||||||
28 | - | |||||||
29 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2586-5172 | ||||||
30 | outp->data[n] = inp->data[n] ^ ivp->data[n]; executed 5172 times by 1 test: outp->data[n] = inp->data[n] ^ ivp->data[n]; Executed by:
| 5172 | ||||||
31 | AES_encrypt((unsigned char *)outp->data, (unsigned char *)outp->data, key); | - | ||||||
32 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2586-5172 | ||||||
33 | outp->data[n] ^= iv2p->data[n]; executed 5172 times by 1 test: outp->data[n] ^= iv2p->data[n]; Executed by:
| 5172 | ||||||
34 | ivp = outp; | - | ||||||
35 | iv2p = inp; | - | ||||||
36 | --len; | - | ||||||
37 | in += 16; | - | ||||||
38 | out += 16; | - | ||||||
39 | } executed 2586 times by 1 test: end of block Executed by:
| 2586 | ||||||
40 | memcpy(ivec, ivp->data, 16); | - | ||||||
41 | memcpy(ivec + 16, iv2p->data, 16); | - | ||||||
42 | } executed 10 times by 1 test: else {end of block Executed by:
| 10 | ||||||
43 | aes_block_t tmp, tmp2; | - | ||||||
44 | aes_block_t iv; | - | ||||||
45 | aes_block_t iv2; | - | ||||||
46 | - | |||||||
47 | (iv) = *(const aes_block_t *)(ivec); | - | ||||||
48 | (iv2) = *(const aes_block_t *)(ivec + 16); | - | ||||||
49 | - | |||||||
50 | while (len
| 1-2 | ||||||
51 | (tmp) = *(const aes_block_t *)(in); | - | ||||||
52 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2-4 | ||||||
53 | tmp2.data[n] = tmp.data[n] ^ iv.data[n]; executed 4 times by 1 test: tmp2.data[n] = tmp.data[n] ^ iv.data[n]; Executed by:
| 4 | ||||||
54 | AES_encrypt((unsigned char *)tmp2.data, | - | ||||||
55 | (unsigned char *)tmp2.data, key); | - | ||||||
56 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2-4 | ||||||
57 | tmp2.data[n] ^= iv2.data[n]; executed 4 times by 1 test: tmp2.data[n] ^= iv2.data[n]; Executed by:
| 4 | ||||||
58 | *(aes_block_t *)(out) = (tmp2); | - | ||||||
59 | iv = tmp2; | - | ||||||
60 | iv2 = tmp; | - | ||||||
61 | --len; | - | ||||||
62 | in += 16; | - | ||||||
63 | out += 16; | - | ||||||
64 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||
65 | memcpy(ivec, iv.data, 16); | - | ||||||
66 | memcpy(ivec + 16, iv2.data, 16); | - | ||||||
67 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||
68 | } else { | - | ||||||
69 | if (in != out
| 1-9 | ||||||
70 | (( dead code: size_t)in|(size_t)out|(size_t)ivec) %((size_t)in|(size_t)out|(size_t)ivec) % sizeof(long) == 0 dead code: ((size_t)in|(size_t)out|(size_t)ivec) % sizeof(long) == 0 | - | ||||||
71 | sizeof(long) == 0 dead code: )) {((size_t)in|(size_t)out|(size_t)ivec) % sizeof(long) == 0 | - | ||||||
72 | aes_block_t *ivp = (aes_block_t *)ivec; | - | ||||||
73 | aes_block_t *iv2p = (aes_block_t *)(ivec + 16); | - | ||||||
74 | - | |||||||
75 | while (len
| 9-2586 | ||||||
76 | aes_block_t tmp; | - | ||||||
77 | aes_block_t *inp = (aes_block_t *)in; | - | ||||||
78 | aes_block_t *outp = (aes_block_t *)out; | - | ||||||
79 | - | |||||||
80 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2586-5172 | ||||||
81 | tmp.data[n] = inp->data[n] ^ iv2p->data[n]; executed 5172 times by 1 test: tmp.data[n] = inp->data[n] ^ iv2p->data[n]; Executed by:
| 5172 | ||||||
82 | AES_decrypt((unsigned char *)tmp.data, | - | ||||||
83 | (unsigned char *)outp->data, key); | - | ||||||
84 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2586-5172 | ||||||
85 | outp->data[n] ^= ivp->data[n]; executed 5172 times by 1 test: outp->data[n] ^= ivp->data[n]; Executed by:
| 5172 | ||||||
86 | ivp = inp; | - | ||||||
87 | iv2p = outp; | - | ||||||
88 | --len; | - | ||||||
89 | in += 16; | - | ||||||
90 | out += 16; | - | ||||||
91 | } executed 2586 times by 1 test: end of block Executed by:
| 2586 | ||||||
92 | memcpy(ivec, ivp->data, 16); | - | ||||||
93 | memcpy(ivec + 16, iv2p->data, 16); | - | ||||||
94 | } executed 9 times by 1 test: else {end of block Executed by:
| 9 | ||||||
95 | aes_block_t tmp, tmp2; | - | ||||||
96 | aes_block_t iv; | - | ||||||
97 | aes_block_t iv2; | - | ||||||
98 | - | |||||||
99 | (iv) = *(const aes_block_t *)(ivec); | - | ||||||
100 | (iv2) = *(const aes_block_t *)(ivec + 16); | - | ||||||
101 | - | |||||||
102 | while (len
| 1-2 | ||||||
103 | (tmp) = *(const aes_block_t *)(in); | - | ||||||
104 | tmp2 = tmp; | - | ||||||
105 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2-4 | ||||||
106 | tmp.data[n] ^= iv2.data[n]; executed 4 times by 1 test: tmp.data[n] ^= iv2.data[n]; Executed by:
| 4 | ||||||
107 | AES_decrypt((unsigned char *)tmp.data, | - | ||||||
108 | (unsigned char *)tmp.data, key); | - | ||||||
109 | for (n = 0; n < (16 / sizeof(unsigned long))
| 2-4 | ||||||
110 | tmp.data[n] ^= iv.data[n]; executed 4 times by 1 test: tmp.data[n] ^= iv.data[n]; Executed by:
| 4 | ||||||
111 | *(aes_block_t *)(out) = (tmp); | - | ||||||
112 | iv = tmp2; | - | ||||||
113 | iv2 = tmp; | - | ||||||
114 | --len; | - | ||||||
115 | in += 16; | - | ||||||
116 | out += 16; | - | ||||||
117 | } executed 2 times by 1 test: end of block Executed by:
| 2 | ||||||
118 | memcpy(ivec, iv.data, 16); | - | ||||||
119 | memcpy(ivec + 16, iv2.data, 16); | - | ||||||
120 | } executed 1 time by 1 test: end of block Executed by:
| 1 | ||||||
121 | } | - | ||||||
122 | } | - | ||||||
Switch to Source code | Preprocessed file |