nx_crypto_bench_full.nx
buildroot/runtime/bin/nx_crypto_bench_full.nx
about
nx_crypto_bench_full.nx -- 1:1 bits-up crypto bench vs OpenSSL incumbent.
Measures (us/op, MONOTONIC clock, warmed up):
1. p256_kG_generic -- generic double-and-add k*G (PRE-COMB baseline)
2. p256_kG_comb -- fixed-base comb k*G (BITS-UP path)
3. ecdsa_p256_sign -- full sign (generic kG path; no comb file on box)
4. ecdsa_p256_verify -- full verify (u1*G + u2*Q, real signature)
5. x25519_ecdh -- variable-base scalar mult (shared secret)
The comb path here is exercised in-memory via p256_comb_build +
p256_scalar_mul_base (same code the deploy signer uses when the
/volume1/.../p256_comb.bin file is present), so we get the honest
comb-vs-generic SPEEDUP without needing the NAS file on disk.
dependencies 10 imports · 0 importers
imports: nx_syscalls.nxnx_csprng.nxnx_u256.nxnx_p256_modn.nxnx_p256_point.nxnx_p256_scalar_mul.nxnx_p256_comb.nxnx_ecdsa_p256.nxnx_ecdsa_p256_sign.nxnx_x25519_ephemeral.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| none |
functions
| 25 | func bstrlen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != 0 { n = n + 1 } return n } called by 1: bprint |
| 28 | func bprint(label: *u8, total_us: i64, n: i64) -> i64 |
| 62 | func main() -> i64 |