code wiki / (root) / nx_hkdf_sha384.nx

nx_hkdf_sha384.nx

buildroot/runtime/nx_hkdf_sha384.nx

3187 B101 linesdepth 6pulls 6 transitivereach 0 importersview sourcekind tooltopic hkdf
docsdependenciesstructsconstsfunctions

about

hkdf_sha384.nx -- HKDF-SHA-384 (RFC 5869). license_tier: INDEPENDENT_REDERIVE genealogy_id: international-research-sources/ietf/rfc_5869 Parallel to hkdf.nx but keyed on HMAC-SHA-384. Required for TLS 1.3 cipher suites that use SHA-384 throughout the key schedule (e.g. TLS_AES_256_GCM_SHA384 per RFC 8446 §B.4). Two-stage design (identical shape to hkdf.nx): Extract(salt, IKM) -> PRK = HMAC-SHA-384(salt, IKM) [48-byte PRK] Expand(PRK, info, L) -> OKM via counter-mode HMAC chain Output capacity: 255 * 48 = 12240 bytes. TLS 1.3 never needs more than a few hundred, so this is ample.

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_hmac_sha384.nx nx_hkdf_sha384.nx

imports: nx_syscalls.nxnx_hmac_sha384.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main sys_mmap hkdf384_extract sys_mmap ↻ hmac_sha384 sys_mmap ↻ sha384_digest sys_mmap ↻ sha384_init sha512_update sha512_blk_set_byte blk_get_i64 blk_set_i64 sha512_compress sys_mmap ↻ blk_get_i64 ↻ sha512_gamma0 sha512_gamma1 sha512_sigma1 sha512_ch sha512_k sha512_sigma0 sha512_maj sha512_final sha512_blk_set_byte ↻ sha512_compress ↻ sha384_init ↻ sha512_update ↻ sha512_final ↻ hkdf384_expand sys_mmap ↻ hmac_sha384 ↻

structs

none

consts

26const HKDF384_HASH: i64 = 48
27const HKDF384_MAX_L: i64 = 12240

functions

29func hkdf384_extract(salt: *u8, salt_len: i64,
called by 1: main calls 2: sys_mmaphmac_sha384
43func hkdf384_expand(prk: *u8,
called by 1: main calls 2: sys_mmaphmac_sha384
85func main() -> i64