From 3c223d19106b4bf5670659ebbd4351ab1113175a Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Tue, 4 Jun 2024 10:39:03 -0700 Subject: [PATCH] do_hash has no need to take an Allocator --- src/common.zig | 2 +- src/util/funcs.zig | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/common.zig b/src/common.zig index 39f194f573d61bcc3435956f2622ffb75932d415..1db76125a30c063975aff3f8c2501470bd73cf40 100644 --- a/src/common.zig +++ b/src/common.zig @@ -230,7 +230,7 @@ pub fn get_module_from_dep(d: *zigmod.Dep, cachepath: string, options: *CollectO .system_lib, .framework => { return zigmod.Module{ .type = d.type, - .id = try u.do_hash(options.alloc, std.crypto.hash.sha3.Shake(96), d.path), + .id = try u.do_hash(std.crypto.hash.sha3.Shake(96), d.path), .name = d.path, .only_os = d.only_os, .except_os = d.except_os, diff --git a/src/util/funcs.zig b/src/util/funcs.zig index dcc238cdfe41473275c1dd3d6d969ac08787aae3..54f8d91a3a9372d5ed1ab585a0d0eb6692845e2a 100644 --- a/src/util/funcs.zig +++ b/src/util/funcs.zig @@ -132,9 +132,9 @@ pub fn validate_hash(alloc: std.mem.Allocator, input: string, file_path: string) const data = try file.reader().readAllAlloc(alloc, gb); const expected = hash.string; const actual = switch (hash.id) { - .blake3 => &try do_hash(alloc, std.crypto.hash.Blake3, data), - .sha256 => &try do_hash(alloc, std.crypto.hash.sha2.Sha256, data), - .sha512 => &try do_hash(alloc, std.crypto.hash.sha2.Sha512, data), + .blake3 => &try do_hash(std.crypto.hash.Blake3, data), + .sha256 => &try do_hash(std.crypto.hash.sha2.Sha256, data), + .sha512 => &try do_hash(std.crypto.hash.sha2.Sha512, data), }; const result = std.mem.startsWith(u8, actual, expected); if (!result) { @@ -143,13 +143,8 @@ pub fn validate_hash(alloc: std.mem.Allocator, input: string, file_path: string) return result; } -pub fn do_hash(alloc: std.mem.Allocator, comptime algo: type, data: string) ![algo.digest_length * 2]u8 { - var h = algo.init(.{}); - var out: [algo.digest_length]u8 = undefined; - h.update(data); - h.final(&out); - const hex = try std.fmt.allocPrint(alloc, "{x}", .{std.fmt.fmtSliceHexLower(out[0..])}); - return hex[0 .. algo.digest_length * 2].*; +pub fn do_hash(comptime algo: type, data: string) ![algo.digest_length * 2]u8 { + return extras.to_hex(extras.hashBytes(algo, data)); } /// Returns the result of running `git rev-parse HEAD` -- 2.54.0