code wiki / (root) / nx_argon2_block_test.nx

nx_argon2_block_test.nx

buildroot/runtime/nx_argon2_block_test.nx

4235 B127 linesdepth 3pulls 5 transitivereach 0 importersview sourcekind gate/proof
docsdependenciesstructsconstsfunctions

about

nx_argon2_block_test.nx -- algebraic-property smoke for G(X, Y). expect_exit: 0 Tests: 1. G(0, 0) = 0 -- all-zero in, all-zero out (R = 0 XOR 0 = 0; GB(0,0,0,0) = (0,0,0,0); final XOR yields 0). 2. G(X, X) = 0 -- self-XOR makes R = 0; same as test 1. 3. G(X, Y) symmetric: G(X, Y) == G(Y, X). R = X XOR Y is symmetric, P operates on R, final XOR R is symmetric. 4. G(X, Y) deterministic: two runs yield same output. 5. G(X, Y) sensitive to a single-bit flip in X (avalanche check): flipping one bit of X must change at least 256 bits of output (4x SHA-256-style avalanche; Argon2's G empirically has very strong avalanche due to multiplications). license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_syscalls_x86_64.nx nx_argon2_block.nx nx_argon2_block_test.nx

imports: nx_syscalls_x86_64.nxnx_argon2_block.nx

imported by: nobody (leaf or entry point)

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

main nx_argon2_g _a2b_load_u64_le _a2b_p _a2b_gb _a2b_rotr64 _a2b_shr64 _a2b_store_u64_le _a2b_shr64 ↻ bytes_eq bits_differ

structs

none

consts

none

functions

22func bytes_eq(a: *u8, b: *u8, n: i64) -> i64
called by 1: main
31func bits_differ(a: *u8, b: *u8, n: i64) -> i64
called by 1: main
47func main() -> i64