code wiki / (root) / nx_tls13_server_session.nx

nx_tls13_server_session.nx

buildroot/runtime/nx_tls13_server_session.nx

12176 B271 linesdepth 10pulls 21 transitivereach 61 importersview sourcekind librarytopic tls13
docsdependenciesstructsconstsfunctions

about

nx_tls13_server_session.nx -- TLS 1.3 SERVER session state + state machine. The inverse of nx_tls13_client_session. ===================================================================== SUPERIOR-CAPABILITY MOTIVATION (per the 2026-05-20 cardinal): The substrate already ships full TLS 1.3 CLIENT side (handshake + ALPN + record layer + auth) -- nishifamily.com fetches HTTPS today bits-up. But to SERVE nishifamily.com itself bits-up we need server-side handshake. No substrate currently does TLS 1.3 server in NishiLang; this file is the first stone. Per docs/NISHIFAMILY_COM_ALL_BITS_UP_STATUS_2026_05_20.md, TLS 1.3 server is the single biggest gap remaining for "all things bits-up on nishifamily.com." Once landed, Phase D-E of the master roadmap composes the shipped HTTP server + ACME + DNS + static-site-builder into a full sovereign HTTPS stack. ===================================================================== State machine (inverse of client; RFC 8446 §4): SSTATE_INIT -> SSTATE_CH_RECEIVED (peer ClientHello parsed) -> SSTATE_SH_SENT (we emitted ServerHello + key share) -> SSTATE_EE_SENT (EncryptedExtensions written) -> SSTATE_CERT_SENT (server Certificate) -> SSTATE_CV_SENT (CertificateVerify) -> SSTATE_SF_SENT (server Finished) -> SSTATE_CLIENT_FIN_RECV (peer Finished parsed + verified) -> SSTATE_CONNECTED (app data flow OK) Public API (this commit): struct Tls13ServerSession { /* see below */ } nx_tls13_server_session_new(server_random, server_x25519_priv) -> *Tls13ServerSession nx_tls13_server_state_is_valid(s) -> 0|1 Queued for next session (each its own commit, matching the client-session arc structure): nx_tls13_server_session_recv_ch parse ClientHello

dependencies 6 imports · 51 importers

nx_syscalls.nx nx_x25519.nx nx_x25519_ephemeral.nx nx_tls13.nx nx_tls13_transcript.nx nx_p256_ecdh.nx nx_tls13_server_session.nx nx_andelinwest_daemon.nx nx_aw_mtls_proxy.nx nx_aw_tlsproxy.nx nx_cms_tls_front.nx nx_edge_daemon.nx nx_edge_serve_static.nx nx_edge_serve_static_test.nx nx_mtls_test_daemon.nx nx_opaque_login_tls_daemon.nx nx_pages_https_daemon.nx

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

imports: nx_syscalls.nxnx_x25519.nxnx_x25519_ephemeral.nxnx_tls13.nxnx_tls13_transcript.nxnx_p256_ecdh.nx

imported by: nx_andelinwest_daemon.nxnx_aw_mtls_proxy.nxnx_aw_tlsproxy.nxnx_cms_tls_front.nxnx_edge_daemon.nxnx_edge_serve_static.nxnx_edge_serve_static_test.nxnx_mtls_test_daemon.nxnx_opaque_login_tls_daemon.nxnx_pages_https_daemon.nxnx_sites_daemon.nxnx_sites_daemon_v2.nxnx_sites_reconciled.nxnx_sites_sni_cert_gate.nxnx_tls13_app_send_fd.nxnx_tls13_ed25519_test_daemon.nxnx_tls13_mtls_finished.nxnx_tls13_mtls_recv_cert.nxnx_tls13_p256_loopback_test.nxnx_tls13_server_full_handshake_test.nxnx_tls13_server_recv_client_cert.nxnx_tls13_server_recv_client_cv.nxnx_tls13_server_session_app_data.nxnx_tls13_server_session_app_data_test.nxnx_tls13_server_session_derive_hs.nxnx_tls13_server_session_derive_hs_test.nxnx_tls13_server_session_derive_traffic.nxnx_tls13_server_session_derive_traffic_test.nxnx_tls13_server_session_emit_certificate.nxnx_tls13_server_session_emit_certificate_test.nxnx_tls13_server_session_emit_certreq.nxnx_tls13_server_session_emit_cv.nxnx_tls13_server_session_emit_cv_test.nxnx_tls13_server_session_emit_ee.nxnx_tls13_server_session_emit_ee_alpn.nxnx_tls13_server_session_emit_ee_test.nxnx_tls13_server_session_emit_hrr.nxnx_tls13_server_session_emit_sf.nxnx_tls13_server_session_emit_sf_test.nxnx_tls13_server_session_emit_sh.nxnx_tls13_server_session_emit_sh_test.nxnx_tls13_server_session_recv_cf.nxnx_tls13_server_session_recv_cf_test.nxnx_tls13_server_session_recv_ch.nxnx_tls13_server_session_recv_ch_test.nxnx_tls13_server_session_run.nxnx_tls13_server_session_run_h2.nxnx_tls13_server_session_run_mtls.nxnx_tls13_server_session_test.nxnx_wiki_https_daemon.nxnx_wiki_https_daemon_mv.nx

structs

101struct Tls13ServerSession

consts

65const NX_TLS13_SSTATE_INIT: i64 = 0
66const NX_TLS13_SSTATE_CH_RECEIVED: i64 = 1
67const NX_TLS13_SSTATE_SH_SENT: i64 = 2
68const NX_TLS13_SSTATE_EE_SENT: i64 = 3
69const NX_TLS13_SSTATE_CERT_SENT: i64 = 4
70const NX_TLS13_SSTATE_CV_SENT: i64 = 5
71const NX_TLS13_SSTATE_SF_SENT: i64 = 6
72const NX_TLS13_SSTATE_CLIENT_FIN_RECV: i64 = 7
73const NX_TLS13_SSTATE_CONNECTED: i64 = 8
74const NX_TLS13_SSTATE_N: i64 = 9
84const NX_TLS13_SSESSION_OK: i64 = 0
85const NX_TLS13_SSESSION_BAD_STATE: i64 = 1
86const NX_TLS13_SSESSION_BUF_OVERFLOW: i64 = 2
87const NX_TLS13_SSESSION_INTERNAL: i64 = 3
88const NX_TLS13_SSESSION_PROTOCOL_ERR: i64 = 4
92const NX_TLS13_SSESSION_NEED_HRR: i64 = 5
176const NX_TLS13_SSESSION_BYTES: i64 = 272 // 34 fields × 8 bytes (added client_offered_sup_ver 2026-07-31)

functions

76func nx_tls13_server_state_is_valid(s: i64) -> i64
called by 1: main
187func nx_tls13_server_session_new(server_random: *u8,
268func nx_tls13_aead_key_len(cipher_suite: i64) -> i64