MCPcopy Create free account
hub / github.com/abbeycode/UnrarKit / blake2s_update

Function blake2s_update

Libraries/unrar/blake2s.cpp:123–162  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

121
122
123void blake2s_update( blake2s_state *S, const byte *in, size_t inlen )
124{
125 while( inlen > 0 )
126 {
127 size_t left = S->buflen;
128 size_t fill = 2 * BLAKE2S_BLOCKBYTES - left;
129
130 if( inlen > fill )
131 {
132 memcpy( S->buf + left, in, fill ); // Fill buffer
133 S->buflen += fill;
134 blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
135
136#ifdef USE_SSE
137#ifdef _WIN_32 // We use SSSE3 _mm_shuffle_epi8 only in x64 mode.
138 if (_SSE_Version>=SSE_SSE2)
139#else
140 if (_SSE_Version>=SSE_SSSE3)
141#endif
142 blake2s_compress_sse( S, S->buf );
143 else
144 blake2s_compress( S, S->buf ); // Compress
145#else
146 blake2s_compress( S, S->buf ); // Compress
147#endif
148
149 memcpy( S->buf, S->buf + BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES ); // Shift buffer left
150 S->buflen -= BLAKE2S_BLOCKBYTES;
151 in += fill;
152 inlen -= fill;
153 }
154 else // inlen <= fill
155 {
156 memcpy( S->buf + left, in, (size_t)inlen );
157 S->buflen += (size_t)inlen; // Be lazy, do not compress
158 in += inlen;
159 inlen = 0;
160 }
161 }
162}
163
164
165void blake2s_final( blake2s_state *S, byte *digest )

Callers 3

UpdateMethod · 0.85
blake2sp_updateFunction · 0.85
blake2sp_finalFunction · 0.85

Calls 3

blake2s_compress_sseFunction · 0.85
blake2s_compressFunction · 0.85

Tested by

no test coverage detected