1/* 2 * SHA1 routine optimized to do word accesses rather than byte accesses, 3 * and to avoid unnecessary copies into the context array. 4 * 5 * This was initially based on the Mozilla SHA1 implementation, although 6 * none of the original Mozilla code remains. 7 */ 8 9typedef struct { 10 unsigned long long size; 11 unsigned int H[5]; 12 unsigned int W[16]; 13} blk_SHA_CTX; 14 15void blk_SHA1_Init(blk_SHA_CTX *ctx); 16void blk_SHA1_Update(blk_SHA_CTX *ctx, const void *dataIn, unsigned long len); 17void blk_SHA1_Final(unsigned char hashout[20], blk_SHA_CTX *ctx); 18 19#define git_SHA_CTX blk_SHA_CTX 20#define git_SHA1_Init blk_SHA1_Init 21#define git_SHA1_Update blk_SHA1_Update 22#define git_SHA1_Final blk_SHA1_Final