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}