OpenCoverage

blake2b-ref.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/coreutils/src/src/blake2/blake2b-ref.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3static const uint64_t blake2b_IV[8] =-
4{-
5 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,-
6 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,-
7 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,-
8 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL-
9};-
10-
11static const uint8_t blake2b_sigma[12][16] =-
12{-
13 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,-
14 { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,-
15 { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,-
16 { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,-
17 { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,-
18 { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,-
19 { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,-
20 { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,-
21 { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,-
22 { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,-
23 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,-
24 { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }-
25};-
26-
27-
28static void blake2b_set_lastnode( blake2b_state *S )-
29{-
30 S->f[1] = (uint64_t)-1;-
31}
never executed: end of block
0
32-
33-
34static int blake2b_is_lastblock( const blake2b_state *S )-
35{-
36 return
executed 38 times by 1 test: return S->f[0] != 0;
Executed by:
  • b2sum
S->f[0] != 0;
executed 38 times by 1 test: return S->f[0] != 0;
Executed by:
  • b2sum
38
37}-
38-
39static void blake2b_set_lastblock( blake2b_state *S )-
40{-
41 if( S->last_node
S->last_nodeDescription
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
) blake2b_set_lastnode( S );
never executed: blake2b_set_lastnode( S );
0-38
42-
43 S->f[0] = (uint64_t)-1;-
44}
executed 38 times by 1 test: end of block
Executed by:
  • b2sum
38
45-
46static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )-
47{-
48 S->t[0] += inc;-
49 S->t[1] += ( S->t[0] < inc );-
50}
executed 39 times by 1 test: end of block
Executed by:
  • b2sum
39
51-
52static void blake2b_init0( blake2b_state *S )-
53{-
54 size_t i;-
55 memset( S, 0, sizeof( blake2b_state ) );-
56-
57 for( i = 0; i < 8
i < 8Description
TRUEevaluated 304 times by 1 test
Evaluated by:
  • b2sum
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
; ++i ) S->h[i] = blake2b_IV[i];
executed 304 times by 1 test: S->h[i] = blake2b_IV[i];
Executed by:
  • b2sum
38-304
58}
executed 38 times by 1 test: end of block
Executed by:
  • b2sum
38
59-
60-
61int blake2b_init_param( blake2b_state *S, const blake2b_param *P )-
62{-
63 const uint8_t *p = ( const uint8_t * )( P );-
64 size_t i;-
65-
66 blake2b_init0( S );-
67-
68-
69 for( i = 0; i < 8
i < 8Description
TRUEevaluated 304 times by 1 test
Evaluated by:
  • b2sum
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
; ++i )
38-304
70 S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
executed 304 times by 1 test: S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
Executed by:
  • b2sum
304
71-
72 S->outlen = P->digest_length;-
73 return
executed 38 times by 1 test: return 0;
Executed by:
  • b2sum
0;
executed 38 times by 1 test: return 0;
Executed by:
  • b2sum
38
74}-
75-
76-
77-
78int blake2b_init( blake2b_state *S, size_t outlen )-
79{-
80 blake2b_param P[1];-
81-
82 if ( (
( !outlen )Description
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
!outlen )
( !outlen )Description
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
|| (
( outlen > BLAKE2B_OUTBYTES )Description
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
outlen > BLAKE2B_OUTBYTES )
( outlen > BLAKE2B_OUTBYTES )Description
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
) return
never executed: return -1;
-1;
never executed: return -1;
0-38
83-
84 P->digest_length = (uint8_t)outlen;-
85 P->key_length = 0;-
86 P->fanout = 1;-
87 P->depth = 1;-
88 store32( &P->leaf_length, 0 );-
89 store32( &P->node_offset, 0 );-
90 store32( &P->xof_length, 0 );-
91 P->node_depth = 0;-
92 P->inner_length = 0;-
93 memset( P->reserved, 0, sizeof( P->reserved ) );-
94 memset( P->salt, 0, sizeof( P->salt ) );-
95 memset( P->personal, 0, sizeof( P->personal ) );-
96 return
executed 38 times by 1 test: return blake2b_init_param( S, P );
Executed by:
  • b2sum
blake2b_init_param( S, P );
executed 38 times by 1 test: return blake2b_init_param( S, P );
Executed by:
  • b2sum
38
97}-
98-
99-
100int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )-
101{-
102 blake2b_param P[1];-
103-
104 if ( (
( !outlen )Description
TRUEnever evaluated
FALSEnever evaluated
!outlen )
( !outlen )Description
TRUEnever evaluated
FALSEnever evaluated
|| (
( outlen > BLAKE2B_OUTBYTES )Description
TRUEnever evaluated
FALSEnever evaluated
outlen > BLAKE2B_OUTBYTES )
( outlen > BLAKE2B_OUTBYTES )Description
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
105-
106 if ( !key
!keyDescription
TRUEnever evaluated
FALSEnever evaluated
|| !keylen
!keylenDescription
TRUEnever evaluated
FALSEnever evaluated
|| keylen > BLAKE2B_KEYBYTES
keylen > BLAKE2B_KEYBYTESDescription
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
107-
108 P->digest_length = (uint8_t)outlen;-
109 P->key_length = (uint8_t)keylen;-
110 P->fanout = 1;-
111 P->depth = 1;-
112 store32( &P->leaf_length, 0 );-
113 store32( &P->node_offset, 0 );-
114 store32( &P->xof_length, 0 );-
115 P->node_depth = 0;-
116 P->inner_length = 0;-
117 memset( P->reserved, 0, sizeof( P->reserved ) );-
118 memset( P->salt, 0, sizeof( P->salt ) );-
119 memset( P->personal, 0, sizeof( P->personal ) );-
120-
121 if( blake2b_init_param( S, P ) < 0
blake2b_init_param( S, P ) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
122-
123 {-
124 uint8_t block[BLAKE2B_BLOCKBYTES];-
125 memset( block, 0, BLAKE2B_BLOCKBYTES );-
126 memcpy( block, key, keylen );-
127 blake2b_update( S, block, BLAKE2B_BLOCKBYTES );-
128 secure_zero_memory( block, BLAKE2B_BLOCKBYTES );-
129 }-
130 return
never executed: return 0;
0;
never executed: return 0;
0
131}-
132static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )-
133{-
134 uint64_t m[16];-
135 uint64_t v[16];-
136 size_t i;-
137-
138 for( i = 0; i < 16
i < 16Description
TRUEevaluated 624 times by 1 test
Evaluated by:
  • b2sum
FALSEevaluated 39 times by 1 test
Evaluated by:
  • b2sum
; ++i ) {
39-624
139 m[i] = load64( block + i * sizeof( m[i] ) );-
140 }
executed 624 times by 1 test: end of block
Executed by:
  • b2sum
624
141-
142 for( i = 0; i < 8
i < 8Description
TRUEevaluated 312 times by 1 test
Evaluated by:
  • b2sum
FALSEevaluated 39 times by 1 test
Evaluated by:
  • b2sum
; ++i ) {
39-312
143 v[i] = S->h[i];-
144 }
executed 312 times by 1 test: end of block
Executed by:
  • b2sum
312
145-
146 v[ 8] = blake2b_IV[0];-
147 v[ 9] = blake2b_IV[1];-
148 v[10] = blake2b_IV[2];-
149 v[11] = blake2b_IV[3];-
150 v[12] = blake2b_IV[4] ^ S->t[0];-
151 v[13] = blake2b_IV[5] ^ S->t[1];-
152 v[14] = blake2b_IV[6] ^ S->f[0];-
153 v[15] = blake2b_IV[7] ^ S->f[1];-
154-
155 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[0][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[0][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[0][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[0][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[0][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[0][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[0][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[0][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[0][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[0][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[0][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[0][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[0][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[0][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[0][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[0][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
156 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[1][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[1][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[1][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[1][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[1][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[1][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[1][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[1][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[1][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[1][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[1][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[1][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[1][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[1][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[1][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[1][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
157 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[2][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[2][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[2][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[2][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[2][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[2][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[2][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[2][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[2][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[2][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[2][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[2][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[2][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[2][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[2][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[2][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
158 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[3][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[3][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[3][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[3][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[3][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[3][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[3][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[3][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[3][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[3][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[3][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[3][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[3][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[3][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[3][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[3][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
159 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[4][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[4][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[4][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[4][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[4][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[4][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[4][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[4][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[4][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[4][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[4][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[4][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[4][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[4][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[4][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[4][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
160 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[5][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[5][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[5][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[5][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[5][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[5][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[5][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[5][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[5][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[5][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[5][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[5][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[5][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[5][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[5][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[5][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
161 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[6][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[6][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[6][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[6][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[6][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[6][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[6][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[6][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[6][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[6][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[6][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[6][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[6][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[6][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[6][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[6][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
162 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[7][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[7][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[7][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[7][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[7][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[7][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[7][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[7][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[7][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[7][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[7][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[7][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[7][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[7][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[7][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[7][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
163 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[8][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[8][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[8][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[8][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[8][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[8][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[8][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[8][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[8][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[8][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[8][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[8][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[8][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[8][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[8][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[8][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
164 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[9][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[9][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[9][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[9][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[9][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[9][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[9][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[9][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[9][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[9][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[9][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[9][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[9][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[9][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[9][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[9][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
165 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[10][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[10][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[10][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[10][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[10][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[10][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[10][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[10][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[10][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[10][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[10][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[10][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[10][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[10][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[10][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[10][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
166 do { do { v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[11][2*0 +0]]; v[12] = rotr64(v[12] ^ v[ 0], 32); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 24); v[ 0] = v[ 0] + v[ 4] + m[blake2b_sigma[11][2*0 +1]]; v[12] = rotr64(v[12] ^ v[ 0], 16); v[ 8] = v[ 8] + v[12]; v[ 4] = rotr64(v[ 4] ^ v[ 8], 63); } while(0); do { v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[11][2*1 +0]]; v[13] = rotr64(v[13] ^ v[ 1], 32); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 24); v[ 1] = v[ 1] + v[ 5] + m[blake2b_sigma[11][2*1 +1]]; v[13] = rotr64(v[13] ^ v[ 1], 16); v[ 9] = v[ 9] + v[13]; v[ 5] = rotr64(v[ 5] ^ v[ 9], 63); } while(0); do { v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[11][2*2 +0]]; v[14] = rotr64(v[14] ^ v[ 2], 32); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 24); v[ 2] = v[ 2] + v[ 6] + m[blake2b_sigma[11][2*2 +1]]; v[14] = rotr64(v[14] ^ v[ 2], 16); v[10] = v[10] + v[14]; v[ 6] = rotr64(v[ 6] ^ v[10], 63); } while(0); do { v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[11][2*3 +0]]; v[15] = rotr64(v[15] ^ v[ 3], 32); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 24); v[ 3] = v[ 3] + v[ 7] + m[blake2b_sigma[11][2*3 +1]]; v[15] = rotr64(v[15] ^ v[ 3], 16); v[11] = v[11] + v[15]; v[ 7] = rotr64(v[ 7] ^ v[11], 63); } while(0); do { v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[11][2*4 +0]]; v[15] = rotr64(v[15] ^ v[ 0], 32); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 24); v[ 0] = v[ 0] + v[ 5] + m[blake2b_sigma[11][2*4 +1]]; v[15] = rotr64(v[15] ^ v[ 0], 16); v[10] = v[10] + v[15]; v[ 5] = rotr64(v[ 5] ^ v[10], 63); } while(0); do { v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[11][2*5 +0]]; v[12] = rotr64(v[12] ^ v[ 1], 32); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 24); v[ 1] = v[ 1] + v[ 6] + m[blake2b_sigma[11][2*5 +1]]; v[12] = rotr64(v[12] ^ v[ 1], 16); v[11] = v[11] + v[12]; v[ 6] = rotr64(v[ 6] ^ v[11], 63); } while(0); do { v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[11][2*6 +0]]; v[13] = rotr64(v[13] ^ v[ 2], 32); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 24); v[ 2] = v[ 2] + v[ 7] + m[blake2b_sigma[11][2*6 +1]]; v[13] = rotr64(v[13] ^ v[ 2], 16); v[ 8] = v[ 8] + v[13]; v[ 7] = rotr64(v[ 7] ^ v[ 8], 63); } while(0); do { v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[11][2*7 +0]]; v[14] = rotr64(v[14] ^ v[ 3], 32); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 24); v[ 3] = v[ 3] + v[ 4] + m[blake2b_sigma[11][2*7 +1]]; v[14] = rotr64(v[14] ^ v[ 3], 16); v[ 9] = v[ 9] + v[14]; v[ 4] = rotr64(v[ 4] ^ v[ 9], 63); } while(0); } while(0);-
167-
168 for( i = 0; i < 8
i < 8Description
TRUEevaluated 312 times by 1 test
Evaluated by:
  • b2sum
FALSEevaluated 39 times by 1 test
Evaluated by:
  • b2sum
; ++i ) {
39-312
169 S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];-
170 }
executed 312 times by 1 test: end of block
Executed by:
  • b2sum
312
171}
executed 39 times by 1 test: end of block
Executed by:
  • b2sum
39
172-
173-
174-
175-
176int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )-
177{-
178 const unsigned char * in = (const unsigned char *)pin;-
179 if( inlen > 0
inlen > 0Description
TRUEevaluated 32 times by 1 test
Evaluated by:
  • b2sum
FALSEnever evaluated
)
0-32
180 {-
181 size_t left = S->buflen;-
182 size_t fill = BLAKE2B_BLOCKBYTES - left;-
183 if( inlen > fill
inlen > fillDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • b2sum
FALSEevaluated 31 times by 1 test
Evaluated by:
  • b2sum
)
1-31
184 {-
185 S->buflen = 0;-
186 memcpy( S->buf + left, in, fill );-
187 blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );-
188 blake2b_compress( S, S->buf );-
189 in += fill; inlen -= fill;-
190 while(inlen > BLAKE2B_BLOCKBYTES
inlen > BLAKE2B_BLOCKBYTESDescription
TRUEnever evaluated
FALSEevaluated 1 time by 1 test
Evaluated by:
  • b2sum
) {
0-1
191 blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);-
192 blake2b_compress( S, in );-
193 in += BLAKE2B_BLOCKBYTES;-
194 inlen -= BLAKE2B_BLOCKBYTES;-
195 }
never executed: end of block
0
196 }
executed 1 time by 1 test: end of block
Executed by:
  • b2sum
1
197 memcpy( S->buf + S->buflen, in, inlen );-
198 S->buflen += inlen;-
199 }
executed 32 times by 1 test: end of block
Executed by:
  • b2sum
32
200 return
executed 32 times by 1 test: return 0;
Executed by:
  • b2sum
0;
executed 32 times by 1 test: return 0;
Executed by:
  • b2sum
32
201}-
202-
203int blake2b_final( blake2b_state *S, void *out, size_t outlen )-
204{-
205 uint8_t buffer[BLAKE2B_OUTBYTES] = {0};-
206 size_t i;-
207-
208 if( out ==
out == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
0-38
209 ((void *)0)
out == ((void *)0)Description
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
0-38
210 || outlen < S->outlen
outlen < S->outlenDescription
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
)
0-38
211 return
never executed: return -1;
-1;
never executed: return -1;
0
212-
213 if( blake2b_is_lastblock( S )
blake2b_is_lastblock( S )Description
TRUEnever evaluated
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
)
0-38
214 return
never executed: return -1;
-1;
never executed: return -1;
0
215-
216 blake2b_increment_counter( S, S->buflen );-
217 blake2b_set_lastblock( S );-
218 memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen );-
219 blake2b_compress( S, S->buf );-
220-
221 for( i = 0; i < 8
i < 8Description
TRUEevaluated 304 times by 1 test
Evaluated by:
  • b2sum
FALSEevaluated 38 times by 1 test
Evaluated by:
  • b2sum
; ++i )
38-304
222 store64( buffer + sizeof( S->h[i] ) * i, S->h[i] );
executed 304 times by 1 test: store64( buffer + sizeof( S->h[i] ) * i, S->h[i] );
Executed by:
  • b2sum
304
223-
224 memcpy( out, buffer, S->outlen );-
225 secure_zero_memory(buffer, sizeof(buffer));-
226 return
executed 38 times by 1 test: return 0;
Executed by:
  • b2sum
0;
executed 38 times by 1 test: return 0;
Executed by:
  • b2sum
38
227}-
228-
229-
230int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )-
231{-
232 blake2b_state S[1];-
233-
234-
235 if ( -
236 ((
((void *)0) == inDescription
TRUEnever evaluated
FALSEnever evaluated
void *)0)
((void *)0) == inDescription
TRUEnever evaluated
FALSEnever evaluated
0
237 == in
((void *)0) == inDescription
TRUEnever evaluated
FALSEnever evaluated
&& inlen > 0
inlen > 0Description
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
238-
239 if ( -
240 ((
((void *)0) == outDescription
TRUEnever evaluated
FALSEnever evaluated
void *)0)
((void *)0) == outDescription
TRUEnever evaluated
FALSEnever evaluated
0
241 == out
((void *)0) == outDescription
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
242-
243 if( -
244 ((
((void *)0) == keyDescription
TRUEnever evaluated
FALSEnever evaluated
void *)0)
((void *)0) == keyDescription
TRUEnever evaluated
FALSEnever evaluated
0
245 == key
((void *)0) == keyDescription
TRUEnever evaluated
FALSEnever evaluated
&& keylen > 0
keylen > 0Description
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
246-
247 if( !outlen
!outlenDescription
TRUEnever evaluated
FALSEnever evaluated
|| outlen > BLAKE2B_OUTBYTES
outlen > BLAKE2B_OUTBYTESDescription
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
248-
249 if( keylen > BLAKE2B_KEYBYTES
keylen > BLAKE2B_KEYBYTESDescription
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
250-
251 if( keylen > 0
keylen > 0Description
TRUEnever evaluated
FALSEnever evaluated
)
0
252 {-
253 if( blake2b_init_key( S, outlen, key, keylen ) < 0
blake2b_init_k..., keylen ) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
254 }
never executed: end of block
0
255 else-
256 {-
257 if( blake2b_init( S, outlen ) < 0
blake2b_init( S, outlen ) < 0Description
TRUEnever evaluated
FALSEnever evaluated
) return
never executed: return -1;
-1;
never executed: return -1;
0
258 }
never executed: end of block
0
259-
260 blake2b_update( S, ( const uint8_t * )in, inlen );-
261 blake2b_final( S, out, outlen );-
262 return
never executed: return 0;
0;
never executed: return 0;
0
263}-
264-
265int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {-
266 return
never executed: return blake2b(out, outlen, in, inlen, key, keylen);
blake2b(out, outlen, in, inlen, key, keylen);
never executed: return blake2b(out, outlen, in, inlen, key, keylen);
0
267}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.1.2