From 7d480e420cfbb678acabe9c5dfc3b66421c9dcab Mon Sep 17 00:00:00 2001 From: Sasha Ilieva <sasha.ilieva@vereign.com> Date: Tue, 19 May 2020 09:22:13 +0300 Subject: [PATCH] Fix and debug --- javascript/src/iframe/viamapi-iframe.js | 4 ++-- javascript/src/utilities/secrets.js | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 4de95e5..55ad951 100644 --- a/javascript/src/iframe/viamapi-iframe.js +++ b/javascript/src/iframe/viamapi-iframe.js @@ -1073,12 +1073,12 @@ const connection = Penpal.connectToParent({ recoveryKey, sharesNumber ); - + console.log({ recoveryKeyShares }); const sanityCheckResponse = checkRecoveryKeyCombine( recoveryKey, recoveryKeyShares ); - + console.log({ sanityCheckResponse }); if (sanityCheckResponse.code !== "200") { return sanityCheckResponse; } diff --git a/javascript/src/utilities/secrets.js b/javascript/src/utilities/secrets.js index df1e2bd..baf7f9b 100644 --- a/javascript/src/utilities/secrets.js +++ b/javascript/src/utilities/secrets.js @@ -62,14 +62,16 @@ export const getRecoveryKeyShares = (recoveryKey, sharesNumber) => { export const checkRecoveryKeyCombine = (recoveryKey, recoveryKeyShares) => { let checkKey; - const { beginIndex, endIndex } = getSliceRange(recoveryKeyShares.length); - checkKey = combineSecret(recoveryKeyShares.slice(beginIndex, endIndex)); - if (checkKey !== recoveryKey) { - return encodeResponse("400", "", "First sanity check failed"); - } - checkKey = combineSecret(recoveryKeyShares.slice(0, 1)); - if (checkKey === recoveryKey) { - return encodeResponse("400", "", "Second sanity check failed"); + if (recoveryKeyShares.length > 1) { + const { beginIndex, endIndex } = getSliceRange(recoveryKeyShares.length); + checkKey = combineSecret(recoveryKeyShares.slice(beginIndex, endIndex)); + if (checkKey !== recoveryKey) { + return encodeResponse("400", "", "First sanity check failed"); + } + checkKey = combineSecret(recoveryKeyShares.slice(0, 1)); + if (checkKey === recoveryKey) { + return encodeResponse("400", "", "Second sanity check failed"); + } } checkKey = combineSecret(recoveryKeyShares); if (checkKey !== recoveryKey) { -- GitLab