OpenVPN 3 Core Library
Loading...
Searching...
No Matches
openvpn::OpenSSLCrypto::DigestContext Class Reference

#include <digest.hpp>

Public Types

enum  { MAX_DIGEST_SIZE = EVP_MAX_MD_SIZE }
 

Public Member Functions

 OPENVPN_SIMPLE_EXCEPTION (openssl_digest_uninitialized)
 
 OPENVPN_EXCEPTION (openssl_digest_error)
 
 DigestContext ()=default
 
 DigestContext (const CryptoAlgs::Type alg, SSLLib::Ctx libctx)
 
void update (const unsigned char *in, const size_t size)
 
size_t final (unsigned char *out)
 
size_t size () const
 

Private Types

using evp_md_type = const EVP_MD
 
using MD_unique_ptr = std::unique_ptr< evp_md_type, decltype(&::EVP_MD_free)>
 
using EVP_MD_CTX_unique_ptr = std::unique_ptr< EVP_MD_CTX, decltype(&::EVP_MD_CTX_free)>
 

Private Member Functions

 DigestContext (const DigestContext &)=delete
 
DigestContextoperator= (const DigestContext &)=delete
 

Static Private Member Functions

static evp_md_typedigest_type (const CryptoAlgs::Type alg, SSLLib::Ctx libctx)
 

Private Attributes

MD_unique_ptr md {nullptr, ::EVP_MD_free}
 
EVP_MD_CTX_unique_ptr ctx {nullptr, ::EVP_MD_CTX_free}
 

Friends

class HMACContext
 

Detailed Description

Definition at line 37 of file digest.hpp.

Member Typedef Documentation

◆ EVP_MD_CTX_unique_ptr

using openvpn::OpenSSLCrypto::DigestContext::EVP_MD_CTX_unique_ptr = std::unique_ptr<EVP_MD_CTX, decltype(&::EVP_MD_CTX_free)>
private

Definition at line 122 of file digest.hpp.

◆ evp_md_type

Definition at line 46 of file digest.hpp.

◆ MD_unique_ptr

Definition at line 119 of file digest.hpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
MAX_DIGEST_SIZE 

Definition at line 57 of file digest.hpp.

Constructor & Destructor Documentation

◆ DigestContext() [1/3]

openvpn::OpenSSLCrypto::DigestContext::DigestContext ( const DigestContext )
privatedelete

◆ DigestContext() [2/3]

openvpn::OpenSSLCrypto::DigestContext::DigestContext ( )
default

◆ DigestContext() [3/3]

openvpn::OpenSSLCrypto::DigestContext::DigestContext ( const CryptoAlgs::Type  alg,
SSLLib::Ctx  libctx 
)
inline

Definition at line 64 of file digest.hpp.

Member Function Documentation

◆ digest_type()

static evp_md_type * openvpn::OpenSSLCrypto::DigestContext::digest_type ( const CryptoAlgs::Type  alg,
SSLLib::Ctx  libctx 
)
inlinestaticprivate

Definition at line 102 of file digest.hpp.

Here is the caller graph for this function:

◆ final()

size_t openvpn::OpenSSLCrypto::DigestContext::final ( unsigned char *  out)
inline

Definition at line 85 of file digest.hpp.

◆ OPENVPN_EXCEPTION()

openvpn::OpenSSLCrypto::DigestContext::OPENVPN_EXCEPTION ( openssl_digest_error  )

◆ OPENVPN_SIMPLE_EXCEPTION()

openvpn::OpenSSLCrypto::DigestContext::OPENVPN_SIMPLE_EXCEPTION ( openssl_digest_uninitialized  )

◆ operator=()

DigestContext & openvpn::OpenSSLCrypto::DigestContext::operator= ( const DigestContext )
privatedelete

◆ size()

size_t openvpn::OpenSSLCrypto::DigestContext::size ( ) const
inline

Definition at line 96 of file digest.hpp.

Here is the caller graph for this function:

◆ update()

void openvpn::OpenSSLCrypto::DigestContext::update ( const unsigned char *  in,
const size_t  size 
)
inline

Definition at line 76 of file digest.hpp.

Friends And Related Symbol Documentation

◆ HMACContext

friend class HMACContext
friend

Definition at line 52 of file digest.hpp.

Member Data Documentation

◆ ctx

EVP_MD_CTX_unique_ptr openvpn::OpenSSLCrypto::DigestContext::ctx {nullptr, ::EVP_MD_CTX_free}
private

Definition at line 123 of file digest.hpp.

◆ md

MD_unique_ptr openvpn::OpenSSLCrypto::DigestContext::md {nullptr, ::EVP_MD_free}
private

Definition at line 120 of file digest.hpp.


The documentation for this class was generated from the following file: