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