init xors IV with input parameter block */
| 211 | |
| 212 | /* init xors IV with input parameter block */ |
| 213 | int blake2b_init_param( blake2b_state *S, const blake2b_param *P ) |
| 214 | { |
| 215 | uint8_t *p, *h, *v; |
| 216 | //blake2b_init0( S ); |
| 217 | v = ( uint8_t * )( blake2b_IV ); |
| 218 | h = ( uint8_t * )( S->h ); |
| 219 | p = ( uint8_t * )( P ); |
| 220 | /* IV XOR ParamBlock */ |
| 221 | memset( S, 0, sizeof( blake2b_state ) ); |
| 222 | |
| 223 | for( int i = 0; i < BLAKE2B_OUTBYTES; ++i ) h[i] = v[i] ^ p[i]; |
| 224 | |
| 225 | S->outlen = P->digest_length; |
| 226 | return 0; |
| 227 | } |
| 228 | |
| 229 | |
| 230 | /* Some sort of default parameter block initialization, for sequential blake2b */ |
no test coverage detected