24#ifndef OPENVPN_CRYPTO_TLS_CRYPT_V2_H
25#define OPENVPN_CRYPTO_TLS_CRYPT_V2_H
60 throw tls_crypt_v2_server_key_parse_error();
63 throw tls_crypt_v2_server_key_bad_size();
76 throw tls_crypt_v2_server_key_encode_error();
78 return std::string((
const char *)data.c_data());
117 throw tls_crypt_v2_client_key_parse_error();
120 throw tls_crypt_v2_client_key_bad_size();
138 throw tls_crypt_v2_client_key_encode_error();
140 return std::string((
const char *)data.c_data());
void init(const size_t capacity, const unsigned int flags)
Initializes the buffer with the specified capacity and flags.
bool defined() const
Returns true if the buffer is not empty.
const T * c_data() const
Returns a const pointer to the start of the buffer.
void append(const B &other)
Append data from another buffer to this buffer.
const T * c_str() const
Returns a const pointer to the null-terminated string representation of the buffer.
size_t size() const
Returns the size of the buffer in T objects.
unsigned char * raw_alloc()
Reference count base class for objects tracked by RCPtr. Disallows copying and assignment.
void parse(const std::string &key_text)
TLSCryptV2ClientKey(TLSCryptContext::Ptr context)
void extract_wkc(BufferAllocated &wkc_out) const
OPENVPN_SIMPLE_EXCEPTION(tls_crypt_v2_client_key_bad_size)
std::string render() const
void extract_key(OpenVPNStaticKey &tls_key)
TLSCryptV2ClientKey()=delete
OPENVPN_SIMPLE_EXCEPTION(tls_crypt_v2_client_key_parse_error)
OPENVPN_SIMPLE_EXCEPTION(tls_crypt_v2_client_key_encode_error)
OPENVPN_SIMPLE_EXCEPTION(tls_crypt_v2_server_key_bad_size)
OPENVPN_SIMPLE_EXCEPTION(tls_crypt_v2_server_key_parse_error)
void extract_key(OpenVPNStaticKey &tls_key)
void parse(const std::string &key_text)
std::string render() const
OPENVPN_SIMPLE_EXCEPTION(tls_crypt_v2_server_key_encode_error)
Support deferred server-side state creation when client connects.
static constexpr const char * tls_crypt_v2_client_key_name
static constexpr const char * tls_crypt_v2_server_key_name
@ DESTRUCT_ZERO
if enabled, destructor will zero data before deletion
@ GROW
if enabled, buffer will grow (otherwise buffer_full exception will be thrown)