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

Function blake2sp_final

freebsd/contrib/libb2/blake2sp.c:166–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

164
165
166int blake2sp_final( blake2sp_state *S, uint8_t *out, size_t outlen )
167{
168 uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
169
170 if(S->outlen != outlen) return -1;
171
172 for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
173 {
174 if( S->buflen > i * BLAKE2S_BLOCKBYTES )
175 {
176 size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
177
178 if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
179
180 blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
181 }
182
183 blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
184 }
185
186 for( size_t i = 0; i < PARALLELISM_DEGREE; ++i )
187 blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
188
189 blake2s_final( S->R, out, outlen );
190 return 0;
191}
192
193
194int blake2sp( uint8_t *out, const void *in, const void *key, size_t outlen, size_t inlen, size_t keylen )

Callers

nothing calls this directly

Calls 2

blake2s_updateFunction · 0.70
blake2s_finalFunction · 0.70

Tested by

no test coverage detected