authorgravatar for gballet@gmail.comGuillaume Ballet <gballet@gmail.com> 2021-01-13 19:22:20+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-01-15 12:36:38-08:00
logf7d7cb62684e7012bb5dafdebbaab3a8ef4e0a30
tree38d058f432ea17ae8590a58695e41b7a1577509f
parent1702b413f74d80fedd8803d60a69461b1e0b5b51

crypto: add legacy keccak hash functions


1 files changed, 14 insertions(+), 0 deletions(-)

lib/std/crypto/sha3.zig+14
......@@ -13,6 +13,8 @@ pub const Sha3_224 = Keccak(224, 0x06);
1313pub const Sha3_256 = Keccak(256, 0x06);
1414pub const Sha3_384 = Keccak(384, 0x06);
1515pub const Sha3_512 = Keccak(512, 0x06);
16pub const Keccak_256 = Keccak(256, 0x01);
17pub const Keccak_512 = Keccak(512, 0x01);
1618
1719fn Keccak(comptime bits: usize, comptime delim: u8) type {
1820 return struct {
......@@ -297,3 +299,15 @@ test "sha3-512 aligned final" {
297299 h.update(&block);
298300 h.final(out[0..]);
299301}
302
303test "keccak-256 single" {
304 htest.assertEqualHash(Keccak_256, "c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "");
305 htest.assertEqualHash(Keccak_256, "4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45", "abc");
306 htest.assertEqualHash(Keccak_256, "f519747ed599024f3882238e5ab43960132572b7345fbeb9a90769dafd21ad67", "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu");
307}
308
309test "keccak-512 single" {
310 htest.assertEqualHash(Keccak_512, "0eab42de4c3ceb9235fc91acffe746b29c29a8c366b7c60e4e67c466f36a4304c00fa9caf9d87976ba469bcbe06713b435f091ef2769fb160cdab33d3670680e", "");
311 htest.assertEqualHash(Keccak_512, "18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96", "abc");
312 htest.assertEqualHash(Keccak_512, "ac2fb35251825d3aa48468a9948c0a91b8256f6d97d8fa4160faff2dd9dfcc24f3f1db7a983dad13d53439ccac0b37e24037e7b95f80f59f37a2f683c4ba4682", "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu");
313}