Browse Source
Using the previous commit's inredirection mechanism for SHA1, support a chunked implementation of SHA1_Update() that limits the amount of data in the chunk passed to SHA1_Update(). This is enabled by using the Makefile variable SHA1_MAX_BLOCK_SIZE to specify chunk size. When using Apple's CommonCrypto library this is set to 1GiB (the implementation cannot handle more 4GiB). Signed-off-by: Atousa Pahlevan Duprat <apahlevan@ieee.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Atousa Pahlevan Duprat
9 years ago
committed by
Junio C Hamano
5 changed files with 44 additions and 0 deletions
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
#include "cache.h" |
||||
|
||||
int git_SHA1_Update_Chunked(platform_SHA_CTX *c, const void *data, size_t len) |
||||
{ |
||||
size_t nr; |
||||
size_t total = 0; |
||||
const char *cdata = (const char*)data; |
||||
|
||||
while (len) { |
||||
nr = len; |
||||
if (nr > SHA1_MAX_BLOCK_SIZE) |
||||
nr = SHA1_MAX_BLOCK_SIZE; |
||||
platform_SHA1_Update(c, cdata, nr); |
||||
total += nr; |
||||
cdata += nr; |
||||
len -= nr; |
||||
} |
||||
return total; |
||||
} |
Loading…
Reference in new issue