| 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted 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 blockExecuted by:
| 312 | ||||||||||||||||||||||||
| 171 | } executed 39 times by 1 test: end of blockExecuted 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 blockExecuted by:
| 1 | ||||||||||||||||||||||||
| 197 | memcpy( S->buf + S->buflen, in, inlen ); | - | ||||||||||||||||||||||||
| 198 | S->buflen += inlen; | - | ||||||||||||||||||||||||
| 199 | } executed 32 times by 1 test: end of blockExecuted 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 |