From b54ec0eca71dd7751bc7e05775ab3969143f9bbc Mon Sep 17 00:00:00 2001
From: Johan de Klerk <johan@shiplogic.com>
Date: Tue, 7 Feb 2023 14:09:08 +0200
Subject: [PATCH] Added encryption keys

---
 encryption/encryption_keys.go | 44 +++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)
 create mode 100644 encryption/encryption_keys.go

diff --git a/encryption/encryption_keys.go b/encryption/encryption_keys.go
new file mode 100644
index 0000000..1d31fc4
--- /dev/null
+++ b/encryption/encryption_keys.go
@@ -0,0 +1,44 @@
+package encryption
+
+import (
+	"encoding/json"
+	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/errors"
+	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/logs"
+	"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/secrets_manager"
+)
+
+type EncryptionKeysSecret struct {
+	EncryptionKeysValue string `json:"EncryptionKeys"`
+}
+
+type EncryptionKeys struct {
+	FirebaseEncryptionKey string `json:"firebase_encryption_key"`
+	JWTEncryptionKey      string `json:"jwt_encryption_key"`
+}
+
+func GetEncryptionKeys(secretID string, isDebug bool) (EncryptionKeys, error) {
+	encryptionKeysSecretString, _ := secrets_manager.GetSecret(secretID, isDebug)
+
+	var encryptionKeys EncryptionKeys
+	var encryptionKeysSecret EncryptionKeysSecret
+	err := json.Unmarshal([]byte(encryptionKeysSecretString), &encryptionKeysSecret)
+	if err == nil {
+		err = json.Unmarshal([]byte(encryptionKeysSecret.EncryptionKeysValue), &encryptionKeys)
+	}
+
+	return encryptionKeys, err
+}
+
+func GetJWTEncryptionKey(secretID string, isDebug bool) (string, error) {
+	encryptionKeys, err := GetEncryptionKeys(secretID, isDebug)
+	if err != nil {
+		logs.ErrorWithMsg("Could not get encryption keys from secret manager", err)
+		return "", errors.Error("failed to get encryption keys for login")
+	}
+	return encryptionKeys.JWTEncryptionKey, nil
+}
+
+func GetFirebaseCredentialsEncryptionKey(secretID string, isDebug bool) (string, error) {
+	encryptionKeys, err := GetEncryptionKeys(secretID, isDebug)
+	return encryptionKeys.FirebaseEncryptionKey, err
+}
-- 
GitLab