OpenCoverage

rc2_cbc.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rc2/rc2_cbc.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length,-
3 RC2_KEY *ks, unsigned char *iv, int encrypt)-
4{-
5 register unsigned long tin0, tin1;-
6 register unsigned long tout0, tout1, xor0, xor1;-
7 register long l = length;-
8 unsigned long tin[2];-
9-
10 if (encrypt
encryptDescription
TRUEevaluated 314 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 217 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
217-314
11 (tout0 =((unsigned long)(*((iv)++))) , tout0|=((unsigned long)(*((iv)++)))<< 8L, tout0|=((unsigned long)(*((iv)++)))<<16L, tout0|=((unsigned long)(*((iv)++)))<<24L);-
12 (tout1 =((unsigned long)(*((iv)++))) , tout1|=((unsigned long)(*((iv)++)))<< 8L, tout1|=((unsigned long)(*((iv)++)))<<16L, tout1|=((unsigned long)(*((iv)++)))<<24L);-
13 iv -= 8;-
14 for (l -= 8; l >= 0
l >= 0Description
TRUEevaluated 3904 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 314 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; l -= 8) {
314-3904
15 (tin0 =((unsigned long)(*((in)++))) , tin0|=((unsigned long)(*((in)++)))<< 8L, tin0|=((unsigned long)(*((in)++)))<<16L, tin0|=((unsigned long)(*((in)++)))<<24L);-
16 (tin1 =((unsigned long)(*((in)++))) , tin1|=((unsigned long)(*((in)++)))<< 8L, tin1|=((unsigned long)(*((in)++)))<<16L, tin1|=((unsigned long)(*((in)++)))<<24L);-
17 tin0 ^= tout0;-
18 tin1 ^= tout1;-
19 tin[0] = tin0;-
20 tin[1] = tin1;-
21 RC2_encrypt(tin, ks);-
22 tout0 = tin[0];-
23 (*((out)++)=(unsigned char)(((tout0) )&0xff), *((out)++)=(unsigned char)(((tout0)>> 8L)&0xff), *((out)++)=(unsigned char)(((tout0)>>16L)&0xff), *((out)++)=(unsigned char)(((tout0)>>24L)&0xff));-
24 tout1 = tin[1];-
25 (*((out)++)=(unsigned char)(((tout1) )&0xff), *((out)++)=(unsigned char)(((tout1)>> 8L)&0xff), *((out)++)=(unsigned char)(((tout1)>>16L)&0xff), *((out)++)=(unsigned char)(((tout1)>>24L)&0xff));-
26 }
executed 3904 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3904
27 if (l != -8
l != -8Description
TRUEnever evaluated
FALSEevaluated 314 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-314
28 { in+=l + 8; tin0=tin1=0; switch (l + 8) { case
never executed: case 8:
8:
never executed: case 8:
tin1 =((unsigned long)(*(--(in))))<<24L; case
never executed: case 7:
7:
never executed: case 7:
code before this statement never executed: case 7:
tin1|=((unsigned long)(*(--(in))))<<16L; case
never executed: case 6:
6:
never executed: case 6:
code before this statement never executed: case 6:
tin1|=((unsigned long)(*(--(in))))<< 8L; case
never executed: case 5:
5:
never executed: case 5:
code before this statement never executed: case 5:
tin1|=((unsigned long)(*(--(in)))); case
never executed: case 4:
4:
never executed: case 4:
code before this statement never executed: case 4:
tin0 =((unsigned long)(*(--(in))))<<24L; case
never executed: case 3:
3:
never executed: case 3:
code before this statement never executed: case 3:
tin0|=((unsigned long)(*(--(in))))<<16L; case
never executed: case 2:
2:
never executed: case 2:
code before this statement never executed: case 2:
tin0|=((unsigned long)(*(--(in))))<< 8L; case
never executed: case 1:
1:
never executed: case 1:
code before this statement never executed: case 1:
tin0|=((unsigned long)(*(--(in)))); }
never executed: end of block
};
0
29 tin0 ^= tout0;-
30 tin1 ^= tout1;-
31 tin[0] = tin0;-
32 tin[1] = tin1;-
33 RC2_encrypt(tin, ks);-
34 tout0 = tin[0];-
35 (*((out)++)=(unsigned char)(((tout0) )&0xff), *((out)++)=(unsigned char)(((tout0)>> 8L)&0xff), *((out)++)=(unsigned char)(((tout0)>>16L)&0xff), *((out)++)=(unsigned char)(((tout0)>>24L)&0xff));-
36 tout1 = tin[1];-
37 (*((out)++)=(unsigned char)(((tout1) )&0xff), *((out)++)=(unsigned char)(((tout1)>> 8L)&0xff), *((out)++)=(unsigned char)(((tout1)>>16L)&0xff), *((out)++)=(unsigned char)(((tout1)>>24L)&0xff));-
38 }
never executed: end of block
0
39 (*((iv)++)=(unsigned char)(((tout0) )&0xff), *((iv)++)=(unsigned char)(((tout0)>> 8L)&0xff), *((iv)++)=(unsigned char)(((tout0)>>16L)&0xff), *((iv)++)=(unsigned char)(((tout0)>>24L)&0xff));-
40 (*((iv)++)=(unsigned char)(((tout1) )&0xff), *((iv)++)=(unsigned char)(((tout1)>> 8L)&0xff), *((iv)++)=(unsigned char)(((tout1)>>16L)&0xff), *((iv)++)=(unsigned char)(((tout1)>>24L)&0xff));-
41 }
executed 314 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
else {
314
42 (xor0 =((unsigned long)(*((iv)++))) , xor0|=((unsigned long)(*((iv)++)))<< 8L, xor0|=((unsigned long)(*((iv)++)))<<16L, xor0|=((unsigned long)(*((iv)++)))<<24L);-
43 (xor1 =((unsigned long)(*((iv)++))) , xor1|=((unsigned long)(*((iv)++)))<< 8L, xor1|=((unsigned long)(*((iv)++)))<<16L, xor1|=((unsigned long)(*((iv)++)))<<24L);-
44 iv -= 8;-
45 for (l -= 8; l >= 0
l >= 0Description
TRUEevaluated 3904 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 217 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
; l -= 8) {
217-3904
46 (tin0 =((unsigned long)(*((in)++))) , tin0|=((unsigned long)(*((in)++)))<< 8L, tin0|=((unsigned long)(*((in)++)))<<16L, tin0|=((unsigned long)(*((in)++)))<<24L);-
47 tin[0] = tin0;-
48 (tin1 =((unsigned long)(*((in)++))) , tin1|=((unsigned long)(*((in)++)))<< 8L, tin1|=((unsigned long)(*((in)++)))<<16L, tin1|=((unsigned long)(*((in)++)))<<24L);-
49 tin[1] = tin1;-
50 RC2_decrypt(tin, ks);-
51 tout0 = tin[0] ^ xor0;-
52 tout1 = tin[1] ^ xor1;-
53 (*((out)++)=(unsigned char)(((tout0) )&0xff), *((out)++)=(unsigned char)(((tout0)>> 8L)&0xff), *((out)++)=(unsigned char)(((tout0)>>16L)&0xff), *((out)++)=(unsigned char)(((tout0)>>24L)&0xff));-
54 (*((out)++)=(unsigned char)(((tout1) )&0xff), *((out)++)=(unsigned char)(((tout1)>> 8L)&0xff), *((out)++)=(unsigned char)(((tout1)>>16L)&0xff), *((out)++)=(unsigned char)(((tout1)>>24L)&0xff));-
55 xor0 = tin0;-
56 xor1 = tin1;-
57 }
executed 3904 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3904
58 if (l != -8
l != -8Description
TRUEnever evaluated
FALSEevaluated 217 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
0-217
59 (tin0 =((unsigned long)(*((in)++))) , tin0|=((unsigned long)(*((in)++)))<< 8L, tin0|=((unsigned long)(*((in)++)))<<16L, tin0|=((unsigned long)(*((in)++)))<<24L);-
60 tin[0] = tin0;-
61 (tin1 =((unsigned long)(*((in)++))) , tin1|=((unsigned long)(*((in)++)))<< 8L, tin1|=((unsigned long)(*((in)++)))<<16L, tin1|=((unsigned long)(*((in)++)))<<24L);-
62 tin[1] = tin1;-
63 RC2_decrypt(tin, ks);-
64 tout0 = tin[0] ^ xor0;-
65 tout1 = tin[1] ^ xor1;-
66 { out+=l + 8; switch (l + 8) { case
never executed: case 8:
8:
never executed: case 8:
*(--(out))=(unsigned char)(((tout1)>>24L)&0xff); case
never executed: case 7:
7:
never executed: case 7:
code before this statement never executed: case 7:
*(--(out))=(unsigned char)(((tout1)>>16L)&0xff); case
never executed: case 6:
6:
never executed: case 6:
code before this statement never executed: case 6:
*(--(out))=(unsigned char)(((tout1)>> 8L)&0xff); case
never executed: case 5:
5:
never executed: case 5:
code before this statement never executed: case 5:
*(--(out))=(unsigned char)(((tout1) )&0xff); case
never executed: case 4:
4:
never executed: case 4:
code before this statement never executed: case 4:
*(--(out))=(unsigned char)(((tout0)>>24L)&0xff); case
never executed: case 3:
3:
never executed: case 3:
code before this statement never executed: case 3:
*(--(out))=(unsigned char)(((tout0)>>16L)&0xff); case
never executed: case 2:
2:
never executed: case 2:
code before this statement never executed: case 2:
*(--(out))=(unsigned char)(((tout0)>> 8L)&0xff); case
never executed: case 1:
1:
never executed: case 1:
code before this statement never executed: case 1:
*(--(out))=(unsigned char)(((tout0) )&0xff); }
never executed: end of block
};
0
67 xor0 = tin0;-
68 xor1 = tin1;-
69 }
never executed: end of block
0
70 (*((iv)++)=(unsigned char)(((xor0) )&0xff), *((iv)++)=(unsigned char)(((xor0)>> 8L)&0xff), *((iv)++)=(unsigned char)(((xor0)>>16L)&0xff), *((iv)++)=(unsigned char)(((xor0)>>24L)&0xff));-
71 (*((iv)++)=(unsigned char)(((xor1) )&0xff), *((iv)++)=(unsigned char)(((xor1)>> 8L)&0xff), *((iv)++)=(unsigned char)(((xor1)>>16L)&0xff), *((iv)++)=(unsigned char)(((xor1)>>24L)&0xff));-
72 }
executed 217 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
217
73 tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0;-
74 tin[0] = tin[1] = 0;-
75}
executed 531 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
531
76-
77void RC2_encrypt(unsigned long *d, RC2_KEY *key)-
78{-
79 int i, n;-
80 register RC2_INT *p0, *p1;-
81 register RC2_INT x0, x1, x2, x3, t;-
82 unsigned long l;-
83-
84 l = d[0];-
85 x0 = (RC2_INT) l & 0xffff;-
86 x1 = (RC2_INT) (l >> 16L);-
87 l = d[1];-
88 x2 = (RC2_INT) l & 0xffff;-
89 x3 = (RC2_INT) (l >> 16L);-
90-
91 n = 3;-
92 i = 5;-
93-
94 p0 = p1 = &(key->data[0]);-
95 for (;;) {-
96 t = (x0 + (x1 & ~x3) + (x2 & x3) + *(p0++)) & 0xffff;-
97 x0 = (t << 1) | (t >> 15);-
98 t = (x1 + (x2 & ~x0) + (x3 & x0) + *(p0++)) & 0xffff;-
99 x1 = (t << 2) | (t >> 14);-
100 t = (x2 + (x3 & ~x1) + (x0 & x1) + *(p0++)) & 0xffff;-
101 x2 = (t << 3) | (t >> 13);-
102 t = (x3 + (x0 & ~x2) + (x1 & x2) + *(p0++)) & 0xffff;-
103 x3 = (t << 5) | (t >> 11);-
104-
105 if (--
--i == 0Description
TRUEevaluated 23502 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 101842 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
i == 0
--i == 0Description
TRUEevaluated 23502 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 101842 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
23502-101842
106 if (--
--n == 0Description
TRUEevaluated 7834 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 15668 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
n == 0
--n == 0Description
TRUEevaluated 7834 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 15668 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
7834-15668
107 break;
executed 7834 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
7834
108 i = (
(n == 2)Description
TRUEevaluated 7834 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 7834 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
n == 2)
(n == 2)Description
TRUEevaluated 7834 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 7834 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
? 6 : 5;
7834
109-
110 x0 += p1[x3 & 0x3f];-
111 x1 += p1[x0 & 0x3f];-
112 x2 += p1[x1 & 0x3f];-
113 x3 += p1[x2 & 0x3f];-
114 }
executed 15668 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
15668
115 }
executed 117510 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
117510
116-
117 d[0] =-
118 (unsigned long)(x0 & 0xffff) | ((unsigned long)(x1 & 0xffff) << 16L);-
119 d[1] =-
120 (unsigned long)(x2 & 0xffff) | ((unsigned long)(x3 & 0xffff) << 16L);-
121}
executed 7834 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
7834
122-
123void RC2_decrypt(unsigned long *d, RC2_KEY *key)-
124{-
125 int i, n;-
126 register RC2_INT *p0, *p1;-
127 register RC2_INT x0, x1, x2, x3, t;-
128 unsigned long l;-
129-
130 l = d[0];-
131 x0 = (RC2_INT) l & 0xffff;-
132 x1 = (RC2_INT) (l >> 16L);-
133 l = d[1];-
134 x2 = (RC2_INT) l & 0xffff;-
135 x3 = (RC2_INT) (l >> 16L);-
136-
137 n = 3;-
138 i = 5;-
139-
140 p0 = &(key->data[63]);-
141 p1 = &(key->data[0]);-
142 for (;;) {-
143 t = ((x3 << 11) | (x3 >> 5)) & 0xffff;-
144 x3 = (t - (x0 & ~x2) - (x1 & x2) - *(p0--)) & 0xffff;-
145 t = ((x2 << 13) | (x2 >> 3)) & 0xffff;-
146 x2 = (t - (x3 & ~x1) - (x0 & x1) - *(p0--)) & 0xffff;-
147 t = ((x1 << 14) | (x1 >> 2)) & 0xffff;-
148 x1 = (t - (x2 & ~x0) - (x3 & x0) - *(p0--)) & 0xffff;-
149 t = ((x0 << 15) | (x0 >> 1)) & 0xffff;-
150 x0 = (t - (x1 & ~x3) - (x2 & x3) - *(p0--)) & 0xffff;-
151-
152 if (--
--i == 0Description
TRUEevaluated 14082 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 61022 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
i == 0
--i == 0Description
TRUEevaluated 14082 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 61022 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
) {
14082-61022
153 if (--
--n == 0Description
TRUEevaluated 4694 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9388 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
n == 0
--n == 0Description
TRUEevaluated 4694 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 9388 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
)
4694-9388
154 break;
executed 4694 times by 1 test: break;
Executed by:
  • libcrypto.so.1.1
4694
155 i = (
(n == 2)Description
TRUEevaluated 4694 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4694 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
n == 2)
(n == 2)Description
TRUEevaluated 4694 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 4694 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
? 6 : 5;
4694
156-
157 x3 = (x3 - p1[x2 & 0x3f]) & 0xffff;-
158 x2 = (x2 - p1[x1 & 0x3f]) & 0xffff;-
159 x1 = (x1 - p1[x0 & 0x3f]) & 0xffff;-
160 x0 = (x0 - p1[x3 & 0x3f]) & 0xffff;-
161 }
executed 9388 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
9388
162 }
executed 70410 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
70410
163-
164 d[0] =-
165 (unsigned long)(x0 & 0xffff) | ((unsigned long)(x1 & 0xffff) << 16L);-
166 d[1] =-
167 (unsigned long)(x2 & 0xffff) | ((unsigned long)(x3 & 0xffff) << 16L);-
168}
executed 4694 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
4694
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2