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 9typedefstruct{ 10unsigned long long size; 11unsigned int H[5]; 12unsigned int W[16]; 13} blk_SHA_CTX; 14 15voidblk_SHA1_Init(blk_SHA_CTX *ctx); 16voidblk_SHA1_Update(blk_SHA_CTX *ctx,const void*dataIn,unsigned long len); 17voidblk_SHA1_Final(unsigned char hashout[20], blk_SHA_CTX *ctx); 18 19#define platform_SHA_CTX blk_SHA_CTX 20#define platform_SHA1_Init blk_SHA1_Init 21#define platform_SHA1_Update blk_SHA1_Update 22#define platform_SHA1_Final blk_SHA1_Final