code wiki / (root) / nx_tls13_server_session_emit_sh.nx

nx_tls13_server_session_emit_sh.nx

buildroot/runtime/nx_tls13_server_session_emit_sh.nx

10145 B263 linesdepth 11pulls 24 transitivereach 38 importersview sourcekind librarytopic tls13
docsdependenciesstructsconstsfunctions

about

nx_tls13_server_session_emit_sh.nx -- server-side ServerHello emitter + session orchestrator step (CH_RECEIVED -> SH_SENT). Inverse of the existing tls13_server_hello_parse (which the CLIENT uses to consume what we emit here). Round-trip proof in the accompanying smoke: server emits SH, client's parser consumes it. What this file ships: - tls13_ext_emit_supported_versions_server (single u16, no list) - tls13_ext_emit_key_share_server_x25519 (single KeyShareEntry) - tls13_server_hello_emit (full body + handshake header) - nx_tls13_server_session_emit_sh (session step, transcript update) Per RFC 8446 ยง4.1.3, ServerHello body layout: ProtocolVersion legacy_version = 0x0303; Random server_random[32]; opaque legacy_session_id_echo<0..32>; CipherSuite cipher_suite; (2 bytes, single) uint8 legacy_compression_method; (always 0) Extension extensions<6..2^16-1>; Extensions emitted by this server: supported_versions(43) -- single u16 selected_version = 0x0304 key_share(51) -- single KeyShareEntry { group, ke_len, ke } Cipher suite chosen: TLS_CHACHA20_POLY1305_SHA256 (the only AEAD the substrate currently implements; matches the client side's substrate-honesty cipher list in tls13_client_hello_emit). State machine: requires session.state == CH_RECEIVED; advances to SH_SENT on success. license_tier: ORIGINAL

dependencies 6 imports · 17 importers

nx_syscalls.nx nx_tls13.nx nx_tls13_hello.nx nx_tls13_ext.nx nx_tls13_transcript.nx nx_tls13_server_session.nx nx_tls13_server_session_emit_s 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_hs_ nx_tls13_server_session_derive_tra nx_tls13_server_session_emit_certi nx_tls13_server_session_emit_cv_te

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

imports: nx_syscalls.nxnx_tls13.nxnx_tls13_hello.nxnx_tls13_ext.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_hs_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_hrr.nxnx_tls13_server_session_emit_sf_test.nxnx_tls13_server_session_emit_sh_test.nxnx_tls13_server_session_recv_cf_test.nxnx_tls13_server_session_run.nxnx_tls13_server_session_run_h2.nx

structs

none

consts

42const NX_TLS13_SH_TLS13_VERSION: i64 = 0x0304 // TLS 1.3 selector

functions

53func tls13_ext_emit_supported_versions_server(out: *u8, out_cap: i64) -> i64
67func tls13_ext_emit_key_share_server_x25519(
86func tls13_ext_emit_key_share_server_p256(
108func tls13_server_hello_emit(
122func tls13_server_hello_emit2(
201func nx_tls13_server_session_emit_sh(