OpenCoverage

c_enc.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/cast/c_enc.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.-
3 *-
4 * Licensed under the OpenSSL license (the "License"). You may not use-
5 * this file except in compliance with the License. You can obtain a copy-
6 * in the file LICENSE in the source distribution or at-
7 * https://www.openssl.org/source/license.html-
8 */-
9-
10#include <openssl/cast.h>-
11#include "cast_lcl.h"-
12-
13void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key)-
14{-
15 CAST_LONG l, r, t;-
16 const CAST_LONG *k;-
17-
18 k = &(key->data[0]);-
19 l = data[0];-
20 r = data[1];-
21-
22 E_CAST(0, k, l, r, +, ^, -);-
23 E_CAST(1, k, r, l, ^, -, +);-
24 E_CAST(2, k, l, r, -, +, ^);-
25 E_CAST(3, k, r, l, +, ^, -);-
26 E_CAST(4, k, l, r, ^, -, +);-
27 E_CAST(5, k, r, l, -, +, ^);-
28 E_CAST(6, k, l, r, +, ^, -);-
29 E_CAST(7, k, r, l, ^, -, +);-
30 E_CAST(8, k, l, r, -, +, ^);-
31 E_CAST(9, k, r, l, +, ^, -);-
32 E_CAST(10, k, l, r, ^, -, +);-
33 E_CAST(11, k, r, l, -, +, ^);-
34 if (!key->short_key) {
!key->short_keyDescription
TRUEevaluated 4006285 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2-4006285
35 E_CAST(12, k, l, r, +, ^, -);-
36 E_CAST(13, k, r, l, ^, -, +);-
37 E_CAST(14, k, l, r, -, +, ^);-
38 E_CAST(15, k, r, l, +, ^, -);-
39 }
executed 4006285 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
4006285
40-
41 data[1] = l & 0xffffffffL;-
42 data[0] = r & 0xffffffffL;-
43}
executed 4006287 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
4006287
44-
45void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key)-
46{-
47 CAST_LONG l, r, t;-
48 const CAST_LONG *k;-
49-
50 k = &(key->data[0]);-
51 l = data[0];-
52 r = data[1];-
53-
54 if (!key->short_key) {
!key->short_keyDescription
TRUEevaluated 3145 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 2 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
2-3145
55 E_CAST(15, k, l, r, +, ^, -);-
56 E_CAST(14, k, r, l, -, +, ^);-
57 E_CAST(13, k, l, r, ^, -, +);-
58 E_CAST(12, k, r, l, +, ^, -);-
59 }
executed 3145 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3145
60 E_CAST(11, k, l, r, -, +, ^);-
61 E_CAST(10, k, r, l, ^, -, +);-
62 E_CAST(9, k, l, r, +, ^, -);-
63 E_CAST(8, k, r, l, -, +, ^);-
64 E_CAST(7, k, l, r, ^, -, +);-
65 E_CAST(6, k, r, l, +, ^, -);-
66 E_CAST(5, k, l, r, -, +, ^);-
67 E_CAST(4, k, r, l, ^, -, +);-
68 E_CAST(3, k, l, r, +, ^, -);-
69 E_CAST(2, k, r, l, -, +, ^);-
70 E_CAST(1, k, l, r, ^, -, +);-
71 E_CAST(0, k, r, l, +, ^, -);-
72-
73 data[1] = l & 0xffffffffL;-
74 data[0] = r & 0xffffffffL;-
75}
executed 3147 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3147
76-
77void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out,-
78 long length, const CAST_KEY *ks, unsigned char *iv,-
79 int enc)-
80{-
81 register CAST_LONG tin0, tin1;-
82 register CAST_LONG tout0, tout1, xor0, xor1;-
83 register long l = length;-
84 CAST_LONG tin[2];-
85-
86 if (enc) {
encDescription
TRUEevaluated 228 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 159 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
159-228
87 n2l(iv, tout0);-
88 n2l(iv, tout1);-
89 iv -= 8;-
90 for (l -= 8; l >= 0; l -= 8) {
l >= 0Description
TRUEevaluated 2358 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 228 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
228-2358
91 n2l(in, tin0);-
92 n2l(in, tin1);-
93 tin0 ^= tout0;-
94 tin1 ^= tout1;-
95 tin[0] = tin0;-
96 tin[1] = tin1;-
97 CAST_encrypt(tin, ks);-
98 tout0 = tin[0];-
99 tout1 = tin[1];-
100 l2n(tout0, out);-
101 l2n(tout1, out);-
102 }
executed 2358 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
2358
103 if (l != -8) {
l != -8Description
TRUEnever evaluated
FALSEevaluated 228 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-228
104 n2ln(in, tin0, tin1, l + 8);
never executed: end of block
code before this statement never executed: case 7:
code before this statement never executed: case 6:
code before this statement never executed: case 5:
code before this statement never executed: case 4:
code before this statement never executed: case 3:
code before this statement never executed: case 2:
code before this statement never executed: case 1:
never executed: case 8:
never executed: case 7:
never executed: case 6:
never executed: case 5:
never executed: case 4:
never executed: case 3:
never executed: case 2:
never executed: case 1:
0
105 tin0 ^= tout0;-
106 tin1 ^= tout1;-
107 tin[0] = tin0;-
108 tin[1] = tin1;-
109 CAST_encrypt(tin, ks);-
110 tout0 = tin[0];-
111 tout1 = tin[1];-
112 l2n(tout0, out);-
113 l2n(tout1, out);-
114 }
never executed: end of block
0
115 l2n(tout0, iv);-
116 l2n(tout1, iv);-
117 } else {
executed 228 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
228
118 n2l(iv, xor0);-
119 n2l(iv, xor1);-
120 iv -= 8;-
121 for (l -= 8; l >= 0; l -= 8) {
l >= 0Description
TRUEevaluated 2358 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 159 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
159-2358
122 n2l(in, tin0);-
123 n2l(in, tin1);-
124 tin[0] = tin0;-
125 tin[1] = tin1;-
126 CAST_decrypt(tin, ks);-
127 tout0 = tin[0] ^ xor0;-
128 tout1 = tin[1] ^ xor1;-
129 l2n(tout0, out);-
130 l2n(tout1, out);-
131 xor0 = tin0;-
132 xor1 = tin1;-
133 }
executed 2358 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
2358
134 if (l != -8) {
l != -8Description
TRUEnever evaluated
FALSEevaluated 159 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-159
135 n2l(in, tin0);-
136 n2l(in, tin1);-
137 tin[0] = tin0;-
138 tin[1] = tin1;-
139 CAST_decrypt(tin, ks);-
140 tout0 = tin[0] ^ xor0;-
141 tout1 = tin[1] ^ xor1;-
142 l2nn(tout0, tout1, out, l + 8);
never executed: end of block
code before this statement never executed: case 7:
code before this statement never executed: case 6:
code before this statement never executed: case 5:
code before this statement never executed: case 4:
code before this statement never executed: case 3:
code before this statement never executed: case 2:
code before this statement never executed: case 1:
never executed: case 8:
never executed: case 7:
never executed: case 6:
never executed: case 5:
never executed: case 4:
never executed: case 3:
never executed: case 2:
never executed: case 1:
0
143 xor0 = tin0;-
144 xor1 = tin1;-
145 }
never executed: end of block
0
146 l2n(xor0, iv);-
147 l2n(xor1, iv);-
148 }
executed 159 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
159
149 tin0 = tin1 = tout0 = tout1 = xor0 = xor1 = 0;-
150 tin[0] = tin[1] = 0;-
151}
executed 387 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
387
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2