Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/src/blake2/blake2b-ref.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | static const uint64_t blake2b_IV[8] = | - | ||||||||||||||||||||||||
4 | { | - | ||||||||||||||||||||||||
5 | 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL, | - | ||||||||||||||||||||||||
6 | 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL, | - | ||||||||||||||||||||||||
7 | 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL, | - | ||||||||||||||||||||||||
8 | 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL | - | ||||||||||||||||||||||||
9 | }; | - | ||||||||||||||||||||||||
10 | - | |||||||||||||||||||||||||
11 | static 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 | - | |||||||||||||||||||||||||
28 | static void blake2b_set_lastnode( blake2b_state *S ) | - | ||||||||||||||||||||||||
29 | { | - | ||||||||||||||||||||||||
30 | S->f[1] = (uint64_t)-1; | - | ||||||||||||||||||||||||
31 | } never executed: end of block | 0 | ||||||||||||||||||||||||
32 | - | |||||||||||||||||||||||||
33 | - | |||||||||||||||||||||||||
34 | static int blake2b_is_lastblock( const blake2b_state *S ) | - | ||||||||||||||||||||||||
35 | { | - | ||||||||||||||||||||||||
36 | return executed 38 times by 1 test: S->f[0] != 0;return S->f[0] != 0; Executed by:
executed 38 times by 1 test: return S->f[0] != 0; Executed by:
| 38 | ||||||||||||||||||||||||
37 | } | - | ||||||||||||||||||||||||
38 | - | |||||||||||||||||||||||||
39 | static void blake2b_set_lastblock( blake2b_state *S ) | - | ||||||||||||||||||||||||
40 | { | - | ||||||||||||||||||||||||
41 | if( S->last_node
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:
| 38 | ||||||||||||||||||||||||
45 | - | |||||||||||||||||||||||||
46 | static 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:
| 39 | ||||||||||||||||||||||||
51 | - | |||||||||||||||||||||||||
52 | static 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
executed 304 times by 1 test: S->h[i] = blake2b_IV[i]; Executed by:
| 38-304 | ||||||||||||||||||||||||
58 | } executed 38 times by 1 test: end of block Executed by:
| 38 | ||||||||||||||||||||||||
59 | - | |||||||||||||||||||||||||
60 | - | |||||||||||||||||||||||||
61 | int 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
| 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:
| 304 | ||||||||||||||||||||||||
71 | - | |||||||||||||||||||||||||
72 | S->outlen = P->digest_length; | - | ||||||||||||||||||||||||
73 | return executed 38 times by 1 test: 0;return 0; Executed by:
executed 38 times by 1 test: return 0; Executed by:
| 38 | ||||||||||||||||||||||||
74 | } | - | ||||||||||||||||||||||||
75 | - | |||||||||||||||||||||||||
76 | - | |||||||||||||||||||||||||
77 | - | |||||||||||||||||||||||||
78 | int blake2b_init( blake2b_state *S, size_t outlen ) | - | ||||||||||||||||||||||||
79 | { | - | ||||||||||||||||||||||||
80 | blake2b_param P[1]; | - | ||||||||||||||||||||||||
81 | - | |||||||||||||||||||||||||
82 | if ( (
never executed: -1;return -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: blake2b_init_param( S, P );return blake2b_init_param( S, P ); Executed by:
executed 38 times by 1 test: return blake2b_init_param( S, P ); Executed by:
| 38 | ||||||||||||||||||||||||
97 | } | - | ||||||||||||||||||||||||
98 | - | |||||||||||||||||||||||||
99 | - | |||||||||||||||||||||||||
100 | int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen ) | - | ||||||||||||||||||||||||
101 | { | - | ||||||||||||||||||||||||
102 | blake2b_param P[1]; | - | ||||||||||||||||||||||||
103 | - | |||||||||||||||||||||||||
104 | if ( (
never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
105 | - | |||||||||||||||||||||||||
106 | if ( !key
never executed: -1;return -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
never executed: -1;return -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: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
131 | } | - | ||||||||||||||||||||||||
132 | static 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
| 39-624 | ||||||||||||||||||||||||
139 | m[i] = load64( block + i * sizeof( m[i] ) ); | - | ||||||||||||||||||||||||
140 | } executed 624 times by 1 test: end of block Executed by:
| 624 | ||||||||||||||||||||||||
141 | - | |||||||||||||||||||||||||
142 | for( i = 0; i < 8
| 39-312 | ||||||||||||||||||||||||
143 | v[i] = S->h[i]; | - | ||||||||||||||||||||||||
144 | } executed 312 times by 1 test: end of block Executed by:
| 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
| 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:
| 312 | ||||||||||||||||||||||||
171 | } executed 39 times by 1 test: end of block Executed by:
| 39 | ||||||||||||||||||||||||
172 | - | |||||||||||||||||||||||||
173 | - | |||||||||||||||||||||||||
174 | - | |||||||||||||||||||||||||
175 | - | |||||||||||||||||||||||||
176 | int 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
| 0-32 | ||||||||||||||||||||||||
180 | { | - | ||||||||||||||||||||||||
181 | size_t left = S->buflen; | - | ||||||||||||||||||||||||
182 | size_t fill = BLAKE2B_BLOCKBYTES - left; | - | ||||||||||||||||||||||||
183 | if( inlen > fill
| 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
| 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:
| 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:
| 32 | ||||||||||||||||||||||||
200 | return executed 32 times by 1 test: 0;return 0; Executed by:
executed 32 times by 1 test: return 0; Executed by:
| 32 | ||||||||||||||||||||||||
201 | } | - | ||||||||||||||||||||||||
202 | - | |||||||||||||||||||||||||
203 | int 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 ==
| 0-38 | ||||||||||||||||||||||||
209 | ((void *)0)
| 0-38 | ||||||||||||||||||||||||
210 | || outlen < S->outlen
| 0-38 | ||||||||||||||||||||||||
211 | return never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
212 | - | |||||||||||||||||||||||||
213 | if( blake2b_is_lastblock( S )
| 0-38 | ||||||||||||||||||||||||
214 | return never executed: -1;return -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
| 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:
| 304 | ||||||||||||||||||||||||
223 | - | |||||||||||||||||||||||||
224 | memcpy( out, buffer, S->outlen ); | - | ||||||||||||||||||||||||
225 | secure_zero_memory(buffer, sizeof(buffer)); | - | ||||||||||||||||||||||||
226 | return executed 38 times by 1 test: 0;return 0; Executed by:
executed 38 times by 1 test: return 0; Executed by:
| 38 | ||||||||||||||||||||||||
227 | } | - | ||||||||||||||||||||||||
228 | - | |||||||||||||||||||||||||
229 | - | |||||||||||||||||||||||||
230 | int 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 | ((
| 0 | ||||||||||||||||||||||||
237 | == in
never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
238 | - | |||||||||||||||||||||||||
239 | if ( | - | ||||||||||||||||||||||||
240 | ((
| 0 | ||||||||||||||||||||||||
241 | == out
never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
242 | - | |||||||||||||||||||||||||
243 | if( | - | ||||||||||||||||||||||||
244 | ((
| 0 | ||||||||||||||||||||||||
245 | == key
never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
246 | - | |||||||||||||||||||||||||
247 | if( !outlen
never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
248 | - | |||||||||||||||||||||||||
249 | if( keylen > BLAKE2B_KEYBYTES
never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
250 | - | |||||||||||||||||||||||||
251 | if( keylen > 0
| 0 | ||||||||||||||||||||||||
252 | { | - | ||||||||||||||||||||||||
253 | if( blake2b_init_key( S, outlen, key, keylen ) < 0
never executed: -1;return -1; never executed: return -1; | 0 | ||||||||||||||||||||||||
254 | } never executed: end of block | 0 | ||||||||||||||||||||||||
255 | else | - | ||||||||||||||||||||||||
256 | { | - | ||||||||||||||||||||||||
257 | if( blake2b_init( S, outlen ) < 0
never executed: -1;return -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: 0;return 0; never executed: return 0; | 0 | ||||||||||||||||||||||||
263 | } | - | ||||||||||||||||||||||||
264 | - | |||||||||||||||||||||||||
265 | int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) { | - | ||||||||||||||||||||||||
266 | return never executed: blake2b(out, outlen, in, inlen, key, keylen);return blake2b(out, outlen, in, inlen, key, keylen); never executed: return blake2b(out, outlen, in, inlen, key, keylen); | 0 | ||||||||||||||||||||||||
267 | } | - | ||||||||||||||||||||||||
Switch to Source code | Preprocessed file |