OpenCoverage

pcbc_enc.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/des/pcbc_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 "des_locl.h"-
11-
12void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,-
13 long length, DES_key_schedule *schedule,-
14 DES_cblock *ivec, int enc)-
15{-
16 register DES_LONG sin0, sin1, xor0, xor1, tout0, tout1;-
17 DES_LONG tin[2];-
18 const unsigned char *in;-
19 unsigned char *out, *iv;-
20-
21 in = input;-
22 out = output;-
23 iv = &(*ivec)[0];-
24-
25 if (enc) {
encDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
1
26 c2l(iv, xor0);-
27 c2l(iv, xor1);-
28 for (; length > 0; length -= 8) {
length > 0Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-4
29 if (length >= 8) {
length >= 8Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-3
30 c2l(in, sin0);-
31 c2l(in, sin1);-
32 } else
executed 3 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3
33 c2ln(in, sin0, sin1, length);
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
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 executed 1 time by 1 test: case 4:
Executed by:
  • libcrypto.so.1.1
code before this statement executed 1 time by 1 test: case 3:
Executed by:
  • libcrypto.so.1.1
code before this statement executed 1 time by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
code before this statement executed 1 time by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
never executed: case 8:
never executed: case 7:
never executed: case 6:
executed 1 time by 1 test: case 5:
Executed by:
  • libcrypto.so.1.1
never executed: case 4:
never executed: case 3:
never executed: case 2:
executed 1 time by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
0-1
34 tin[0] = sin0 ^ xor0;-
35 tin[1] = sin1 ^ xor1;-
36 DES_encrypt1((DES_LONG *)tin, schedule, DES_ENCRYPT);-
37 tout0 = tin[0];-
38 tout1 = tin[1];-
39 xor0 = sin0 ^ tout0;-
40 xor1 = sin1 ^ tout1;-
41 l2c(tout0, out);-
42 l2c(tout1, out);-
43 }
executed 4 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
4
44 } else {
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
45 c2l(iv, xor0);-
46 c2l(iv, xor1);-
47 for (; length > 0; length -= 8) {
length > 0Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-4
48 c2l(in, sin0);-
49 c2l(in, sin1);-
50 tin[0] = sin0;-
51 tin[1] = sin1;-
52 DES_encrypt1((DES_LONG *)tin, schedule, DES_DECRYPT);-
53 tout0 = tin[0] ^ xor0;-
54 tout1 = tin[1] ^ xor1;-
55 if (length >= 8) {
length >= 8Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 1 time by 1 test
Evaluated by:
  • libcrypto.so.1.1
1-3
56 l2c(tout0, out);-
57 l2c(tout1, out);-
58 } else
executed 3 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
3
59 l2cn(tout0, tout1, out, length);
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
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 executed 1 time by 1 test: case 4:
Executed by:
  • libcrypto.so.1.1
code before this statement executed 1 time by 1 test: case 3:
Executed by:
  • libcrypto.so.1.1
code before this statement executed 1 time by 1 test: case 2:
Executed by:
  • libcrypto.so.1.1
code before this statement executed 1 time by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
never executed: case 8:
never executed: case 7:
never executed: case 6:
executed 1 time by 1 test: case 5:
Executed by:
  • libcrypto.so.1.1
never executed: case 4:
never executed: case 3:
never executed: case 2:
executed 1 time by 1 test: case 1:
Executed by:
  • libcrypto.so.1.1
0-1
60 xor0 = tout0 ^ sin0;-
61 xor1 = tout1 ^ sin1;-
62 }
executed 4 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
4
63 }
executed 1 time by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
1
64 tin[0] = tin[1] = 0;-
65 sin0 = sin1 = xor0 = xor1 = tout0 = tout1 = 0;-
66}
executed 2 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
2
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2