25#ifndef __JOIN_HMAC_HPP__
26#define __JOIN_HMAC_HPP__
47 Hmacbuf (
const std::string& algo,
const std::string&
key);
92 virtual int_type
overflow (int_type c = traits_type::eof ())
override;
98 std::unique_ptr <char []>
_buf;
100 #if OPENSSL_VERSION_NUMBER < 0x30000000L
124 class Hmac :
public std::ostream
178 static BytesArray md5bin (
const char* message, std::streamsize size,
const std::string&
key);
203 static std::string
md5hex (
const char* data, std::streamsize size,
const std::string&
key);
219 static std::string
md5hex (
const std::string& data,
const std::string&
key);
253 static std::string
sha1hex (
const char* data, std::streamsize size,
const std::string&
key);
269 static std::string
sha1hex (
const std::string& data,
const std::string&
key);
303 static std::string
sha224hex (
const char* data, std::streamsize size,
const std::string&
key);
319 static std::string
sha224hex (
const std::string& data,
const std::string&
key);
353 static std::string
sha256hex (
const char* data, std::streamsize size,
const std::string&
key);
369 static std::string
sha256hex (
const std::string& data,
const std::string&
key);
403 static std::string
sha384hex (
const char* data, std::streamsize size,
const std::string&
key);
419 static std::string
sha384hex (
const std::string& data,
const std::string&
key);
453 static std::string
sha512hex (
const char* data, std::streamsize size,
const std::string&
key);
469 static std::string
sha512hex (
const std::string& data,
const std::string&
key);
478 static BytesArray sm3bin (
const char* message, std::streamsize size,
const std::string&
key);
503 static std::string
sm3hex (
const char* data, std::streamsize size,
const std::string&
key);
519 static std::string
sm3hex (
const std::string& data,
const std::string&
key);
Algorithm
algorithm.
Definition digest.hpp:167
HMAC stream.
Definition hmac.hpp:125
virtual ~Hmac()=default
destroy HMAC stream instance.
Hmac(const Hmac &other)=delete
copy constructor.
BytesArray finalize()
get keyed-hash message authentication code.
Definition hmac.cpp:218
Hmacbuf _hmacbuf
associated HMAC stream buffer.
Definition hmac.hpp:523
Hmac & operator=(const Hmac &other)=delete
copy assignment operator.
Hmac(Digest::Algorithm algo, const std::string &key)
default constructor.
Definition hmac.cpp:186
HMAC stream buffer.
Definition hmac.hpp:40
Hmacbuf & operator=(const Hmacbuf &other)=delete
copy assignment operator.
Hmacbuf(const Hmacbuf &other)=delete
copy constructor.
std::unique_ptr< char[]> _buf
internal buffer.
Definition hmac.hpp:98
virtual ~Hmacbuf()=default
destroy HMAC stream buffer instance.
const EVP_MD * _md
message digest.
Definition hmac.hpp:102
BytesArray finalize()
get keyed-hash message authentication code.
Definition hmac.cpp:104
static const std::streamsize _bufsize
internal buffer size.
Definition hmac.hpp:95
Hmacbuf(const std::string &algo, const std::string &key)
create HMAC stream buffer instance.
Definition hmac.cpp:40
std::string _key
key.
Definition hmac.hpp:118
virtual int_type overflow(int_type c=traits_type::eof()) override
writes characters to the associated output sequence from the put area.
Definition hmac.cpp:128
HmacCtxPtr _ctx
context.
Definition hmac.hpp:105
BytesArray sha256bin
Definition digest_test.cpp:56
BytesArray sha384bin
Definition digest_test.cpp:62
const std::string sha512hex
Definition digest_test.cpp:93
const std::string sha1hex
Definition digest_test.cpp:89
BytesArray sm3bin
Definition digest_test.cpp:80
BytesArray md5bin
message digest in binary format.
Definition digest_test.cpp:41
BytesArray sha224bin
Definition digest_test.cpp:50
const std::string sha384hex
Definition digest_test.cpp:92
const std::string sha224hex
Definition digest_test.cpp:90
const std::string sha256hex
Definition digest_test.cpp:91
BytesArray sha512bin
Definition digest_test.cpp:70
BytesArray sha1bin
Definition digest_test.cpp:45
const std::string sm3hex
Definition digest_test.cpp:94
const std::string md5hex
message digest in hexadecimal format.
Definition digest_test.cpp:88
const std::string key(65, 'a')
key.
Definition acceptor.hpp:32
std::unique_ptr< HMAC_CTX, HmacCtxDelete > HmacCtxPtr
Definition openssl.hpp:149
std::vector< uint8_t > BytesArray
bytes array.
Definition base64.hpp:39