annotate src/win32/7zip/7z/CPP/7zip/Crypto/HmacSha1.h @ 1:f9f4f1b99eed

importing src directory
author Robert McIntyre <rlm@mit.edu>
date Sat, 03 Mar 2012 10:31:27 -0600
parents
children
rev   line source
rlm@1 1 // HmacSha1.h
rlm@1 2 // Implements HMAC-SHA-1 (RFC2104, FIPS-198)
rlm@1 3
rlm@1 4 #ifndef __CRYPTO_HMAC_SHA1_H
rlm@1 5 #define __CRYPTO_HMAC_SHA1_H
rlm@1 6
rlm@1 7 #include "Sha1.h"
rlm@1 8
rlm@1 9 namespace NCrypto {
rlm@1 10 namespace NSha1 {
rlm@1 11
rlm@1 12 // Use: SetKey(key, keySize); for () Update(data, size); Final(mac, macSize);
rlm@1 13
rlm@1 14 class CHmac
rlm@1 15 {
rlm@1 16 CContext _sha;
rlm@1 17 CContext _sha2;
rlm@1 18 public:
rlm@1 19 void SetKey(const Byte *key, size_t keySize);
rlm@1 20 void Update(const Byte *data, size_t dataSize) { _sha.Update(data, dataSize); }
rlm@1 21 void Final(Byte *mac, size_t macSize = kDigestSize);
rlm@1 22 };
rlm@1 23
rlm@1 24 class CHmac32
rlm@1 25 {
rlm@1 26 CContext32 _sha;
rlm@1 27 CContext32 _sha2;
rlm@1 28 public:
rlm@1 29 void SetKey(const Byte *key, size_t keySize);
rlm@1 30 void Update(const UInt32 *data, size_t dataSize) { _sha.Update(data, dataSize); }
rlm@1 31 void Final(UInt32 *mac, size_t macSize = kDigestSizeInWords);
rlm@1 32
rlm@1 33 // It'sa for hmac function. in,out: mac[kDigestSizeInWords].
rlm@1 34 void GetLoopXorDigest(UInt32 *mac, UInt32 numIteration);
rlm@1 35 };
rlm@1 36
rlm@1 37 }}
rlm@1 38
rlm@1 39 #endif