From fccca8ab309ef729d182bc7212bc2d2642af2882 Mon Sep 17 00:00:00 2001 From: ShellTear <62976449+SheIITear@users.noreply.github.com> Date: Tue, 4 Mar 2025 04:05:52 +0200 Subject: [PATCH 1/2] fix(sync): complete unfinished async implementation Added 'await' to callers of 'makeLtHashGenerator.finish' to handle its Promise return after 'lt-hash.ts' was made asynchronous by replacing old sync hkdf implementation. Fixes #1286 --- src/Utils/chat-utils.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Utils/chat-utils.ts b/src/Utils/chat-utils.ts index 5d3fd2f..fc949b3 100644 --- a/src/Utils/chat-utils.ts +++ b/src/Utils/chat-utils.ts @@ -86,9 +86,9 @@ const makeLtHashGenerator = ({ indexValueMap, hash }: Pick { + finish: async () => { const hashArrayBuffer = new Uint8Array(hash).buffer - const result = LT_HASH_ANTI_TAMPERING.subtractThenAdd(hashArrayBuffer, addBuffs, subBuffs) + const result = await LT_HASH_ANTI_TAMPERING.subtractThenAdd(hashArrayBuffer, addBuffs, subBuffs) const buffer = Buffer.from(result) return { @@ -153,7 +153,7 @@ export const encodeSyncdPatch = async( // update LT hash const generator = makeLtHashGenerator(state) generator.mix({ indexMac, valueMac, operation }) - Object.assign(state, generator.finish()) + Object.assign(state, await generator.finish()) state.version += 1 @@ -233,7 +233,7 @@ export const decodeSyncdMutations = async( }) } - return ltGenerator.finish() + return await ltGenerator.finish() async function getKey(keyId: Uint8Array) { const base64Key = Buffer.from(keyId).toString('base64') From 4a90ea46889c6ec3aca54c4af6086d1627a5c1b2 Mon Sep 17 00:00:00 2001 From: ShellTear <62976449+SheIITear@users.noreply.github.com> Date: Tue, 4 Mar 2025 04:08:09 +0200 Subject: [PATCH 2/2] fix lint --- src/Utils/chat-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Utils/chat-utils.ts b/src/Utils/chat-utils.ts index fc949b3..dcf248f 100644 --- a/src/Utils/chat-utils.ts +++ b/src/Utils/chat-utils.ts @@ -86,7 +86,7 @@ const makeLtHashGenerator = ({ indexValueMap, hash }: Pick { + finish: async() => { const hashArrayBuffer = new Uint8Array(hash).buffer const result = await LT_HASH_ANTI_TAMPERING.subtractThenAdd(hashArrayBuffer, addBuffs, subBuffs) const buffer = Buffer.from(result)