code wiki / _hdl_build / nx_opaque_login_tls_daemon.nx

nx_opaque_login_tls_daemon.nx

buildroot/runtime/_hdl_build/nx_opaque_login_tls_daemon.nx

5169 B93 linesdepth 17pulls 115 transitivereach 0 importersview sourcekind servicetopic opaque
docsdependenciesstructsconstsfunctions

about

nx_opaque_login_tls_daemon.nx -- R3-B: the no-cookie OPAQUE login served over SOVEREIGN TLS 1.3 (ECDSA P-256, browser-trusted with the LE cert) on the real domain. Same route table as the plain daemon (nx_opaque_login_routes.olg_route -- rule 15 DRY), wrapped per-connection in the team's own TLS stack: nx_tls13_server_session_run (ECDSA) -> app_recv (decrypt) -> olg_route -> app_send (encrypt) -> write. argv: [1]=port [2]=keys-path [3]=store-path [4]=budget [5]=cert.der [6]=ecdsa_key.bin(32B) [7]=argon2_m (opt). Fresh server ECDHE + ServerHello random PER CONNECTION (forward secrecy). No shortcuts: full OPAQUE + real TLS 1.3 + production argon2id default.

dependencies 5 imports · 0 importers

nx_opaque_login_routes.nx nx_tls13_server_session.nx nx_tls13_server_session_run.nx nx_tls13_server_session_app_data.n nx_csprng.nx nx_opaque_login_tls_daemon.nx

imports: nx_opaque_login_routes.nxnx_tls13_server_session.nxnx_tls13_server_session_run.nxnx_tls13_server_session_app_data.nxnx_csprng.nx

imported by: nobody (leaf or entry point)

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

main olt_atoi olg_ctx_setup olg_ctx_setup_ttl nx_uas_server_keys_load_or sys_mmap sys_read_file sys_openat_rd sys_lseek sys_mmap ↻ sys_read sys_close _uas_hex_dec _uas_nib nx_csprng_fill sys_mmap ↻ nx_csprng_urandom_path sys_openat_rd ↻ sys_read ↻ sys_close ↻ nx_opq_derive_keypair sys_mmap ↻ _voprf_load_context_string u256_alloc nx_scratch nx_opq_hash_to_scalar sys_mmap ↻ nx_h2c_expand_message_xmd_ u256_alloc ↻ _opq_reduce_48be_mod_n u256_store_be u256_load_be u256_is_zero p256_point_alloc nx_scratch ↻ u256_alloc ↻ p256_field_one p256_field_zero p256_point_load_g p256_field_one ↻

structs

none

consts

14const OLT_PROD_M: i64 = 65536 // production argon2id m_cost (64 MiB)

functions

16func olt_atoi(s: *u8) -> i64 { var v: i64=0; var i: i64=0; while s[i]!=(0 as u8){ let c: i64=s[i] as i64; if c<48{return v} if c>57{return v} v=v*10+(c-48); i=i+1 } return v }
called by 1: main
18func main(argc: i64, argv: *i64) -> i64