From 7abe33ecaaafc91910f693dd6c4ab425a22df43d Mon Sep 17 00:00:00 2001
From: Tom <tom@fosscat.com>
Date: Fri, 4 Aug 2023 19:41:48 -0600
Subject: [PATCH] Added new method in utils for hashing

---
 src/routes/auth.zig | 1 -
 src/routes/user.zig | 2 +-
 src/utils.zig       | 7 +++++++
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/routes/auth.zig b/src/routes/auth.zig
index ae4062b..a04c133 100644
--- a/src/routes/auth.zig
+++ b/src/routes/auth.zig
@@ -9,7 +9,6 @@ const utils = @import("../utils.zig");
 //TODO move these to env variables
 
 const key = "aGVyZUlzQUdpYmVyaXNoS2V5ISE=";
-pub const HASH_SEED: u64 = 6065983110;
 
 pub const VerifyAuthError = error{
     Unauthorized,
diff --git a/src/routes/user.zig b/src/routes/user.zig
index 7506b7a..ca41010 100644
--- a/src/routes/user.zig
+++ b/src/routes/user.zig
@@ -42,7 +42,7 @@ pub fn login(req: *httpz.Request, res: *httpz.Response) !void {
     }
 
     var user: ?models.User = null;
-    const password_hash = @truncate(u32, std.hash.Wyhash.hash(auth.HASH_SEED, body.password));
+    const password_hash = utils.hashPassword(body.password);
     if (body.username != null) {
         const query =
             "WHERE pass_hash = ? and username = ?;";
diff --git a/src/utils.zig b/src/utils.zig
index f0e7f39..577a36c 100644
--- a/src/utils.zig
+++ b/src/utils.zig
@@ -1,5 +1,7 @@
 const std = @import("std");
 
+const HASH_SEED: u64 = 6065983110;
+
 fn SpreadResult(comptime Base: type, comptime Additional: type) type {
     comptime {
         // const type_info = @typeInfo(Base);
@@ -123,6 +125,11 @@ pub fn generateRandomString(allocator: std.mem.Allocator) ![]const u8 {
     return code;
 }
 
+pub fn hashPassword(password: []const u8) u32 {
+    const password_hash = @truncate(u32, std.hash.Wyhash.hash(HASH_SEED, password));
+    return password_hash;
+}
+
 test {
     // const vote = .{ .id = 0, .createdAt = "DATE" };
     // const data = structConcatFields(vote, .{ .id2 = vote.id });