OpenCoverage

sc25519.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssh/src/sc25519.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/* $OpenBSD: sc25519.c,v 1.3 2013/12/09 11:03:45 markus Exp $ */-
2-
3/*-
4 * Public Domain, Authors: Daniel J. Bernstein, Niels Duif, Tanja Lange,-
5 * Peter Schwabe, Bo-Yin Yang.-
6 * Copied from supercop-20130419/crypto_sign/ed25519/ref/sc25519.c-
7 */-
8-
9#include "includes.h"-
10-
11#include "sc25519.h"-
12-
13/*Arithmetic modulo the group order m = 2^252 + 27742317777372353535851937790883648493 = 7237005577332262213973186563042994240857116359379907606001950938285454250989 */-
14-
15static const crypto_uint32 m[32] = {0xED, 0xD3, 0xF5, 0x5C, 0x1A, 0x63, 0x12, 0x58, 0xD6, 0x9C, 0xF7, 0xA2, 0xDE, 0xF9, 0xDE, 0x14, -
16 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10};-
17-
18static const crypto_uint32 mu[33] = {0x1B, 0x13, 0x2C, 0x0A, 0xA3, 0xE5, 0x9C, 0xED, 0xA7, 0x29, 0x63, 0x08, 0x5D, 0x21, 0x06, 0x21, -
19 0xEB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F};-
20-
21static crypto_uint32 lt(crypto_uint32 a,crypto_uint32 b) /* 16-bit inputs */-
22{-
23 unsigned int x = a;-
24 x -= (unsigned int) b; /* 0..65535: no; 4294901761..4294967295: yes */-
25 x >>= 31; /* 0: no; 1: yes */-
26 return x;
executed 2701312 times by 3 tests: return x;
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
2701312
27}-
28-
29/* Reduce coefficients of r before calling reduce_add_sub */-
30static void reduce_add_sub(sc25519 *r)-
31{-
32 crypto_uint32 pb = 0;-
33 crypto_uint32 b;-
34 crypto_uint32 mask;-
35 int i;-
36 unsigned char t[32];-
37-
38 for(i=0;i<32;i++)
i<32Description
TRUEevaluated 1801568 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 56299 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
56299-1801568
39 {-
40 pb += m[i];-
41 b = lt(r->v[i],pb);-
42 t[i] = r->v[i]-pb+(b<<8);-
43 pb = b;-
44 }
executed 1801568 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
1801568
45 mask = b - 1;-
46 for(i=0;i<32;i++)
i<32Description
TRUEevaluated 1801568 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 56299 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
56299-1801568
47 r->v[i] ^= mask & (r->v[i] ^ t[i]);
executed 1801568 times by 3 tests: r->v[i] ^= mask & (r->v[i] ^ t[i]);
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
1801568
48}
executed 56299 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
56299
49-
50/* Reduce coefficients of x before calling barrett_reduce */-
51static void barrett_reduce(sc25519 *r, const crypto_uint32 x[64])-
52{-
53 /* See HAC, Alg. 14.42 */-
54 int i,j;-
55 crypto_uint32 q2[66];-
56 crypto_uint32 *q3 = q2 + 33;-
57 crypto_uint32 r1[33];-
58 crypto_uint32 r2[33];-
59 crypto_uint32 carry;-
60 crypto_uint32 pb = 0;-
61 crypto_uint32 b;-
62-
63 for (i = 0;i < 66;++i) q2[i] = 0;
executed 1855722 times by 3 tests: q2[i] = 0;
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
i < 66Description
TRUEevaluated 1855722 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 28117 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117-1855722
64 for (i = 0;i < 33;++i) r2[i] = 0;
executed 927861 times by 3 tests: r2[i] = 0;
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
i < 33Description
TRUEevaluated 927861 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 28117 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117-927861
65-
66 for(i=0;i<33;i++)
i<33Description
TRUEevaluated 927861 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 28117 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117-927861
67 for(j=0;j<33;j++)
j<33Description
TRUEevaluated 30619413 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 927861 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
927861-30619413
68 if(i+j >= 31) q2[i+j] += mu[i]*x[j+31];
executed 16673381 times by 3 tests: q2[i+j] += mu[i]*x[j+31];
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
i+j >= 31Description
TRUEevaluated 16673381 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 13946032 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
13946032-16673381
69 carry = q2[31] >> 8;-
70 q2[32] += carry;-
71 carry = q2[32] >> 8;-
72 q2[33] += carry;-
73-
74 for(i=0;i<33;i++)r1[i] = x[i];
executed 927861 times by 3 tests: r1[i] = x[i];
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
i<33Description
TRUEevaluated 927861 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 28117 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117-927861
75 for(i=0;i<32;i++)
i<32Description
TRUEevaluated 899744 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 28117 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117-899744
76 for(j=0;j<33;j++)
j<33Description
TRUEevaluated 29691552 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 899744 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
899744-29691552
77 if(i+j < 33) r2[i+j] += m[i]*q3[j];
executed 15745520 times by 3 tests: r2[i+j] += m[i]*q3[j];
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
i+j < 33Description
TRUEevaluated 15745520 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 13946032 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
13946032-15745520
78-
79 for(i=0;i<32;i++)
i<32Description
TRUEevaluated 899744 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 28117 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117-899744
80 {-
81 carry = r2[i] >> 8;-
82 r2[i+1] += carry;-
83 r2[i] &= 0xff;-
84 }
executed 899744 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
899744
85-
86 for(i=0;i<32;i++)
i<32Description
TRUEevaluated 899744 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 28117 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117-899744
87 {-
88 pb += r2[i];-
89 b = lt(r1[i],pb);-
90 r->v[i] = r1[i]-pb+(b<<8);-
91 pb = b;-
92 }
executed 899744 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
899744
93-
94 /* XXX: Can it really happen that r<0?, See HAC, Alg 14.42, Step 3 -
95 * If so: Handle it here!-
96 */-
97-
98 reduce_add_sub(r);-
99 reduce_add_sub(r);-
100}
executed 28117 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
28117
101-
102void sc25519_from32bytes(sc25519 *r, const unsigned char x[32])-
103{-
104 int i;-
105 crypto_uint32 t[64];-
106 for(i=0;i<32;i++) t[i] = x[i];
executed 448000 times by 3 tests: t[i] = x[i];
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
i<32Description
TRUEevaluated 448000 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 14000 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
14000-448000
107 for(i=32;i<64;++i) t[i] = 0;
executed 448000 times by 3 tests: t[i] = 0;
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
i<64Description
TRUEevaluated 448000 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 14000 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
14000-448000
108 barrett_reduce(r, t);-
109}
executed 14000 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
14000
110-
111void shortsc25519_from16bytes(shortsc25519 *r, const unsigned char x[16])-
112{-
113 int i;-
114 for(i=0;i<16;i++) r->v[i] = x[i];
never executed: r->v[i] = x[i];
i<16Description
TRUEnever evaluated
FALSEnever evaluated
0
115}
never executed: end of block
0
116-
117void sc25519_from64bytes(sc25519 *r, const unsigned char x[64])-
118{-
119 int i;-
120 crypto_uint32 t[64];-
121 for(i=0;i<64;i++) t[i] = x[i];
executed 899328 times by 2 tests: t[i] = x[i];
Executed by:
  • test_kex
  • test_sshkey
i<64Description
TRUEevaluated 899328 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 14052 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
14052-899328
122 barrett_reduce(r, t);-
123}
executed 14052 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
14052
124-
125void sc25519_from_shortsc(sc25519 *r, const shortsc25519 *x)-
126{-
127 int i;-
128 for(i=0;i<16;i++)
i<16Description
TRUEnever evaluated
FALSEnever evaluated
0
129 r->v[i] = x->v[i];
never executed: r->v[i] = x->v[i];
0
130 for(i=0;i<16;i++)
i<16Description
TRUEnever evaluated
FALSEnever evaluated
0
131 r->v[16+i] = 0;
never executed: r->v[16+i] = 0;
0
132}
never executed: end of block
0
133-
134void sc25519_to32bytes(unsigned char r[32], const sc25519 *x)-
135{-
136 int i;-
137 for(i=0;i<32;i++) r[i] = x->v[i];
executed 2080 times by 2 tests: r[i] = x->v[i];
Executed by:
  • test_kex
  • test_sshkey
i<32Description
TRUEevaluated 2080 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 65 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
65-2080
138}
executed 65 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
65
139-
140int sc25519_iszero_vartime(const sc25519 *x)-
141{-
142 int i;-
143 for(i=0;i<32;i++)
i<32Description
TRUEnever evaluated
FALSEnever evaluated
0
144 if(x->v[i] != 0) return 0;
never executed: return 0;
x->v[i] != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
145 return 1;
never executed: return 1;
0
146}-
147-
148int sc25519_isshort_vartime(const sc25519 *x)-
149{-
150 int i;-
151 for(i=31;i>15;i--)
i>15Description
TRUEnever evaluated
FALSEnever evaluated
0
152 if(x->v[i] != 0) return 0;
never executed: return 0;
x->v[i] != 0Description
TRUEnever evaluated
FALSEnever evaluated
0
153 return 1;
never executed: return 1;
0
154}-
155-
156int sc25519_lt_vartime(const sc25519 *x, const sc25519 *y)-
157{-
158 int i;-
159 for(i=31;i>=0;i--)
i>=0Description
TRUEnever evaluated
FALSEnever evaluated
0
160 {-
161 if(x->v[i] < y->v[i]) return 1;
never executed: return 1;
x->v[i] < y->v[i]Description
TRUEnever evaluated
FALSEnever evaluated
0
162 if(x->v[i] > y->v[i]) return 0;
never executed: return 0;
x->v[i] > y->v[i]Description
TRUEnever evaluated
FALSEnever evaluated
0
163 }
never executed: end of block
0
164 return 0;
never executed: return 0;
0
165}-
166-
167void sc25519_add(sc25519 *r, const sc25519 *x, const sc25519 *y)-
168{-
169 int i, carry;-
170 for(i=0;i<32;i++) r->v[i] = x->v[i] + y->v[i];
executed 2080 times by 2 tests: r->v[i] = x->v[i] + y->v[i];
Executed by:
  • test_kex
  • test_sshkey
i<32Description
TRUEevaluated 2080 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 65 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
65-2080
171 for(i=0;i<31;i++)
i<31Description
TRUEevaluated 2015 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 65 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
65-2015
172 {-
173 carry = r->v[i] >> 8;-
174 r->v[i+1] += carry;-
175 r->v[i] &= 0xff;-
176 }
executed 2015 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
2015
177 reduce_add_sub(r);-
178}
executed 65 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
65
179-
180void sc25519_sub_nored(sc25519 *r, const sc25519 *x, const sc25519 *y)-
181{-
182 crypto_uint32 b = 0;-
183 crypto_uint32 t;-
184 int i;-
185 for(i=0;i<32;i++)
i<32Description
TRUEnever evaluated
FALSEnever evaluated
0
186 {-
187 t = x->v[i] - y->v[i] - b;-
188 r->v[i] = t & 255;-
189 b = (t >> 8) & 1;-
190 }
never executed: end of block
0
191}
never executed: end of block
0
192-
193void sc25519_mul(sc25519 *r, const sc25519 *x, const sc25519 *y)-
194{-
195 int i,j,carry;-
196 crypto_uint32 t[64];-
197 for(i=0;i<64;i++)t[i] = 0;
executed 4160 times by 2 tests: t[i] = 0;
Executed by:
  • test_kex
  • test_sshkey
i<64Description
TRUEevaluated 4160 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 65 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
65-4160
198-
199 for(i=0;i<32;i++)
i<32Description
TRUEevaluated 2080 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 65 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
65-2080
200 for(j=0;j<32;j++)
j<32Description
TRUEevaluated 66560 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 2080 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
2080-66560
201 t[i+j] += x->v[i] * y->v[j];
executed 66560 times by 2 tests: t[i+j] += x->v[i] * y->v[j];
Executed by:
  • test_kex
  • test_sshkey
66560
202-
203 /* Reduce coefficients */-
204 for(i=0;i<63;i++)
i<63Description
TRUEevaluated 4095 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 65 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
65-4095
205 {-
206 carry = t[i] >> 8;-
207 t[i+1] += carry;-
208 t[i] &= 0xff;-
209 }
executed 4095 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
4095
210-
211 barrett_reduce(r, t);-
212}
executed 65 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
65
213-
214void sc25519_mul_shortsc(sc25519 *r, const sc25519 *x, const shortsc25519 *y)-
215{-
216 sc25519 t;-
217 sc25519_from_shortsc(&t, y);-
218 sc25519_mul(r, x, &t);-
219}
never executed: end of block
0
220-
221void sc25519_window3(signed char r[85], const sc25519 *s)-
222{-
223 char carry;-
224 int i;-
225 for(i=0;i<10;i++)
i<10Description
TRUEevaluated 780 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 78 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
78-780
226 {-
227 r[8*i+0] = s->v[3*i+0] & 7;-
228 r[8*i+1] = (s->v[3*i+0] >> 3) & 7;-
229 r[8*i+2] = (s->v[3*i+0] >> 6) & 7;-
230 r[8*i+2] ^= (s->v[3*i+1] << 2) & 7;-
231 r[8*i+3] = (s->v[3*i+1] >> 1) & 7;-
232 r[8*i+4] = (s->v[3*i+1] >> 4) & 7;-
233 r[8*i+5] = (s->v[3*i+1] >> 7) & 7;-
234 r[8*i+5] ^= (s->v[3*i+2] << 1) & 7;-
235 r[8*i+6] = (s->v[3*i+2] >> 2) & 7;-
236 r[8*i+7] = (s->v[3*i+2] >> 5) & 7;-
237 }
executed 780 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
780
238 r[8*i+0] = s->v[3*i+0] & 7;-
239 r[8*i+1] = (s->v[3*i+0] >> 3) & 7;-
240 r[8*i+2] = (s->v[3*i+0] >> 6) & 7;-
241 r[8*i+2] ^= (s->v[3*i+1] << 2) & 7;-
242 r[8*i+3] = (s->v[3*i+1] >> 1) & 7;-
243 r[8*i+4] = (s->v[3*i+1] >> 4) & 7;-
244-
245 /* Making it signed */-
246 carry = 0;-
247 for(i=0;i<84;i++)
i<84Description
TRUEevaluated 6552 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
FALSEevaluated 78 times by 3 tests
Evaluated by:
  • ssh-keygen
  • test_kex
  • test_sshkey
78-6552
248 {-
249 r[i] += carry;-
250 r[i+1] += r[i] >> 3;-
251 r[i] &= 7;-
252 carry = r[i] >> 2;-
253 r[i] -= carry<<3;-
254 }
executed 6552 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
6552
255 r[84] += carry;-
256}
executed 78 times by 3 tests: end of block
Executed by:
  • ssh-keygen
  • test_kex
  • test_sshkey
78
257-
258void sc25519_window5(signed char r[51], const sc25519 *s)-
259{-
260 char carry;-
261 int i;-
262 for(i=0;i<6;i++)
i<6Description
TRUEnever evaluated
FALSEnever evaluated
0
263 {-
264 r[8*i+0] = s->v[5*i+0] & 31;-
265 r[8*i+1] = (s->v[5*i+0] >> 5) & 31;-
266 r[8*i+1] ^= (s->v[5*i+1] << 3) & 31;-
267 r[8*i+2] = (s->v[5*i+1] >> 2) & 31;-
268 r[8*i+3] = (s->v[5*i+1] >> 7) & 31;-
269 r[8*i+3] ^= (s->v[5*i+2] << 1) & 31;-
270 r[8*i+4] = (s->v[5*i+2] >> 4) & 31;-
271 r[8*i+4] ^= (s->v[5*i+3] << 4) & 31;-
272 r[8*i+5] = (s->v[5*i+3] >> 1) & 31;-
273 r[8*i+6] = (s->v[5*i+3] >> 6) & 31;-
274 r[8*i+6] ^= (s->v[5*i+4] << 2) & 31;-
275 r[8*i+7] = (s->v[5*i+4] >> 3) & 31;-
276 }
never executed: end of block
0
277 r[8*i+0] = s->v[5*i+0] & 31;-
278 r[8*i+1] = (s->v[5*i+0] >> 5) & 31;-
279 r[8*i+1] ^= (s->v[5*i+1] << 3) & 31;-
280 r[8*i+2] = (s->v[5*i+1] >> 2) & 31;-
281-
282 /* Making it signed */-
283 carry = 0;-
284 for(i=0;i<50;i++)
i<50Description
TRUEnever evaluated
FALSEnever evaluated
0
285 {-
286 r[i] += carry;-
287 r[i+1] += r[i] >> 5;-
288 r[i] &= 31;-
289 carry = r[i] >> 4;-
290 r[i] -= carry<<5;-
291 }
never executed: end of block
0
292 r[50] += carry;-
293}
never executed: end of block
0
294-
295void sc25519_2interleave2(unsigned char r[127], const sc25519 *s1, const sc25519 *s2)-
296{-
297 int i;-
298 for(i=0;i<31;i++)
i<31Description
TRUEevaluated 431582 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
FALSEevaluated 13922 times by 2 tests
Evaluated by:
  • test_kex
  • test_sshkey
13922-431582
299 {-
300 r[4*i] = ( s1->v[i] & 3) ^ (( s2->v[i] & 3) << 2);-
301 r[4*i+1] = ((s1->v[i] >> 2) & 3) ^ (((s2->v[i] >> 2) & 3) << 2);-
302 r[4*i+2] = ((s1->v[i] >> 4) & 3) ^ (((s2->v[i] >> 4) & 3) << 2);-
303 r[4*i+3] = ((s1->v[i] >> 6) & 3) ^ (((s2->v[i] >> 6) & 3) << 2);-
304 }
executed 431582 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
431582
305 r[124] = ( s1->v[31] & 3) ^ (( s2->v[31] & 3) << 2);-
306 r[125] = ((s1->v[31] >> 2) & 3) ^ (((s2->v[31] >> 2) & 3) << 2);-
307 r[126] = ((s1->v[31] >> 4) & 3) ^ (((s2->v[31] >> 4) & 3) << 2);-
308}
executed 13922 times by 2 tests: end of block
Executed by:
  • test_kex
  • test_sshkey
13922
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2