9#include <boost/noncopyable.hpp>
13#ifndef ISC_CRYPTO_HMAC_H
14#define ISC_CRYPTO_HMAC_H
27class HMAC :
private boost::noncopyable {
45 HMAC(
const void* secret,
size_t secret_len,
72 void update(
const void* data,
const size_t len);
99 void sign(
void* result,
size_t len);
113 std::vector<uint8_t>
sign(
size_t len);
130 bool verify(
const void* sig,
size_t len);
164 const size_t data_len,
199 const size_t data_len,
204 const size_t sig_len);
HMAC * createHMAC(const void *secret, size_t secret_len, const HashAlgorithm hash_algorithm)
Factory function for HMAC objects.
Botan implementation of HMAC.
void update(const void *data, const size_t len)
Add data to digest.
bool verify(const void *sig, size_t len)
Verify an existing signature.
size_t getOutputLength() const
Returns the output size of the digest.
void sign(isc::util::OutputBuffer &result, size_t len)
Calculate the final signature.
HashAlgorithm getHashAlgorithm() const
Returns the HashAlgorithm of the object.
The OutputBuffer class is a buffer abstraction for manipulating mutable data.
bool verifyHMAC(const void *data, const size_t data_len, const void *secret, size_t secret_len, const HashAlgorithm hash_algorithm, const void *sig, const size_t sig_len)
Verify an HMAC signature for the given data.
HashAlgorithm
Hash algorithm identifiers.
void signHMAC(const void *data, const size_t data_len, const void *secret, size_t secret_len, const HashAlgorithm hash_algorithm, isc::util::OutputBuffer &result, size_t len)
Create an HMAC signature for the given data.
void deleteHMAC(HMAC *hmac)
Delete an HMAC object.
Defines the logger used by the top-level component of kea-lfc.