diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js index 4de95e5939217c6bb6d2d3f1ccc471587387ebe3..55ad9515721bc0cdac9c18515ce4d23f868d2020 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 df1e2bd2308aff955f9cc208ea7be17e67e9003b..baf7f9bbcf33df022bbb1c7ac48a4710e2fe3756 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) {