Build Configuration Checks
Compile-time feature validation from noxtls_check_config.h.
Purpose
noxtls_check_config.h enforces consistency between feature flags set by build profiles (for example NOXTLS_FEATURE_TLS, NOXTLS_FEATURE_PKC, NOXTLS_FEATURE_AES_GCM) and stops invalid combinations at compile time using #error.
What It Validates
- Feature toggles are boolean (
0or1) - Core dependencies (for example TLS requires certs, PKC, encryption, hash, DRBG)
- Algorithm dependencies (for example AES mode/key-size flags require AES core)
- PKC dependencies (
ECDSAandECDHrequireECC;X25519/X448/ED25519require PKC) - PQC dependencies (
ML_KEMandML_DSArequire PKC) - Ed448 dependency (
ED448requires SHA-3 and PKC) - Profile constraints (for example crypto-only profile disables TLS/certs)
PQC-related checks
noxtls_check_config.h enforces:
NOXTLS_FEATURE_ML_KEMmust be0or1NOXTLS_FEATURE_ML_DSAmust be0or1NOXTLS_FEATURE_ML_KEMrequiresNOXTLS_FEATURE_PKCNOXTLS_FEATURE_ML_DSArequiresNOXTLS_FEATURE_PKC
In CMake these are controlled by:
NOXTLS_CFG_FEATURE_ML_KEMNOXTLS_CFG_FEATURE_ML_DSA- Optional strict vector conformance path:
NOXTLS_CFG_PQC_STRICT_OFFICIAL_VECTORS
How To Use
- Set feature flags through CMake options/profile selection.
- Include
noxtls_check_config.hin builds to fail fast on invalid combinations. - Resolve any
#erroroutput by enabling required dependencies or disabling incompatible features.