OpenCoverage

ctr128.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/libressl/src/crypto/modes/ctr128.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7-
8-
9-
10-
11-
12static void ctr128_inc(unsigned char *counter) {-
13 u32 n=16;-
14 u8 c;-
15-
16 do {-
17 --n;-
18 c = counter[n];-
19 ++c;-
20 counter[n] = c;-
21 if (c
cDescription
TRUEnever evaluated
FALSEnever evaluated
) return;
never executed: return;
0
22 }
never executed: end of block
while (n
nDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
23}
never executed: end of block
0
24-
25-
26static void-
27ctr128_inc_aligned(unsigned char *counter)-
28{-
29-
30 ctr128_inc(counter);-
31}
never executed: end of block
0
32void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out,-
33 size_t len, const void *key,-
34 unsigned char ivec[16], unsigned char ecount_buf[16],-
35 unsigned int *num, block128_f block)-
36{-
37 unsigned int n;-
38 size_t l=0;-
39-
40 -
41((void) (0))-
42 ;-
43-
44 n = *num;-
45-
46-
47 if (16%sizeof(size_t) == 0
16%sizeof(size_t) == 0Description
TRUEnever evaluated
FALSEnever evaluated
) do {
0
48 while (n
nDescription
TRUEnever evaluated
FALSEnever evaluated
&& len
lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
49 *(out++) = *(in++) ^ ecount_buf[n];-
50 --len;-
51 n = (n+1) % 16;-
52 }
never executed: end of block
0
53-
54-
55-
56-
57-
58 while (len>=16
len>=16Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
59 (*block)(ivec, ecount_buf, key);-
60 ctr128_inc_aligned(ivec);-
61 for (; n<16
n<16Description
TRUEnever evaluated
FALSEnever evaluated
; n+=sizeof(size_t))
0
62 *(
never executed: *(size_t *)(out+n) = *(size_t *)(in+n) ^ *(size_t *)(ecount_buf+n);
size_t *)(out+n) =
never executed: *(size_t *)(out+n) = *(size_t *)(in+n) ^ *(size_t *)(ecount_buf+n);
0
63 *(size_t *)(in+n) ^ *(size_t *)(ecount_buf+n);
never executed: *(size_t *)(out+n) = *(size_t *)(in+n) ^ *(size_t *)(ecount_buf+n);
0
64 len -= 16;-
65 out += 16;-
66 in += 16;-
67 n = 0;-
68 }
never executed: end of block
0
69 if (len
lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
70 (*block)(ivec, ecount_buf, key);-
71 ctr128_inc_aligned(ivec);-
72 while (len--
len--Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
73 out[n] = in[n] ^ ecount_buf[n];-
74 ++n;-
75 }
never executed: end of block
0
76 }
never executed: end of block
0
77 *num = n;-
78 return;
never executed: return;
0
79 }
never executed: end of block
while(0);
0
80-
81-
82 while (l<len
l<lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0
83 if (n==0
n==0Description
TRUEnever evaluated
FALSEnever evaluated
) {
0
84 (*block)(ivec, ecount_buf, key);-
85 ctr128_inc(ivec);-
86 }
never executed: end of block
0
87 out[l] = in[l] ^ ecount_buf[n];-
88 ++l;-
89 n = (n+1) % 16;-
90 }
never executed: end of block
0
91-
92 *num=n;-
93}
never executed: end of block
0
94-
95-
96static void ctr96_inc(unsigned char *counter) {-
97 u32 n=12;-
98 u8 c;-
99-
100 do {-
101 --n;-
102 c = counter[n];-
103 ++c;-
104 counter[n] = c;-
105 if (c
cDescription
TRUEnever evaluated
FALSEnever evaluated
) return;
never executed: return;
0
106 }
never executed: end of block
while (n
nDescription
TRUEnever evaluated
FALSEnever evaluated
);
0
107}
never executed: end of block
0
108-
109void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out,-
110 size_t len, const void *key,-
111 unsigned char ivec[16], unsigned char ecount_buf[16],-
112 unsigned int *num, ctr128_f func)-
113{-
114 unsigned int n,ctr32;-
115-
116 -
117((void) (0))-
118 ;-
119-
120 n = *num;-
121-
122 while (n
nDescription
TRUEnever evaluated
FALSEevaluated 9 times by 1 test
Evaluated by:
  • evptest
&& len
lenDescription
TRUEnever evaluated
FALSEnever evaluated
) {
0-9
123 *(out++) = *(in++) ^ ecount_buf[n];-
124 --len;-
125 n = (n+1) % 16;-
126 }
never executed: end of block
0
127-
128 ctr32 = ({ u32 ret=(*(const u32 *)(ivec+12)); asm ("bswapl %0" : "+r"(ret)); ret; });-
129 while (len>=16
len>=16Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • evptest
FALSEevaluated 9 times by 1 test
Evaluated by:
  • evptest
) {
9
130 size_t blocks = len/16;-
131-
132-
133-
134-
135-
136 if (sizeof(size_t)>sizeof(unsigned int)
sizeof(size_t)...(unsigned int)Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • evptest
FALSEnever evaluated
&& blocks>(1U<<28)
blocks>(1U<<28)Description
TRUEnever evaluated
FALSEevaluated 9 times by 1 test
Evaluated by:
  • evptest
)
0-9
137 blocks = (1U<<28);
never executed: blocks = (1U<<28);
0
138-
139-
140-
141-
142-
143-
144 ctr32 += (u32)blocks;-
145 if (ctr32 < blocks
ctr32 < blocksDescription
TRUEnever evaluated
FALSEevaluated 9 times by 1 test
Evaluated by:
  • evptest
) {
0-9
146 blocks -= ctr32;-
147 ctr32 = 0;-
148 }
never executed: end of block
0
149 (*func)(in,out,blocks,key,ivec);-
150-
151 *(u32 *)(ivec+12) = ({ u32 ret=(ctr32); asm ("bswapl %0" : "+r"(ret)); ret; });-
152-
153 if (ctr32 == 0
ctr32 == 0Description
TRUEnever evaluated
FALSEevaluated 9 times by 1 test
Evaluated by:
  • evptest
) ctr96_inc(ivec);
never executed: ctr96_inc(ivec);
0-9
154 blocks *= 16;-
155 len -= blocks;-
156 out += blocks;-
157 in += blocks;-
158 }
executed 9 times by 1 test: end of block
Executed by:
  • evptest
9
159 if (len
lenDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • evptest
FALSEevaluated 6 times by 1 test
Evaluated by:
  • evptest
) {
3-6
160 memset(ecount_buf,0,16);-
161 (*func)(ecount_buf,ecount_buf,1,key,ivec);-
162 ++ctr32;-
163 *(u32 *)(ivec+12) = ({ u32 ret=(ctr32); asm ("bswapl %0" : "+r"(ret)); ret; });-
164 if (ctr32 == 0
ctr32 == 0Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • evptest
) ctr96_inc(ivec);
never executed: ctr96_inc(ivec);
0-3
165 while (len--
len--Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • evptest
FALSEevaluated 3 times by 1 test
Evaluated by:
  • evptest
) {
3-12
166 out[n] = in[n] ^ ecount_buf[n];-
167 ++n;-
168 }
executed 12 times by 1 test: end of block
Executed by:
  • evptest
12
169 }
executed 3 times by 1 test: end of block
Executed by:
  • evptest
3
170-
171 *num=n;-
172}
executed 9 times by 1 test: end of block
Executed by:
  • evptest
9
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2