1*f6dc9357SAndroid Build Coastguard Worker // Crypto/Sha1Cls.h 2*f6dc9357SAndroid Build Coastguard Worker 3*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_CRYPTO_SHA1_CLS_H 4*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_CRYPTO_SHA1_CLS_H 5*f6dc9357SAndroid Build Coastguard Worker 6*f6dc9357SAndroid Build Coastguard Worker #include "../../../C/Sha1.h" 7*f6dc9357SAndroid Build Coastguard Worker 8*f6dc9357SAndroid Build Coastguard Worker namespace NCrypto { 9*f6dc9357SAndroid Build Coastguard Worker namespace NSha1 { 10*f6dc9357SAndroid Build Coastguard Worker 11*f6dc9357SAndroid Build Coastguard Worker const unsigned kNumBlockWords = SHA1_NUM_BLOCK_WORDS; 12*f6dc9357SAndroid Build Coastguard Worker const unsigned kNumDigestWords = SHA1_NUM_DIGEST_WORDS; 13*f6dc9357SAndroid Build Coastguard Worker 14*f6dc9357SAndroid Build Coastguard Worker const unsigned kBlockSize = SHA1_BLOCK_SIZE; 15*f6dc9357SAndroid Build Coastguard Worker const unsigned kDigestSize = SHA1_DIGEST_SIZE; 16*f6dc9357SAndroid Build Coastguard Worker 17*f6dc9357SAndroid Build Coastguard Worker class CContext 18*f6dc9357SAndroid Build Coastguard Worker { 19*f6dc9357SAndroid Build Coastguard Worker CSha1 _s; 20*f6dc9357SAndroid Build Coastguard Worker 21*f6dc9357SAndroid Build Coastguard Worker public: Init()22*f6dc9357SAndroid Build Coastguard Worker void Init() throw() { Sha1_Init(&_s); } Update(const Byte * data,size_t size)23*f6dc9357SAndroid Build Coastguard Worker void Update(const Byte *data, size_t size) throw() { Sha1_Update(&_s, data, size); } Final(Byte * digest)24*f6dc9357SAndroid Build Coastguard Worker void Final(Byte *digest) throw() { Sha1_Final(&_s, digest); } PrepareBlock(Byte * block,unsigned size)25*f6dc9357SAndroid Build Coastguard Worker void PrepareBlock(Byte *block, unsigned size) const throw() 26*f6dc9357SAndroid Build Coastguard Worker { 27*f6dc9357SAndroid Build Coastguard Worker Sha1_PrepareBlock(&_s, block, size); 28*f6dc9357SAndroid Build Coastguard Worker } GetBlockDigest(const Byte * blockData,Byte * destDigest)29*f6dc9357SAndroid Build Coastguard Worker void GetBlockDigest(const Byte *blockData, Byte *destDigest) const throw() 30*f6dc9357SAndroid Build Coastguard Worker { 31*f6dc9357SAndroid Build Coastguard Worker Sha1_GetBlockDigest(&_s, blockData, destDigest); 32*f6dc9357SAndroid Build Coastguard Worker } 33*f6dc9357SAndroid Build Coastguard Worker }; 34*f6dc9357SAndroid Build Coastguard Worker 35*f6dc9357SAndroid Build Coastguard Worker }} 36*f6dc9357SAndroid Build Coastguard Worker 37*f6dc9357SAndroid Build Coastguard Worker #endif 38