1 // HmacSha256.h 2 // Implements HMAC-SHA-256 (RFC2104, FIPS-198) 3 4 #ifndef ZIP7_INC_CRYPTO_HMAC_SHA256_H 5 #define ZIP7_INC_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