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

Function blake2b_update

freebsd/contrib/libb2/blake2b-ref.c:301–329  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

299
300
301int blake2b_update( blake2b_state *S, const uint8_t *in, size_t inlen )
302{
303 while( inlen > 0 )
304 {
305 uint32_t left = S->buflen;
306 uint32_t fill = 2 * BLAKE2B_BLOCKBYTES - left;
307
308 if( inlen > fill )
309 {
310 memcpy( S->buf + left, in, fill ); // Fill buffer
311 S->buflen += fill;
312 blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
313 blake2b_compress( S, S->buf ); // Compress
314 memcpy( S->buf, S->buf + BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES ); // Shift buffer left
315 S->buflen -= BLAKE2B_BLOCKBYTES;
316 in += fill;
317 inlen -= fill;
318 }
319 else // inlen <= fill
320 {
321 memcpy( S->buf + left, in, inlen );
322 S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
323 in += inlen;
324 inlen -= inlen;
325 }
326 }
327
328 return 0;
329}
330
331int blake2b_final( blake2b_state *S, uint8_t *out, size_t outlen )
332{

Callers 2

blake2b_init_keyFunction · 0.70
blake2bFunction · 0.70

Calls 3

blake2b_compressFunction · 0.70
memcpyFunction · 0.50

Tested by

no test coverage detected