code wiki / (root) / nx_p384_field_mul_fast_gate.nx

nx_p384_field_mul_fast_gate.nx

buildroot/runtime/nx_p384_field_mul_fast_gate.nx

2646 B75 linesdepth 6pulls 7 transitivereach 0 importersview sourcekind gate/prooftopic p384
docsdependenciesstructsconstsfunctions

about

nx_p384_field_mul_fast_gate.nx -- pin p384_field_mul_fast: it MUST equal the trusted bit-by-bit p384_field_mul for the same a*b mod p, across edge + random inputs, before it replaces the slow path in ECDSA-P384 cert verification. expect_exit: 0

dependencies 6 imports · 0 importers

nx_syscalls.nx nx_u384.nx nx_u384_mul.nx nx_p384_field.nx nx_p384_field_mul.nx nx_p384_field_mul_fast.nx nx_p384_field_mul_fast_gate.nx

imports: nx_syscalls.nxnx_u384.nxnx_u384_mul.nxnx_p384_field.nxnx_p384_field_mul.nxnx_p384_field_mul_fast.nx

imported by: nobody (leaf or entry point)

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

main u384_alloc nx_u384_scratch nx_u384_scratch_init sys_mmap sys_write sys_exit sys_mmap ↻ p384_field_load_p u384_zero cmp_case u384_alloc ↻ p384_field_mul_bitwise u384_wide_alloc sys_mmap ↻ u384_alloc ↻ p384_field_load_p ↻ u384_mul_wide u384_wide_cmp u384_wide_sub u384_wide_shr_1 u384_wide_copy_low p384_field_mul_fast u384_wide_alloc ↻ u384_mul_wide ↻ u384_alloc ↻ p384_field_load_p ↻ p384_fold_once u384_alloc ↻ p384_acc_add_shifted p384_acc_sub_shifted p384_fast_reduce_final u384_sub_with_borrow u384_cmp u384_wide_copy_low ↻ u384_eq g_ps sys_write ↻ g_pn sys_mmap ↻

structs

none

consts

none

functions

14func g_ps(s: *u8, n: i64) -> i64 { sys_write(1, s, n); return 0 }
called by 2: cmp_casemain calls 1: sys_write
15func g_pn(v: i64) -> i64
called by 2: cmp_casemain calls 2: sys_mmapsys_write
27func mk(x: *i64, seed: i64) -> i64
called by 1: main
36func cmp_case(a: *i64, b: *i64, tag: i64) -> i64
46func main() -> i64