Logger System 0.1.3
High-performance C++20 thread-safe logging system with asynchronous capabilities
Loading...
Searching...
No Matches
kcenon::logger::encryption_config Struct Reference

Configuration for encrypted_writer. More...

#include <encrypted_writer.h>

Collaboration diagram for kcenon::logger::encryption_config:
Collaboration graph

Public Member Functions

 encryption_config (encryption_algorithm algo, security::secure_key encryption_key)
 Constructor for encryption_config.
 
 encryption_config ()
 
 encryption_config (encryption_config &&) noexcept=default
 
encryption_configoperator= (encryption_config &&) noexcept=default
 
 encryption_config (const encryption_config &)=delete
 
encryption_configoperator= (const encryption_config &)=delete
 

Public Attributes

encryption_algorithm algorithm = encryption_algorithm::aes_256_gcm
 Encryption algorithm to use.
 
security::secure_key key
 Encryption key (must be 32 bytes for AES-256)
 
bool rotate_iv_per_entry = true
 Whether to generate unique IV for each log entry.
 
std::optional< std::chrono::hours > key_rotation_interval
 Optional key rotation interval.
 
std::filesystem::path key_rotation_path
 Path for key rotation (new keys saved here)
 
std::filesystem::path key_storage_base = "/var/log/keys"
 Allowed base directory for key storage.
 

Detailed Description

Configuration for encrypted_writer.

Contains all parameters needed for log encryption including the encryption algorithm, key, and optional key rotation settings.

Definition at line 89 of file encrypted_writer.h.

Constructor & Destructor Documentation

◆ encryption_config() [1/4]

kcenon::logger::encryption_config::encryption_config ( encryption_algorithm algo,
security::secure_key encryption_key )
inline

Constructor for encryption_config.

Parameters
algoEncryption algorithm
encryption_keyThe encryption key (moved)

Definition at line 131 of file encrypted_writer.h.

134 : algorithm(algo), key(std::move(encryption_key)) {}
security::secure_key key
Encryption key (must be 32 bytes for AES-256)
encryption_algorithm algorithm
Encryption algorithm to use.

◆ encryption_config() [2/4]

kcenon::logger::encryption_config::encryption_config ( )
inline

◆ encryption_config() [3/4]

kcenon::logger::encryption_config::encryption_config ( encryption_config && )
defaultnoexcept

◆ encryption_config() [4/4]

kcenon::logger::encryption_config::encryption_config ( const encryption_config & )
delete

Member Function Documentation

◆ operator=() [1/2]

encryption_config & kcenon::logger::encryption_config::operator= ( const encryption_config & )
delete

◆ operator=() [2/2]

Member Data Documentation

◆ algorithm

encryption_algorithm kcenon::logger::encryption_config::algorithm = encryption_algorithm::aes_256_gcm

Encryption algorithm to use.

Note
Default: AES-256-GCM (authenticated encryption)
Examples
/home/runner/work/logger_system/logger_system/include/kcenon/logger/writers/encrypted_writer.h.

Definition at line 94 of file encrypted_writer.h.

◆ key

security::secure_key kcenon::logger::encryption_config::key

Encryption key (must be 32 bytes for AES-256)

Warning
Key is moved into the writer; original becomes invalid
Examples
/home/runner/work/logger_system/logger_system/include/kcenon/logger/writers/encrypted_writer.h.

Definition at line 100 of file encrypted_writer.h.

Referenced by kcenon::logger::encrypted_writer::encrypted_writer().

◆ key_rotation_interval

std::optional<std::chrono::hours> kcenon::logger::encryption_config::key_rotation_interval

Optional key rotation interval.

Note
When set, triggers key rotation after specified duration
Examples
/home/runner/work/logger_system/logger_system/include/kcenon/logger/writers/encrypted_writer.h.

Definition at line 112 of file encrypted_writer.h.

◆ key_rotation_path

std::filesystem::path kcenon::logger::encryption_config::key_rotation_path

Path for key rotation (new keys saved here)

Note
Required if key_rotation_interval is set
Examples
/home/runner/work/logger_system/logger_system/include/kcenon/logger/writers/encrypted_writer.h.

Definition at line 118 of file encrypted_writer.h.

◆ key_storage_base

std::filesystem::path kcenon::logger::encryption_config::key_storage_base = "/var/log/keys"

Allowed base directory for key storage.

Note
Used for path traversal prevention
Examples
/home/runner/work/logger_system/logger_system/include/kcenon/logger/writers/encrypted_writer.h.

Definition at line 124 of file encrypted_writer.h.

◆ rotate_iv_per_entry

bool kcenon::logger::encryption_config::rotate_iv_per_entry = true

Whether to generate unique IV for each log entry.

Note
Default: true (highly recommended for security)
Examples
/home/runner/work/logger_system/logger_system/include/kcenon/logger/writers/encrypted_writer.h.

Definition at line 106 of file encrypted_writer.h.


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