code wiki / _hdl_build / nx_sites_sni_cert_gate.nx

nx_sites_sni_cert_gate.nx

buildroot/runtime/_hdl_build/nx_sites_sni_cert_gate.nx

20484 B360 linesdepth 14pulls 73 transitivereach 0 importersview sourcekind gate/prooftopic sites
docsdependenciesstructsconstsfunctions

dependencies 12 imports · 0 importers

nx_gate_base.nx nx_connect.nx nx_syscalls.nx nx_csprng.nx nx_http_server.nx nx_sni_cert_select.nx nx_tls13_record.nx nx_tls13_read_record_from_fd.nx nx_tls13_server_session.nx nx_tls13_server_session_run.nx nx_sites_sni_cert_gate.nx

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

imports: nx_gate_base.nxnx_connect.nxnx_syscalls.nxnx_csprng.nxnx_http_server.nxnx_sni_cert_select.nxnx_tls13_record.nxnx_tls13_read_record_from_fd.nxnx_tls13_server_session.nxnx_tls13_server_session_run.nxnx_tls13_client_session.nxnx_tls13_client_session_recv_sh.nx

imported by: nobody (leaf or entry point)

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

main g_puts sys_write sys_mmap sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_close g_mem_eq g_puti sys_mmap ↻ sys_write ↻ unit_check sys_mmap ↻ mk_ch scs_pick_from_clienthello sni_extract_hostname sni_u16 scs_pick_index scs_label_endswith scs_lc g_puts ↻ sys_write ↻ g_putidx g_puts ↻ g_puti ↻ mk_ch ↻ scs_pick_from_clienthello ↻ g_putidx ↻ nx_http_server_addr_any nx_http_server_make_sockad nx_http_server_listen sys_ignore_sigpipe sys_mmap ↻ sys_socket sys_mmap ↻ sys_setsockopt sys_bind

structs

none

consts

48const GATE_PORT: i64 = 18443
49const GATE_CERT_MIN: i64 = 100
50const NX_SD_MSG_PEEK_GATE: i64 = 2 // MSG_PEEK

functions

52func grow(name: *u8, ok: i64) -> i64 { if ok==1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw("
calls 1: gw
54func g_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 }
called by 2: g_putidxmain calls 2: sys_mmapsys_write
55func g_puti(v: i64) -> i64
62func g_putidx(idx: i64) -> i64
68func g_mem_eq(a: *u8, b: *u8, n: i64) -> i64
71func g_write_n(fd: i64, buf: *u8, n: i64) -> i64
80func mk_ch(buf: *u8, host: *u8, hlen: i64) -> i64
108func unit_check(host: *u8, hlen: i64, expect_idx: i64) -> i64
120func g_identify(leaf: *u8, leaf_len: i64,
129func g_connect(port: i64) -> i64
145func g_probe(port: i64, sni: *u8, sni_len: i64,
242func g_serve_one(cfd: i64,
262func e2e_one(lfd: i64, port: i64, label: *u8, sni: *u8, sni_len: i64, expect: i64,
283func main() -> i64