code wiki / (root) / nx_quic_keys.nx

nx_quic_keys.nx

buildroot/runtime/nx_quic_keys.nx

3152 B59 linesdepth 7pulls 9 transitivereach 5 importersview sourcekind tooltopic quic
docsdependenciesstructsconstsfunctions

about

nx_quic_keys.nx -- RUNG 5a of the sovereign QUIC transport: the Initial key schedule (RFC 9001 sec 5). Builds on the sovereign HKDF-SHA256 (nx_hkdf) + adds the TLS 1.3 HKDF-Expand-Label (RFC 8446 sec 7.1). QUIC Initial keys are derived purely from the client's Destination Connection ID + a fixed salt -- this is what protects the handshake packets (R5b does the AEAD with these keys). Gated byte-exact against the RFC 9001 A.1 worked example (DCID 0x8394c8f03e515708). No float. license_tier: ORIGINAL

dependencies 1 imports · 3 importers

nx_hkdf.nx nx_quic_keys.nx nx_quic_handshake_sm.nx nx_quic_keys_test.nx nx_quic_tls_schedule.nx

imports: nx_hkdf.nx

imported by: nx_quic_handshake_sm.nxnx_quic_keys_test.nxnx_quic_tls_schedule.nx

structs

none

consts

none

functions

9func quic_initial_salt(out: *u8) -> i64
18func hkdf_expand_label(secret: *u8, label: *u8, label_len: i64, ctx: *u8, ctx_len: i64, l: i64, out: *u8) -> i64
33func quic_initial_secrets(dcid: *u8, dcil: i64, client_secret: *u8, server_secret: *u8) -> i64
44func quic_initial_extract(dcid: *u8, dcil: i64, initial_secret: *u8) -> i64
called by 1: main calls 2: quic_initial_salthkdf_extract
52func quic_derive_keys(secret: *u8, key: *u8, iv: *u8, hp: *u8) -> i64
called by 1: main calls 1: hkdf_expand_label
59func main() -> i64 { return 0 }