From d1580a316225f518752888c7aeb48852dd3a5ca1 Mon Sep 17 00:00:00 2001 From: PhilReact Date: Sat, 22 Mar 2025 06:50:08 +0200 Subject: [PATCH] added utils --- src/context/GlobalProvider.tsx | 6 ++++-- src/utils/encryption.ts | 12 ++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/context/GlobalProvider.tsx b/src/context/GlobalProvider.tsx index 9bbf986..e6d5e2d 100644 --- a/src/context/GlobalProvider.tsx +++ b/src/context/GlobalProvider.tsx @@ -2,7 +2,7 @@ import React, { createContext, useContext, useMemo } from "react"; import { useAuth, UseAuthProps } from "../hooks/useAuth"; import { useResources } from "../hooks/useResources"; import { useAppInfo } from "../hooks/useAppInfo"; -import { addAndEncryptSymmetricKeys, IdentifierBuilder } from "../utils/encryption"; +import { addAndEncryptSymmetricKeys, decryptWithSymmetricKeys, encryptWithSymmetricKeys, IdentifierBuilder } from "../utils/encryption"; import { useIdentifiers } from "../hooks/useIdentifiers"; import { objectToBase64 } from "../utils/base64"; import { base64ToObject } from "../utils/publish"; @@ -11,7 +11,9 @@ import { base64ToObject } from "../utils/publish"; const utils = { objectToBase64, base64ToObject, - addAndEncryptSymmetricKeys + addAndEncryptSymmetricKeys, + encryptWithSymmetricKeys, + decryptWithSymmetricKeys } diff --git a/src/utils/encryption.ts b/src/utils/encryption.ts index 489485c..19f732b 100644 --- a/src/utils/encryption.ts +++ b/src/utils/encryption.ts @@ -179,7 +179,7 @@ export const addAndEncryptSymmetricKeys = async ({ }) => { try { let highestKey = 0; - if (previousData) { + if (previousData && Object.keys(previousData)?.length > 0) { highestKey = Math.max( ...Object.keys(previousData || {}) .filter((item) => !isNaN(+item)) @@ -203,7 +203,7 @@ export const addAndEncryptSymmetricKeys = async ({ }); if (encryptedData) { - return encryptedData; + return {encryptedData, publicKeys: groupmemberPublicKeys, symmetricKeys: objectToSave}; } else { throw new Error("Cannot encrypt content"); } @@ -213,7 +213,7 @@ export const addAndEncryptSymmetricKeys = async ({ }; export const encryptWithSymmetricKeys = async ({ - data64, + base64, secretKeyObject, typeNumber = 2, }: any) => { @@ -226,7 +226,7 @@ export const encryptWithSymmetricKeys = async ({ const highestKeyObject = secretKeyObject[highestKey]; // Convert data and keys from base64 - const Uint8ArrayData = base64ToUint8Array(data64); + const Uint8ArrayData = base64ToUint8Array(base64); const messageKey = base64ToUint8Array(highestKeyObject.messageKey); if (!(Uint8ArrayData instanceof Uint8Array)) { @@ -294,11 +294,11 @@ export const encryptWithSymmetricKeys = async ({ return finalEncryptedData; }; -interface SecretKeyValue { +export interface SecretKeyValue { messageKey: string; } -export const decryptSingle = async ({ +export const decryptWithSymmetricKeys = async ({ base64, secretKeyObject, }: {