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

Function blake2s_update

freebsd/contrib/libb2/blake2s-ref.c:291–319  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

289
290
291int blake2s_update( blake2s_state *S, const uint8_t *in, size_t inlen )
292{
293 while( inlen > 0 )
294 {
295 uint32_t left = S->buflen;
296 uint32_t fill = 2 * BLAKE2S_BLOCKBYTES - left;
297
298 if( inlen > fill )
299 {
300 memcpy( S->buf + left, in, fill ); // Fill buffer
301 S->buflen += fill;
302 blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
303 blake2s_compress( S, S->buf ); // Compress
304 memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
305 S->buflen -= BLAKE2S_BLOCKBYTES;
306 in += fill;
307 inlen -= fill;
308 }
309 else // inlen <= fill
310 {
311 memcpy( S->buf + left, in, inlen );
312 S->buflen += ( uint32_t ) inlen; // Be lazy, do not compress
313 in += inlen;
314 inlen -= inlen;
315 }
316 }
317
318 return 0;
319}
320
321int blake2s_final( blake2s_state *S, uint8_t *out, size_t outlen )
322{

Callers 2

blake2s_init_keyFunction · 0.70
blake2sFunction · 0.70

Calls 3

blake2s_compressFunction · 0.70
memcpyFunction · 0.50

Tested by

no test coverage detected