Signet Forge 0.1.0
C++20 Parquet library with AI-native extensions
DEMO
Loading...
Searching...
No Matches
signet::forge::crypto::PostQuantumConfig Struct Reference

Configuration for post-quantum encryption in Parquet Modular Encryption. More...

#include <post_quantum.hpp>

Public Member Functions

 ~PostQuantumConfig ()
 Zeroing destructor (CWE-244: heap inspection).
 

Public Attributes

bool enabled = false
 Master enable for post-quantum features.
 
bool hybrid_mode = true
 When true, use hybrid KEM (Kyber-768 + X25519) for key exchange.
 
std::vector< uint8_t > recipient_public_key
 Recipient's Kyber-768 public key (KyberKem::PUBLIC_KEY_SIZE bytes).
 
std::vector< uint8_t > recipient_secret_key
 Recipient's Kyber-768 secret key (KyberKem::SECRET_KEY_SIZE bytes).
 
std::vector< uint8_t > signing_public_key
 Dilithium-3/ML-DSA-65 public key (DilithiumSign::PUBLIC_KEY_SIZE bytes).
 
std::vector< uint8_t > signing_secret_key
 Dilithium-3/ML-DSA-65 secret key (DilithiumSign::SECRET_KEY_SIZE bytes).
 

Detailed Description

Configuration for post-quantum encryption in Parquet Modular Encryption.

Integrates with EncryptionConfig to add post-quantum key encapsulation (Kyber-768 or HybridKem) and footer signing (Dilithium-3).

See also
KyberKem, HybridKem, DilithiumSign

Definition at line 1559 of file post_quantum.hpp.

Constructor & Destructor Documentation

◆ ~PostQuantumConfig()

signet::forge::crypto::PostQuantumConfig::~PostQuantumConfig ( )
inline

Zeroing destructor (CWE-244: heap inspection).

Definition at line 1593 of file post_quantum.hpp.

Member Data Documentation

◆ enabled

bool signet::forge::crypto::PostQuantumConfig::enabled = false

Master enable for post-quantum features.

When false, standard PME is used without any PQ key exchange or signing.

Definition at line 1562 of file post_quantum.hpp.

◆ hybrid_mode

bool signet::forge::crypto::PostQuantumConfig::hybrid_mode = true

When true, use hybrid KEM (Kyber-768 + X25519) for key exchange.

When false, use Kyber-768 KEM alone. Hybrid mode is recommended: it provides security even if one algorithm is broken.

Definition at line 1568 of file post_quantum.hpp.

◆ recipient_public_key

std::vector<uint8_t> signet::forge::crypto::PostQuantumConfig::recipient_public_key

Recipient's Kyber-768 public key (KyberKem::PUBLIC_KEY_SIZE bytes).

The writer encapsulates against this to derive the AES-256 file key.

Definition at line 1574 of file post_quantum.hpp.

◆ recipient_secret_key

std::vector<uint8_t> signet::forge::crypto::PostQuantumConfig::recipient_secret_key

Recipient's Kyber-768 secret key (KyberKem::SECRET_KEY_SIZE bytes).

The reader uses this to decapsulate and recover the AES-256 file key. This is sensitive material – protect it accordingly.

Definition at line 1579 of file post_quantum.hpp.

◆ signing_public_key

std::vector<uint8_t> signet::forge::crypto::PostQuantumConfig::signing_public_key

Dilithium-3/ML-DSA-65 public key (DilithiumSign::PUBLIC_KEY_SIZE bytes).

Embedded in file metadata so readers can verify the footer signature.

Definition at line 1585 of file post_quantum.hpp.

◆ signing_secret_key

std::vector<uint8_t> signet::forge::crypto::PostQuantumConfig::signing_secret_key

Dilithium-3/ML-DSA-65 secret key (DilithiumSign::SECRET_KEY_SIZE bytes).

Used by the writer to sign the serialized footer. This is sensitive material – protect it accordingly.

Definition at line 1590 of file post_quantum.hpp.


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