OpenCoverage

c_cfb64.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/cast/c_cfb64.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-
13/*-
14 * The input and output encrypted as though 64bit cfb mode is being used.-
15 * The extra state information to record how much of the 64bit block we have-
16 * used is contained in *num;-
17 */-
18-
19void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out,-
20 long length, const CAST_KEY *schedule,-
21 unsigned char *ivec, int *num, int enc)-
22{-
23 register CAST_LONG v0, v1, t;-
24 register int n = *num;-
25 register long l = length;-
26 CAST_LONG ti[2];-
27 unsigned char *iv, c, cc;-
28-
29 iv = ivec;-
30 if (enc) {
encDescription
TRUEevaluated 41 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 29 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
29-41
31 while (l--) {
l--Description
TRUEevaluated 6278 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 41 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
41-6278
32 if (n == 0) {
n == 0Description
TRUEevaluated 785 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 5493 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
785-5493
33 n2l(iv, v0);-
34 ti[0] = v0;-
35 n2l(iv, v1);-
36 ti[1] = v1;-
37 CAST_encrypt((CAST_LONG *)ti, schedule);-
38 iv = ivec;-
39 t = ti[0];-
40 l2n(t, iv);-
41 t = ti[1];-
42 l2n(t, iv);-
43 iv = ivec;-
44 }
executed 785 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
785
45 c = *(in++) ^ iv[n];-
46 *(out++) = c;-
47 iv[n] = c;-
48 n = (n + 1) & 0x07;-
49 }
executed 6278 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
6278
50 } else {
executed 41 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
41
51 while (l--) {
l--Description
TRUEevaluated 6278 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 29 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
29-6278
52 if (n == 0) {
n == 0Description
TRUEevaluated 785 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 5493 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
785-5493
53 n2l(iv, v0);-
54 ti[0] = v0;-
55 n2l(iv, v1);-
56 ti[1] = v1;-
57 CAST_encrypt((CAST_LONG *)ti, schedule);-
58 iv = ivec;-
59 t = ti[0];-
60 l2n(t, iv);-
61 t = ti[1];-
62 l2n(t, iv);-
63 iv = ivec;-
64 }
executed 785 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
785
65 cc = *(in++);-
66 c = iv[n];-
67 iv[n] = cc;-
68 *(out++) = c ^ cc;-
69 n = (n + 1) & 0x07;-
70 }
executed 6278 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
6278
71 }
executed 29 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
29
72 v0 = v1 = ti[0] = ti[1] = t = c = cc = 0;-
73 *num = n;-
74}
executed 70 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
70
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2