MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / MD5_Update

Function MD5_Update

lib/mdflib/mdflib/src/cryptoutil.cpp:167–195  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

165}
166
167void MD5_Update(MD5_CTX *ctx, const void *data, unsigned long size) {
168 MD5_u32 saved_lo;
169 unsigned long used, free;
170
171 saved_lo = ctx->lo;
172 if ((ctx->lo = (saved_lo + size) & 0x1fffffff) < saved_lo) ctx->hi++;
173 ctx->hi += size >> 29;
174 used = saved_lo & 0x3f;
175
176 if (used) {
177 free = 64 - used;
178 if (size < free) {
179 memcpy(&ctx->buffer[used], data, size);
180 return;
181 }
182
183 memcpy(&ctx->buffer[used], data, free);
184 data = (unsigned char *)data + free;
185 size -= free;
186 body(ctx, ctx->buffer, 64);
187 }
188
189 if (size >= 64) {
190 data = body(ctx, data, size & ~(unsigned long)0x3f);
191 size &= 0x3f;
192 }
193
194 memcpy(ctx->buffer, data, size);
195}
196
197void MD5_Final(unsigned char *result, MD5_CTX *ctx) {
198 unsigned long used, free;

Callers 1

CreateMd5FileChecksumFunction · 0.85

Calls 1

bodyFunction · 0.70

Tested by

no test coverage detected