From 6fa1ee62d1c10d4a2e1ed43b00049c59795bd85c Mon Sep 17 00:00:00 2001 From: Johan de Klerk <johan@shiplogic.com> Date: Mon, 17 Apr 2023 14:15:32 +0200 Subject: [PATCH] GenerateHashFromObject --- encryption/encryption.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/encryption/encryption.go b/encryption/encryption.go index 2a0dfc0..9d06d05 100644 --- a/encryption/encryption.go +++ b/encryption/encryption.go @@ -9,6 +9,7 @@ import ( "crypto/rand" "crypto/sha256" "encoding/base64" + "encoding/hex" "encoding/json" "fmt" "gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/errors" @@ -23,21 +24,23 @@ func Hash(input string, key string) string { } // GenerateHashFromObject using HMAC with SHA-256 -func GenerateHashFromObject(obejct any, secret string) (string, error) { +func GenerateHashFromObject(object any, secret string) (string, error) { // Base64 Encode body var buf bytes.Buffer encoder := base64.NewEncoder(base64.StdEncoding, &buf) defer encoder.Close() - err := json.NewEncoder(encoder).Encode(obejct) + err := json.NewEncoder(encoder).Encode(object) if err != nil { return "", err } encodedBody := buf.String() // Sign encoded body with secret - hashedObject := Hash(encodedBody, secret) - return hashedObject, nil + hash := hmac.New(sha256.New, []byte(secret)) + hash.Write([]byte(encodedBody)) + hashedBody := hex.EncodeToString(hash.Sum(nil)) + return hashedBody, nil } func Md5HashString(bytesToHash []byte) string { -- GitLab