code wiki / hub / nx_voprf_finalize.nx

nx_voprf_finalize.nx

buildroot/runtime/hub/nx_voprf_finalize.nx

3508 B72 linesdepth 10pulls 19 transitivereach 95 importersview sourcekind librarytopic voprf
docsdependenciesstructsconstsfunctions

about

nx_voprf_finalize.nx -- RFC 9497 ยง3.3.1 Finalize, RELOCATED out of nx_voprf.nx. WHY ITS OWN FILE: the byte-identical Finalize body MISCOMPILED when defined inside nx_voprf.nx (2026-06-10) -- it returned a memory-state-dependent wrong OPRF output (155bd560../6f3846e4.. vs RFC A.3.1.1 a0b34de5..), while a byte-identical replica defined in a DIFFERENT module compiled correctly. Root cause is a backend codegen heisenbug tied to this function's definition site in that specific translation unit; every in-file workaround (guard-factoring, fresh name, non-terminal position, encoding rewrite) reproduced the corruption. Relocating to a small dedicated module is the robust fix (matches the proven-correct nx_voprf_rfc_kat replica). FILED: NXCC-VOPRF-FINALIZE-MISCOMPILE. Composes the still-in-nx_voprf primitives (deserialize/serialize) + the P-256 modn/scalar stack. license_tier: ORIGINAL

dependencies 2 imports · 3 importers

nx_voprf.nx nx_syscalls.nx nx_voprf_finalize.nx nx_opaque_core.nx nx_opaque_pake.nx nx_voprf_rfc_kat.nx

imports: nx_voprf.nxnx_syscalls.nx

imported by: nx_opaque_core.nxnx_opaque_pake.nxnx_voprf_rfc_kat.nx

structs

none

consts

none

functions

16func _vf_args_ok(input: *u8, input_n: i64, blind_32: *u8, evaluated_element_33: *u8, out_output_32: *u8) -> i64
called by 1: nx_voprf_finalize
27func nx_voprf_finalize(
72func _vf_tail() -> i64 { return 0 }