14#ifndef OPENVPN_KOVPN_KOREKEY_H
15#define OPENVPN_KOVPN_KOREKEY_H
21class Receiver :
public virtual RC<thread_unsafe_refcount>
27 const Info &info) = 0;
39 const unsigned int key_id,
42 info(dc_context_delegate, key_id, frame)
93 rcv->explicit_exit_notify();
102 throw korekey_error(
"encrypt");
107 throw korekey_error(
"decrypt");
virtual CryptoDCSettingsData crypto_info()=0
CryptoAlgs::KeyDerivation key_derivation
virtual size_t encap_overhead() const =0
@ EXPLICIT_EXIT_NOTIFY_DEFINED
CryptoAlgs::Type cipher() const
CryptoAlgs::Type digest() const
CryptoDCContext::Ptr dc_context_delegate
Context(CryptoDCSettingsData dc_settings_data, CryptoDCFactory &dc_factory_delegate, const Receiver::Ptr &rcv_arg, const Frame::Ptr &frame_arg)
CryptoDCSettingsData crypto_info() override
CryptoDCInstance::Ptr new_obj(const unsigned int key_id) override
size_t encap_overhead() const override
CryptoDCContext::Ptr new_obj(const CryptoDCSettingsData dc_settings_data) override
CryptoDCFactory::Ptr dc_factory_delegate
Factory(const CryptoDCFactory::Ptr &dc_factory_delegate_arg, const Receiver::Ptr &rcv_arg, const Frame::Ptr &frame_arg)
void rekey(const RekeyType type) override
void init_remote_peer_id(const int remote_peer_id) override
Error::Type decrypt(BufferAllocated &buf, const std::time_t now, const unsigned char *op32) override
Instance(const Receiver::Ptr &rcv_arg, const CryptoDCContext::Ptr &dc_context_delegate, const unsigned int key_id, const Frame::Ptr &frame)
unsigned int defined() const override
bool encrypt(BufferAllocated &buf, const unsigned char *op32) override
void init_pid(const char *recv_name, const int recv_unit, const SessionStats::Ptr &recv_stats_arg) override
bool consider_compression(const CompressContext &comp_ctx) override
void init_cipher(StaticKey &&encrypt_key, StaticKey &&decrypt_key) override
void explicit_exit_notify() override
void init_hmac(StaticKey &&encrypt_key, StaticKey &&decrypt_key) override
static void validate(const CryptoAlgs::Type cipher, const CryptoAlgs::Type digest)
virtual void explicit_exit_notify()
virtual void rekey(const CryptoDCInstance::RekeyType type, const Info &info)=0
Reference count base class for objects tracked by RCPtr. Disallows copying and assignment.