code wiki / (root) / nx_tls13_server_session_derive_traffic.nx

nx_tls13_server_session_derive_traffic.nx

buildroot/runtime/nx_tls13_server_session_derive_traffic.nx

4533 B113 linesdepth 11pulls 26 transitivereach 35 importersview sourcekind librarytopic tls13
docsdependenciesstructsconstsfunctions

about

nx_tls13_server_session_derive_traffic.nx -- 5th TLS server stone. After derive_hs_secrets produced the Handshake-Secret, derive the per-direction handshake traffic secrets + their AEAD key + IV per RFC 8446 ยง7.1: c_hs_traffic = Derive-Secret(HS, "c hs traffic", ClientHello..ServerHello) s_hs_traffic = Derive-Secret(HS, "s hs traffic", ClientHello..ServerHello) *_hs_key = HKDF-Expand-Label(*_hs_traffic, "key", "", aead_key_len) *_hs_iv = HKDF-Expand-Label(*_hs_traffic, "iv", "", aead_iv_len) For ChaCha20-Poly1305: key=32 bytes, iv=12 bytes. This stone is the precondition for emit_ee_cert (next stone), which must AEAD-encrypt the EncryptedExtensions + Certificate messages under server_hs_key + server_hs_iv. State: requires EE_SENT (set by derive_hs_secrets); does not advance state -- it's a continuation of the key-schedule preparation. Subsequent emit_ee_cert advances state CERT_SENT. license_tier: ORIGINAL

dependencies 5 imports · 14 importers

nx_syscalls.nx nx_tls13.nx nx_tls13_kdf.nx nx_tls13_transcript.nx nx_tls13_server_session.nx nx_tls13_server_session_derive nx_edge_daemon.nx nx_edge_serve_static_test.nx nx_pages_https_daemon.nx nx_tls13_p256_loopback_test.nx nx_tls13_server_full_handshake_tes nx_tls13_server_session_app_data_t nx_tls13_server_session_derive_tra nx_tls13_server_session_emit_certi nx_tls13_server_session_emit_cv_te nx_tls13_server_session_emit_ee_te

diagram shows first 10 each side; +0 more imports, +4 more importers in the complete lists below.

imports: nx_syscalls.nxnx_tls13.nxnx_tls13_kdf.nxnx_tls13_transcript.nxnx_tls13_server_session.nx

imported by: nx_edge_daemon.nxnx_edge_serve_static_test.nxnx_pages_https_daemon.nxnx_tls13_p256_loopback_test.nxnx_tls13_server_full_handshake_test.nxnx_tls13_server_session_app_data_test.nxnx_tls13_server_session_derive_traffic_test.nxnx_tls13_server_session_emit_certificate_test.nxnx_tls13_server_session_emit_cv_test.nxnx_tls13_server_session_emit_ee_test.nxnx_tls13_server_session_emit_sf_test.nxnx_tls13_server_session_recv_cf_test.nxnx_tls13_server_session_run.nxnx_tls13_server_session_run_h2.nx

structs

none

consts

30const NX_TLS13_TRAFFIC_HASH_LEN: i64 = 32 // SHA-256 for ChaCha20-Poly1305
31const NX_TLS13_AEAD_KEY_LEN: i64 = 32 // ChaCha20 key length
32const NX_TLS13_AEAD_IV_LEN: i64 = 12 // AEAD nonce length

functions

34func nx_tls13_server_session_derive_traffic(