OpenCoverage

chacha_private.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/openbsd-compat/chacha_private.h
Switch to Source codePreprocessed file
LineSourceCount
1typedef unsigned char u8;-
2typedef unsigned int u32;-
3-
4typedef struct-
5{-
6 u32 input[16];-
7} chacha_ctx;-
8static const char sigma[16] = "expand 32-byte k";-
9static const char tau[16] = "expand 16-byte k";-
10-
11static void-
12chacha_keysetup(chacha_ctx *x,const u8 *k,u32 kbits,u32 ivbits)-
13{-
14 const char *constants;-
15-
16 x->input[4] = (((u32)((k + 0)[0]) ) | ((u32)((k + 0)[1]) << 8) | ((u32)((k + 0)[2]) << 16) | ((u32)((k + 0)[3]) << 24));-
17 x->input[5] = (((u32)((k + 4)[0]) ) | ((u32)((k + 4)[1]) << 8) | ((u32)((k + 4)[2]) << 16) | ((u32)((k + 4)[3]) << 24));-
18 x->input[6] = (((u32)((k + 8)[0]) ) | ((u32)((k + 8)[1]) << 8) | ((u32)((k + 8)[2]) << 16) | ((u32)((k + 8)[3]) << 24));-
19 x->input[7] = (((u32)((k + 12)[0]) ) | ((u32)((k + 12)[1]) << 8) | ((u32)((k + 12)[2]) << 16) | ((u32)((k + 12)[3]) << 24));-
20 if (kbits == 256
kbits == 256Description
TRUEevaluated 3033 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
FALSEnever evaluated
) {
0-3033
21 k += 16;-
22 constants = sigma;-
23 }
executed 3033 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
else {
3033
24 constants = tau;-
25 }
never executed: end of block
0
26 x->input[8] = (((u32)((k + 0)[0]) ) | ((u32)((k + 0)[1]) << 8) | ((u32)((k + 0)[2]) << 16) | ((u32)((k + 0)[3]) << 24));-
27 x->input[9] = (((u32)((k + 4)[0]) ) | ((u32)((k + 4)[1]) << 8) | ((u32)((k + 4)[2]) << 16) | ((u32)((k + 4)[3]) << 24));-
28 x->input[10] = (((u32)((k + 8)[0]) ) | ((u32)((k + 8)[1]) << 8) | ((u32)((k + 8)[2]) << 16) | ((u32)((k + 8)[3]) << 24));-
29 x->input[11] = (((u32)((k + 12)[0]) ) | ((u32)((k + 12)[1]) << 8) | ((u32)((k + 12)[2]) << 16) | ((u32)((k + 12)[3]) << 24));-
30 x->input[0] = (((u32)((constants + 0)[0]) ) | ((u32)((constants + 0)[1]) << 8) | ((u32)((constants + 0)[2]) << 16) | ((u32)((constants + 0)[3]) << 24));-
31 x->input[1] = (((u32)((constants + 4)[0]) ) | ((u32)((constants + 4)[1]) << 8) | ((u32)((constants + 4)[2]) << 16) | ((u32)((constants + 4)[3]) << 24));-
32 x->input[2] = (((u32)((constants + 8)[0]) ) | ((u32)((constants + 8)[1]) << 8) | ((u32)((constants + 8)[2]) << 16) | ((u32)((constants + 8)[3]) << 24));-
33 x->input[3] = (((u32)((constants + 12)[0]) ) | ((u32)((constants + 12)[1]) << 8) | ((u32)((constants + 12)[2]) << 16) | ((u32)((constants + 12)[3]) << 24));-
34}
executed 3033 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
3033
35-
36static void-
37chacha_ivsetup(chacha_ctx *x,const u8 *iv)-
38{-
39 x->input[12] = 0;-
40 x->input[13] = 0;-
41 x->input[14] = (((u32)((iv + 0)[0]) ) | ((u32)((iv + 0)[1]) << 8) | ((u32)((iv + 0)[2]) << 16) | ((u32)((iv + 0)[3]) << 24));-
42 x->input[15] = (((u32)((iv + 4)[0]) ) | ((u32)((iv + 4)[1]) << 8) | ((u32)((iv + 4)[2]) << 16) | ((u32)((iv + 4)[3]) << 24));-
43}
executed 3033 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
3033
44-
45static void-
46chacha_encrypt_bytes(chacha_ctx *x,const u8 *m,u8 *c,u32 bytes)-
47{-
48 u32 x0, x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13, x14, x15;-
49 u32 j0, j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12, j13, j14, j15;-
50 u8 *ctarget = -
51 ((void *)0)-
52 ;-
53 u8 tmp[64];-
54 u_int i;-
55-
56 if (!bytes
!bytesDescription
TRUEnever evaluated
FALSEevaluated 3023 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
) return;
never executed: return;
0-3023
57-
58 j0 = x->input[0];-
59 j1 = x->input[1];-
60 j2 = x->input[2];-
61 j3 = x->input[3];-
62 j4 = x->input[4];-
63 j5 = x->input[5];-
64 j6 = x->input[6];-
65 j7 = x->input[7];-
66 j8 = x->input[8];-
67 j9 = x->input[9];-
68 j10 = x->input[10];-
69 j11 = x->input[11];-
70 j12 = x->input[12];-
71 j13 = x->input[13];-
72 j14 = x->input[14];-
73 j15 = x->input[15];-
74-
75 for (;;) {-
76 if (bytes < 64
bytes < 64Description
TRUEnever evaluated
FALSEevaluated 48368 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
) {
0-48368
77 for (i = 0;i < bytes
i < bytesDescription
TRUEnever evaluated
FALSEnever evaluated
;++i) tmp[i] = m[i];
never executed: tmp[i] = m[i];
0
78 m = tmp;-
79 ctarget = c;-
80 c = tmp;-
81 }
never executed: end of block
0
82 x0 = j0;-
83 x1 = j1;-
84 x2 = j2;-
85 x3 = j3;-
86 x4 = j4;-
87 x5 = j5;-
88 x6 = j6;-
89 x7 = j7;-
90 x8 = j8;-
91 x9 = j9;-
92 x10 = j10;-
93 x11 = j11;-
94 x12 = j12;-
95 x13 = j13;-
96 x14 = j14;-
97 x15 = j15;-
98 for (i = 20;i > 0
i > 0Description
TRUEevaluated 483680 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
FALSEevaluated 48368 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
;i -= 2) {
48368-483680
99 x0 = (((u32)((x0) + (x4)) & (0xFFFFFFFFU))); x12 = ((((u32)((((x12) ^ (x0))) << (16)) & (0xFFFFFFFFU)) | ((((x12) ^ (x0))) >> (32 - (16))))); x8 = (((u32)((x8) + (x12)) & (0xFFFFFFFFU))); x4 = ((((u32)((((x4) ^ (x8))) << (12)) & (0xFFFFFFFFU)) | ((((x4) ^ (x8))) >> (32 - (12))))); x0 = (((u32)((x0) + (x4)) & (0xFFFFFFFFU))); x12 = ((((u32)((((x12) ^ (x0))) << (8)) & (0xFFFFFFFFU)) | ((((x12) ^ (x0))) >> (32 - (8))))); x8 = (((u32)((x8) + (x12)) & (0xFFFFFFFFU))); x4 = ((((u32)((((x4) ^ (x8))) << (7)) & (0xFFFFFFFFU)) | ((((x4) ^ (x8))) >> (32 - (7)))));-
100 x1 = (((u32)((x1) + (x5)) & (0xFFFFFFFFU))); x13 = ((((u32)((((x13) ^ (x1))) << (16)) & (0xFFFFFFFFU)) | ((((x13) ^ (x1))) >> (32 - (16))))); x9 = (((u32)((x9) + (x13)) & (0xFFFFFFFFU))); x5 = ((((u32)((((x5) ^ (x9))) << (12)) & (0xFFFFFFFFU)) | ((((x5) ^ (x9))) >> (32 - (12))))); x1 = (((u32)((x1) + (x5)) & (0xFFFFFFFFU))); x13 = ((((u32)((((x13) ^ (x1))) << (8)) & (0xFFFFFFFFU)) | ((((x13) ^ (x1))) >> (32 - (8))))); x9 = (((u32)((x9) + (x13)) & (0xFFFFFFFFU))); x5 = ((((u32)((((x5) ^ (x9))) << (7)) & (0xFFFFFFFFU)) | ((((x5) ^ (x9))) >> (32 - (7)))));-
101 x2 = (((u32)((x2) + (x6)) & (0xFFFFFFFFU))); x14 = ((((u32)((((x14) ^ (x2))) << (16)) & (0xFFFFFFFFU)) | ((((x14) ^ (x2))) >> (32 - (16))))); x10 = (((u32)((x10) + (x14)) & (0xFFFFFFFFU))); x6 = ((((u32)((((x6) ^ (x10))) << (12)) & (0xFFFFFFFFU)) | ((((x6) ^ (x10))) >> (32 - (12))))); x2 = (((u32)((x2) + (x6)) & (0xFFFFFFFFU))); x14 = ((((u32)((((x14) ^ (x2))) << (8)) & (0xFFFFFFFFU)) | ((((x14) ^ (x2))) >> (32 - (8))))); x10 = (((u32)((x10) + (x14)) & (0xFFFFFFFFU))); x6 = ((((u32)((((x6) ^ (x10))) << (7)) & (0xFFFFFFFFU)) | ((((x6) ^ (x10))) >> (32 - (7)))));-
102 x3 = (((u32)((x3) + (x7)) & (0xFFFFFFFFU))); x15 = ((((u32)((((x15) ^ (x3))) << (16)) & (0xFFFFFFFFU)) | ((((x15) ^ (x3))) >> (32 - (16))))); x11 = (((u32)((x11) + (x15)) & (0xFFFFFFFFU))); x7 = ((((u32)((((x7) ^ (x11))) << (12)) & (0xFFFFFFFFU)) | ((((x7) ^ (x11))) >> (32 - (12))))); x3 = (((u32)((x3) + (x7)) & (0xFFFFFFFFU))); x15 = ((((u32)((((x15) ^ (x3))) << (8)) & (0xFFFFFFFFU)) | ((((x15) ^ (x3))) >> (32 - (8))))); x11 = (((u32)((x11) + (x15)) & (0xFFFFFFFFU))); x7 = ((((u32)((((x7) ^ (x11))) << (7)) & (0xFFFFFFFFU)) | ((((x7) ^ (x11))) >> (32 - (7)))));-
103 x0 = (((u32)((x0) + (x5)) & (0xFFFFFFFFU))); x15 = ((((u32)((((x15) ^ (x0))) << (16)) & (0xFFFFFFFFU)) | ((((x15) ^ (x0))) >> (32 - (16))))); x10 = (((u32)((x10) + (x15)) & (0xFFFFFFFFU))); x5 = ((((u32)((((x5) ^ (x10))) << (12)) & (0xFFFFFFFFU)) | ((((x5) ^ (x10))) >> (32 - (12))))); x0 = (((u32)((x0) + (x5)) & (0xFFFFFFFFU))); x15 = ((((u32)((((x15) ^ (x0))) << (8)) & (0xFFFFFFFFU)) | ((((x15) ^ (x0))) >> (32 - (8))))); x10 = (((u32)((x10) + (x15)) & (0xFFFFFFFFU))); x5 = ((((u32)((((x5) ^ (x10))) << (7)) & (0xFFFFFFFFU)) | ((((x5) ^ (x10))) >> (32 - (7)))));-
104 x1 = (((u32)((x1) + (x6)) & (0xFFFFFFFFU))); x12 = ((((u32)((((x12) ^ (x1))) << (16)) & (0xFFFFFFFFU)) | ((((x12) ^ (x1))) >> (32 - (16))))); x11 = (((u32)((x11) + (x12)) & (0xFFFFFFFFU))); x6 = ((((u32)((((x6) ^ (x11))) << (12)) & (0xFFFFFFFFU)) | ((((x6) ^ (x11))) >> (32 - (12))))); x1 = (((u32)((x1) + (x6)) & (0xFFFFFFFFU))); x12 = ((((u32)((((x12) ^ (x1))) << (8)) & (0xFFFFFFFFU)) | ((((x12) ^ (x1))) >> (32 - (8))))); x11 = (((u32)((x11) + (x12)) & (0xFFFFFFFFU))); x6 = ((((u32)((((x6) ^ (x11))) << (7)) & (0xFFFFFFFFU)) | ((((x6) ^ (x11))) >> (32 - (7)))));-
105 x2 = (((u32)((x2) + (x7)) & (0xFFFFFFFFU))); x13 = ((((u32)((((x13) ^ (x2))) << (16)) & (0xFFFFFFFFU)) | ((((x13) ^ (x2))) >> (32 - (16))))); x8 = (((u32)((x8) + (x13)) & (0xFFFFFFFFU))); x7 = ((((u32)((((x7) ^ (x8))) << (12)) & (0xFFFFFFFFU)) | ((((x7) ^ (x8))) >> (32 - (12))))); x2 = (((u32)((x2) + (x7)) & (0xFFFFFFFFU))); x13 = ((((u32)((((x13) ^ (x2))) << (8)) & (0xFFFFFFFFU)) | ((((x13) ^ (x2))) >> (32 - (8))))); x8 = (((u32)((x8) + (x13)) & (0xFFFFFFFFU))); x7 = ((((u32)((((x7) ^ (x8))) << (7)) & (0xFFFFFFFFU)) | ((((x7) ^ (x8))) >> (32 - (7)))));-
106 x3 = (((u32)((x3) + (x4)) & (0xFFFFFFFFU))); x14 = ((((u32)((((x14) ^ (x3))) << (16)) & (0xFFFFFFFFU)) | ((((x14) ^ (x3))) >> (32 - (16))))); x9 = (((u32)((x9) + (x14)) & (0xFFFFFFFFU))); x4 = ((((u32)((((x4) ^ (x9))) << (12)) & (0xFFFFFFFFU)) | ((((x4) ^ (x9))) >> (32 - (12))))); x3 = (((u32)((x3) + (x4)) & (0xFFFFFFFFU))); x14 = ((((u32)((((x14) ^ (x3))) << (8)) & (0xFFFFFFFFU)) | ((((x14) ^ (x3))) >> (32 - (8))))); x9 = (((u32)((x9) + (x14)) & (0xFFFFFFFFU))); x4 = ((((u32)((((x4) ^ (x9))) << (7)) & (0xFFFFFFFFU)) | ((((x4) ^ (x9))) >> (32 - (7)))));-
107 }
executed 483680 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
483680
108 x0 = (((u32)((x0) + (j0)) & (0xFFFFFFFFU)));-
109 x1 = (((u32)((x1) + (j1)) & (0xFFFFFFFFU)));-
110 x2 = (((u32)((x2) + (j2)) & (0xFFFFFFFFU)));-
111 x3 = (((u32)((x3) + (j3)) & (0xFFFFFFFFU)));-
112 x4 = (((u32)((x4) + (j4)) & (0xFFFFFFFFU)));-
113 x5 = (((u32)((x5) + (j5)) & (0xFFFFFFFFU)));-
114 x6 = (((u32)((x6) + (j6)) & (0xFFFFFFFFU)));-
115 x7 = (((u32)((x7) + (j7)) & (0xFFFFFFFFU)));-
116 x8 = (((u32)((x8) + (j8)) & (0xFFFFFFFFU)));-
117 x9 = (((u32)((x9) + (j9)) & (0xFFFFFFFFU)));-
118 x10 = (((u32)((x10) + (j10)) & (0xFFFFFFFFU)));-
119 x11 = (((u32)((x11) + (j11)) & (0xFFFFFFFFU)));-
120 x12 = (((u32)((x12) + (j12)) & (0xFFFFFFFFU)));-
121 x13 = (((u32)((x13) + (j13)) & (0xFFFFFFFFU)));-
122 x14 = (((u32)((x14) + (j14)) & (0xFFFFFFFFU)));-
123 x15 = (((u32)((x15) + (j15)) & (0xFFFFFFFFU)));-
124 j12 = ((((u32)(((j12)) + (1)) & (0xFFFFFFFFU))));-
125 if (!j12
!j12Description
TRUEnever evaluated
FALSEevaluated 48368 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
) {
0-48368
126 j13 = ((((u32)(((j13)) + (1)) & (0xFFFFFFFFU))));-
127-
128 }
never executed: end of block
0
129-
130 do { (c + 0)[0] = ((u8)((x0)) & (0xFFU)); (c + 0)[1] = ((u8)((x0) >> 8) & (0xFFU)); (c + 0)[2] = ((u8)((x0) >> 16) & (0xFFU)); (c + 0)[3] = ((u8)((x0) >> 24) & (0xFFU)); } while (0);-
131 do { (c + 4)[0] = ((u8)((x1)) & (0xFFU)); (c + 4)[1] = ((u8)((x1) >> 8) & (0xFFU)); (c + 4)[2] = ((u8)((x1) >> 16) & (0xFFU)); (c + 4)[3] = ((u8)((x1) >> 24) & (0xFFU)); } while (0);-
132 do { (c + 8)[0] = ((u8)((x2)) & (0xFFU)); (c + 8)[1] = ((u8)((x2) >> 8) & (0xFFU)); (c + 8)[2] = ((u8)((x2) >> 16) & (0xFFU)); (c + 8)[3] = ((u8)((x2) >> 24) & (0xFFU)); } while (0);-
133 do { (c + 12)[0] = ((u8)((x3)) & (0xFFU)); (c + 12)[1] = ((u8)((x3) >> 8) & (0xFFU)); (c + 12)[2] = ((u8)((x3) >> 16) & (0xFFU)); (c + 12)[3] = ((u8)((x3) >> 24) & (0xFFU)); } while (0);-
134 do { (c + 16)[0] = ((u8)((x4)) & (0xFFU)); (c + 16)[1] = ((u8)((x4) >> 8) & (0xFFU)); (c + 16)[2] = ((u8)((x4) >> 16) & (0xFFU)); (c + 16)[3] = ((u8)((x4) >> 24) & (0xFFU)); } while (0);-
135 do { (c + 20)[0] = ((u8)((x5)) & (0xFFU)); (c + 20)[1] = ((u8)((x5) >> 8) & (0xFFU)); (c + 20)[2] = ((u8)((x5) >> 16) & (0xFFU)); (c + 20)[3] = ((u8)((x5) >> 24) & (0xFFU)); } while (0);-
136 do { (c + 24)[0] = ((u8)((x6)) & (0xFFU)); (c + 24)[1] = ((u8)((x6) >> 8) & (0xFFU)); (c + 24)[2] = ((u8)((x6) >> 16) & (0xFFU)); (c + 24)[3] = ((u8)((x6) >> 24) & (0xFFU)); } while (0);-
137 do { (c + 28)[0] = ((u8)((x7)) & (0xFFU)); (c + 28)[1] = ((u8)((x7) >> 8) & (0xFFU)); (c + 28)[2] = ((u8)((x7) >> 16) & (0xFFU)); (c + 28)[3] = ((u8)((x7) >> 24) & (0xFFU)); } while (0);-
138 do { (c + 32)[0] = ((u8)((x8)) & (0xFFU)); (c + 32)[1] = ((u8)((x8) >> 8) & (0xFFU)); (c + 32)[2] = ((u8)((x8) >> 16) & (0xFFU)); (c + 32)[3] = ((u8)((x8) >> 24) & (0xFFU)); } while (0);-
139 do { (c + 36)[0] = ((u8)((x9)) & (0xFFU)); (c + 36)[1] = ((u8)((x9) >> 8) & (0xFFU)); (c + 36)[2] = ((u8)((x9) >> 16) & (0xFFU)); (c + 36)[3] = ((u8)((x9) >> 24) & (0xFFU)); } while (0);-
140 do { (c + 40)[0] = ((u8)((x10)) & (0xFFU)); (c + 40)[1] = ((u8)((x10) >> 8) & (0xFFU)); (c + 40)[2] = ((u8)((x10) >> 16) & (0xFFU)); (c + 40)[3] = ((u8)((x10) >> 24) & (0xFFU)); } while (0);-
141 do { (c + 44)[0] = ((u8)((x11)) & (0xFFU)); (c + 44)[1] = ((u8)((x11) >> 8) & (0xFFU)); (c + 44)[2] = ((u8)((x11) >> 16) & (0xFFU)); (c + 44)[3] = ((u8)((x11) >> 24) & (0xFFU)); } while (0);-
142 do { (c + 48)[0] = ((u8)((x12)) & (0xFFU)); (c + 48)[1] = ((u8)((x12) >> 8) & (0xFFU)); (c + 48)[2] = ((u8)((x12) >> 16) & (0xFFU)); (c + 48)[3] = ((u8)((x12) >> 24) & (0xFFU)); } while (0);-
143 do { (c + 52)[0] = ((u8)((x13)) & (0xFFU)); (c + 52)[1] = ((u8)((x13) >> 8) & (0xFFU)); (c + 52)[2] = ((u8)((x13) >> 16) & (0xFFU)); (c + 52)[3] = ((u8)((x13) >> 24) & (0xFFU)); } while (0);-
144 do { (c + 56)[0] = ((u8)((x14)) & (0xFFU)); (c + 56)[1] = ((u8)((x14) >> 8) & (0xFFU)); (c + 56)[2] = ((u8)((x14) >> 16) & (0xFFU)); (c + 56)[3] = ((u8)((x14) >> 24) & (0xFFU)); } while (0);-
145 do { (c + 60)[0] = ((u8)((x15)) & (0xFFU)); (c + 60)[1] = ((u8)((x15) >> 8) & (0xFFU)); (c + 60)[2] = ((u8)((x15) >> 16) & (0xFFU)); (c + 60)[3] = ((u8)((x15) >> 24) & (0xFFU)); } while (0);-
146-
147 if (bytes <= 64
bytes <= 64Description
TRUEevaluated 3023 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
FALSEevaluated 45345 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
) {
3023-45345
148 if (bytes < 64
bytes < 64Description
TRUEnever evaluated
FALSEevaluated 3023 times by 4 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
) {
0-3023
149 for (i = 0;i < bytes
i < bytesDescription
TRUEnever evaluated
FALSEnever evaluated
;++i) ctarget[i] = c[i];
never executed: ctarget[i] = c[i];
0
150 }
never executed: end of block
0
151 x->input[12] = j12;-
152 x->input[13] = j13;-
153 return;
executed 3023 times by 4 tests: return;
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
3023
154 }-
155 bytes -= 64;-
156 c += 64;-
157-
158-
159-
160 }
executed 45345 times by 4 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshbuf
  • test_sshkey
45345
161}
never executed: end of block
0
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2