14#ifndef OPENVPN_CRYPTO_DIGESTAPI_H
15#define OPENVPN_CRYPTO_DIGESTAPI_H
29 virtual void update(
const unsigned char *in,
const size_t size) = 0;
30 virtual size_t final(
unsigned char *
out) = 0;
31 virtual size_t size()
const = 0;
40 virtual void update(
const unsigned char *in,
const size_t size) = 0;
41 virtual size_t final(
unsigned char *
out) = 0;
42 virtual size_t size()
const = 0;
57template <
typename CRYPTO_API>
62 :
impl(digest, libctx)
66 virtual void update(
const unsigned char *in,
const size_t size)
71 virtual size_t final(
unsigned char *
out)
76 virtual size_t size()
const
82 typename CRYPTO_API::DigestContext
impl;
85template <
typename CRYPTO_API>
90 const unsigned char *key,
91 const size_t key_size)
92 :
impl(digest, key, key_size)
101 virtual void update(
const unsigned char *in,
const size_t size)
106 virtual size_t final(
unsigned char *
out)
117 typename CRYPTO_API::HMACContext
impl;
120template <
typename CRYPTO_API>
135 const unsigned char *key,
136 const size_t key_size)
virtual HMACInstance::Ptr new_hmac(const CryptoAlgs::Type digest_type, const unsigned char *key, const size_t key_size)
virtual DigestInstance::Ptr new_digest(const CryptoAlgs::Type digest_type)
CryptoDigestFactory(SSLLib::Ctx libctx_arg=nullptr)
virtual void update(const unsigned char *in, const size_t size)
CryptoDigestInstance(const CryptoAlgs::Type digest, SSLLib::Ctx libctx)
virtual size_t size() const
CRYPTO_API::DigestContext impl
CRYPTO_API::HMACContext impl
virtual void update(const unsigned char *in, const size_t size)
CryptoHMACInstance(const CryptoAlgs::Type digest, const unsigned char *key, const size_t key_size)
RCPtr< DigestFactory > Ptr
virtual HMACInstance::Ptr new_hmac(const CryptoAlgs::Type digest_type, const unsigned char *key, const size_t key_size)=0
virtual DigestInstance::Ptr new_digest(const CryptoAlgs::Type digest_type)=0
virtual size_t size() const =0
virtual void update(const unsigned char *in, const size_t size)=0
RCPtr< DigestInstance > Ptr
virtual size_t size() const =0
RCPtr< HMACInstance > Ptr
virtual void update(const unsigned char *in, const size_t size)=0
Reference count base class for objects tracked by RCPtr. Disallows copying and assignment.
static std::stringstream out