code wiki / (root) / nx_ecdsa_p384_test.nx

nx_ecdsa_p384_test.nx

buildroot/runtime/nx_ecdsa_p384_test.nx

6014 B110 linesdepth 11pulls 13 transitivereach 0 importersview sourcekind gate/prooftopic ecdsa
docsdependenciesstructsconstsfunctions

about

nx_ecdsa_p384_test.nx -- KAT for ECDSA-P384 verify against the RFC 6979 §A.2.6 vector (P-384 with SHA-256 over "sample"). Inputs loaded via u384_load_be from BIG-ENDIAN byte tables -- mirrors the pattern used by nx_ecdsa_p256_test, eliminates the hand-transcribed LE-limb error class. A prior version of this file had a typo at sig_r[1] (0xFA2B3C36 vs correct 0x2FA2B3C3) because manually splitting a BE hex string into LE 32-bit limbs is error-prone. See [[feedback-canonical-constants-kat-against- reference-not-hand-converted]] -- same lesson: don't hand- convert representation; load_be takes the bytes as-is. expect_exit: 0 license_tier: ORIGINAL

dependencies 3 imports · 0 importers

nx_syscalls.nx nx_u384.nx nx_ecdsa_p384.nx nx_ecdsa_p384_test.nx

imports: nx_syscalls.nxnx_u384.nxnx_ecdsa_p384.nx

imported by: nobody (leaf or entry point)

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

main sys_mmap u384_alloc nx_u384_scratch nx_u384_scratch_init sys_mmap ↻ sys_write sys_exit sys_mmap ↻ u384_load_be nx_ecdsa_p384_verify nx_u384_scratch_save nx_u384_scratch_init ↻ _nx_ecdsa_p384_verify_inne u384_alloc ↻ p384_modn_load_n u384_is_zero u384_cmp p384_point_alloc nx_u384_scratch ↻ u384_alloc ↻ p384_field_one u384_one u384_zero p384_field_zero u384_zero ↻ p384_point_set_affine u384_copy p384_field_one ↻ p384_point_is_infinity u384_is_zero ↻ p384_point_on_curve p384_point_is_infinity ↻ u384_alloc ↻ u384_copy ↻ p384_field_sq_fast p384_field_mul_fast u384_wide_alloc u384_mul_wide u384_alloc ↻

structs

none

consts

none

functions

20func main() -> i64