1 // HmacSha256.h
2 // Implements HMAC-SHA-256 (RFC2104, FIPS-198)
3 
4 #ifndef __CRYPTO_HMAC_SHA256_H
5 #define __CRYPTO_HMAC_SHA256_H
6 
7 #include "../../../C/Sha256.h"
8 
9 namespace NCrypto {
10 namespace NSha256 {
11 
12 const unsigned kBlockSize = SHA256_BLOCK_SIZE;
13 const unsigned kDigestSize = SHA256_DIGEST_SIZE;
14 
15 class CHmac
16 {
17   CSha256 _sha;
18   CSha256 _sha2;
19 public:
20   void SetKey(const Byte *key, size_t keySize);
Update(const Byte * data,size_t dataSize)21   void Update(const Byte *data, size_t dataSize) { Sha256_Update(&_sha, data, dataSize); }
22   void Final(Byte *mac);
23 };
24 
25 }}
26 
27 #endif
28