|
Network System 0.1.1
High-performance modular networking library for scalable client-server applications
|
HKDF (HMAC-based Key Derivation Function) utilities (RFC 5869) More...
#include <crypto.h>

Static Public Member Functions | |
| static auto | extract (std::span< const uint8_t > salt, std::span< const uint8_t > ikm) -> Result< std::array< uint8_t, secret_size > > |
| HKDF-Extract function. | |
| static auto | expand (std::span< const uint8_t > prk, std::span< const uint8_t > info, size_t length) -> Result< std::vector< uint8_t > > |
| HKDF-Expand function. | |
| static auto | expand_label (std::span< const uint8_t > secret, const std::string &label, std::span< const uint8_t > context, size_t length) -> Result< std::vector< uint8_t > > |
| HKDF-Expand-Label function (TLS 1.3 style) | |
HKDF (HMAC-based Key Derivation Function) utilities (RFC 5869)
Used for deriving QUIC keys from secrets.
|
staticnodiscard |
HKDF-Expand function.
| prk | Pseudorandom key from Extract |
| info | Context and application specific information |
| length | Desired output length |
Definition at line 124 of file crypto.cpp.
References kcenon::network::protocols::quic::error, and kcenon::network::ok().

|
staticnodiscard |
HKDF-Expand-Label function (TLS 1.3 style)
| secret | Secret to expand |
| label | Label string (without "tls13 " prefix) |
| context | Context data (usually empty for QUIC) |
| length | Desired output length |
Definition at line 193 of file crypto.cpp.
Referenced by kcenon::network::protocols::quic::initial_keys::derive(), kcenon::network::protocols::quic::initial_keys::derive_keys(), kcenon::network::protocols::quic::quic_crypto::derive_zero_rtt_keys(), and kcenon::network::protocols::quic::quic_crypto::update_keys().

|
staticnodiscard |
HKDF-Extract function.
| salt | Salt value (non-secret random value) |
| ikm | Input keying material |
Definition at line 56 of file crypto.cpp.
References kcenon::network::protocols::quic::error, and kcenon::network::ok().
Referenced by kcenon::network::protocols::quic::initial_keys::derive(), and kcenon::network::protocols::quic::quic_crypto::derive_zero_rtt_keys().

