authorgravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2018-01-17 00:20:20+13:00
committergravatar for marc@tiehu.isMarc Tiehuis <marc@tiehu.is> 2018-01-17 00:20:20+13:00
log73b4f098457e141854c26f5f43b2858909c831a3
tree6cff19e2eb6e9dcbdb1521ba1b6415331ee61852
parent66a24c9c00d63853cd50f792847f52f7b2d06cb3

Add crypto internal test functions


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

std/crypto/test.zig created+22
......@@ -0,0 +1,22 @@
1const debug = @import("../debug/index.zig");
2const mem = @import("../mem.zig");
3const fmt = @import("../fmt/index.zig");
4
5// Hash using the specified hasher `H` asserting `expected == H(input)`.
6pub fn assertEqualHash(comptime Hasher: var, comptime expected: []const u8, input: []const u8) {
7 var h: [expected.len / 2]u8 = undefined;
8 Hasher.hash(input, h[0..]);
9
10 assertEqual(expected, h);
11}
12
13// Assert `expected` == `input` where `input` is a bytestring.
14pub fn assertEqual(comptime expected: []const u8, input: []const u8) {
15 var expected_bytes: [expected.len / 2]u8 = undefined;
16 for (expected_bytes) |*r, i| {
17 *r = fmt.parseInt(u8, expected[2*i .. 2*i+2], 16) catch unreachable;
18 }
19
20 debug.assert(mem.eql(u8, expected_bytes, input));
21}
22