xref: /aosp_15_r20/external/lzma/CPP/7zip/Crypto/Sha1Cls.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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