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.