OpenCoverage

rc2cfb64.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rc2/rc2cfb64.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/rc2.h>-
11#include "rc2_locl.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 RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out,-
20 long length, RC2_KEY *schedule, unsigned char *ivec,-
21 int *num, int encrypt)-
22{-
23 register unsigned long v0, v1, t;-
24 register int n = *num;-
25 register long l = length;-
26 unsigned long ti[2];-
27 unsigned char *iv, c, cc;-
28-
29 iv = (unsigned char *)ivec;-
30 if (encrypt) {
encryptDescription
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 c2l(iv, v0);-
34 ti[0] = v0;-
35 c2l(iv, v1);-
36 ti[1] = v1;-
37 RC2_encrypt((unsigned long *)ti, schedule);-
38 iv = (unsigned char *)ivec;-
39 t = ti[0];-
40 l2c(t, iv);-
41 t = ti[1];-
42 l2c(t, iv);-
43 iv = (unsigned char *)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 c2l(iv, v0);-
54 ti[0] = v0;-
55 c2l(iv, v1);-
56 ti[1] = v1;-
57 RC2_encrypt((unsigned long *)ti, schedule);-
58 iv = (unsigned char *)ivec;-
59 t = ti[0];-
60 l2c(t, iv);-
61 t = ti[1];-
62 l2c(t, iv);-
63 iv = (unsigned char *)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