code wiki / _hdl_build / nx_lan_signup_daemon.nx

nx_lan_signup_daemon.nx

buildroot/runtime/_hdl_build/nx_lan_signup_daemon.nx

4177 B79 linesdepth 17pulls 56 transitivereach 0 importersview sourcekind servicetopic lan
docsdependenciesstructsconstsfunctions

about

nx_lan_signup_daemon.nx -- the FAMILY SIGNUP + HR ADMIN surface, served (by the Nishi Publisher) ONLY to the LAN. SEPARATE & additive: it does NOT touch the live public login daemon (whose registration stays CLOSED). Thin main over the shared router nx_lan_signup_routes (lsd_route) -- the routes + gating are documented there; the socket referee (nx_lan_signup_socket_gate) drives the SAME lsd_route over a real loopback socket (rule #15 DRY). Routes (each LAN-gated by the real accept() peer IP, never a spoofable header): POST /register -> ls_signup_allowed (LAN AND invited) -> OPAQUE register -> hra_claim ; else 403 GET /hr -> owner-gated roster console (hap_emit) ; non-owner/non-LAN -> stub POST /hr/invite -> owner-only: hra_invite ; POST /hr/suspend -> owner-only: hra_suspend Run with the SAME server-keys path + realm (nishi_site_admin) as the hub /login daemon so session tokens validate. argv: [1]=port [2]=keys [3]=opaque-store [4]=budget [5]=hr-store [6]=realm(opt, default nishi_site_admin) [7]=argon2_m(opt) One binary serves every property: run with [6]=andelinwest_admin + andelinwest's own keys + andelinwest_hr.log.

dependencies 3 imports · 0 importers

nx_lan_signup_routes.nx nx_opaque_login.nx nx_lan_signup.nx nx_lan_signup_daemon.nx

imports: nx_lan_signup_routes.nxnx_opaque_login.nxnx_lan_signup.nx

imported by: nobody (leaf or entry point)

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

main lsd_slen lsd_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

structs

none

consts

17const LSD_MAGIC_16384: i64 = 16384
18const LSD_MAGIC_16383: i64 = 16383
20const LSD_PROD_M: i64 = 65536

functions

22func main(argc: i64, argv: *i64) -> i64