chore: initial commit (extracted from Launchers monorepo)
Plugin: ns7zip v2.0.0 Architectures: x86-ansi, x86-unicode, amd64-unicode License: LGPL-2.1-or-later
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// HmacSha1.h
|
||||
// Implements HMAC-SHA-1 (RFC2104, FIPS-198)
|
||||
|
||||
#ifndef ZIP7_INC_CRYPTO_HMAC_SHA1_H
|
||||
#define ZIP7_INC_CRYPTO_HMAC_SHA1_H
|
||||
|
||||
#include "Sha1Cls.h"
|
||||
|
||||
namespace NCrypto {
|
||||
namespace NSha1 {
|
||||
|
||||
// Use: SetKey(key, keySize); for () Update(data, size); FinalFull(mac);
|
||||
|
||||
class CHmac
|
||||
{
|
||||
CContext _sha;
|
||||
CContext _sha2;
|
||||
public:
|
||||
void SetKey(const Byte *key, size_t keySize);
|
||||
void Update(const Byte *data, size_t dataSize) { _sha.Update(data, dataSize); }
|
||||
|
||||
// Final() : mac is recommended to be aligned for 4 bytes
|
||||
// GetLoopXorDigest1() : mac is required to be aligned for 4 bytes
|
||||
// The caller can use: UInt32 mac[NSha1::kNumDigestWords] and typecast to (Byte *) and (void *);
|
||||
void Final(Byte *mac);
|
||||
void GetLoopXorDigest1(void *mac, UInt32 numIteration);
|
||||
};
|
||||
|
||||
}}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user