code wiki / (root) / nx_sha256_kat_test.nx

nx_sha256_kat_test.nx source

↩ module page · 25 lines · 753 B

1// nx_sha256_kat_test.nx -- NIST FIPS 180-4 KAT: SHA-256("abc") 2// Expected: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad 3// Currently FAILING -- nx_sha256.nx produces wrong digest. 4// See feedback-sha256-broken-blocks-tls-stack.md 5// expect_exit: 0 6// license_tier: ORIGINAL 7 8import "nx_syscalls.nx" 9import "nx_sha256.nx" 10 11func main() -> i64 { 12 let msg: *u8 = sys_mmap(16) 13 msg[0] = 0x61 // 'a' 14 msg[1] = 0x62 // 'b' 15 msg[2] = 0x63 // 'c' 16 17 let digest: *u8 = sys_mmap(32) 18 sha256_digest(msg, 3, digest) 19 20 if (digest[0] & 0xff) != 0xba { return 1 } 21 if (digest[1] & 0xff) != 0x78 { return 2 } 22 if (digest[2] & 0xff) != 0x16 { return 3 } 23 if (digest[31] & 0xff) != 0xad { return 4 } 24 return 0 25}