nx_voprf_finalize.nx
buildroot/runtime/hub/nx_voprf_finalize.nx
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
imports: nx_voprf.nxnx_syscalls.nx
imported by: nx_opaque_core.nxnx_opaque_pake.nxnx_voprf_rfc_kat.nx
structs
| none |
consts
| none |
functions
| 16 | func _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 |
| 27 | func nx_voprf_finalize( |
| 72 | func _vf_tail() -> i64 { return 0 } |