MCPcopy Create free account
hub / github.com/F-Stack/f-stack / blake2bp_final

Function blake2bp_final

freebsd/contrib/libb2/blake2bp.c:170–194  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

168
169
170int blake2bp_final( blake2bp_state *S, uint8_t *out, size_t outlen )
171{
172 uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
173
174 if(S->outlen != outlen) return -1;
175
176 for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
177 {
178 if( S->buflen > i * BLAKE2B_BLOCKBYTES )
179 {
180 size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
181
182 if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
183
184 blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
185 }
186
187 blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
188 }
189
190 for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
191 blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
192
193 return blake2b_final( S->R, out, outlen );
194}
195
196int blake2bp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )
197{

Callers

nothing calls this directly

Calls 2

blake2b_updateFunction · 0.70
blake2b_finalFunction · 0.70

Tested by

no test coverage detected