diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index d2280ae8716dc29122e2ceef25d1a04ca01b9563..4de95e5939217c6bb6d2d3f1ccc471587387ebe3 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -1073,6 +1073,7 @@ const connection = Penpal.connectToParent({
           recoveryKey,
           sharesNumber
         );
+
         const sanityCheckResponse = checkRecoveryKeyCombine(
           recoveryKey,
           recoveryKeyShares
@@ -1566,10 +1567,7 @@ const connection = Penpal.connectToParent({
         vCardImageClaimValue = vCardClaimResponse.data;
       }
 
-      if (
-        vCardImageClaimValue &&
-        "state" in vCardImageClaimValue
-      ) {
+      if (vCardImageClaimValue && "state" in vCardImageClaimValue) {
         return encodeResponse("200", vCardImageClaimValue.state, "OK");
       }
 
@@ -1629,14 +1627,13 @@ message SignatureData {
         return encodeResponse("400", "", "Identity not authenticated");
       }
 
-
       // Get vCard and QR Code Coordinates
 
       let vCardImageData;
       let vCardImageClaimValue;
 
       let qrCodeImageData;
-      let qrCodeCoordinates = {fromL: -1, fromR: -1, toL: -1, toR: -1};
+      let qrCodeCoordinates = { fromL: -1, fromR: -1, toL: -1, toR: -1 };
 
       if (signatureData) {
         const vCardImageClaimName = "vCardImage";
@@ -1822,7 +1819,7 @@ message SignatureData {
       let vCardImageClaimValue;
 
       let qrCodeImageData;
-      let qrCodeCoordinates = {fromL: -1, fromR: -1, toL: -1, toR: -1};
+      let qrCodeCoordinates = { fromL: -1, fromR: -1, toL: -1, toR: -1 };
 
       const vCardImageClaimName = "vCardImage";
       const defaultTagName = "notag";
@@ -1958,7 +1955,6 @@ message SignatureData {
 
       passportChain.reverse();
 
-
       const signVCardResponse = await executeRestfulFunction(
         "private",
         window.viamApi,
@@ -2076,7 +2072,7 @@ message SignatureData {
 
       return encodeResponse("200", response.data, "Document created");
     },
-    getVcardWithQrCode: async (passportUUID, QRCodeContent = null) =>{
+    getVcardWithQrCode: async (passportUUID, QRCodeContent = null) => {
       //TODO: IMPLEMENT QR CODE backend method needed
       const authenticationPublicKey = localStorage.getItem(
         "authenticatedIdentity"
@@ -2144,7 +2140,7 @@ message SignatureData {
           );
         }
       }
-      return  encodeResponse("200",vCardImageData, 'vCard got');
+      return encodeResponse("200", vCardImageData, "vCard got");
     },
     documentPutDocument: async (
       passportUUID,
diff --git a/javascript/src/utilities/numberUtilities.js b/javascript/src/utilities/numberUtilities.js
new file mode 100644
index 0000000000000000000000000000000000000000..dbee13839522df1f54fe79ff2fa57befd736ae68
--- /dev/null
+++ b/javascript/src/utilities/numberUtilities.js
@@ -0,0 +1,14 @@
+export function getRandomInt(max) {
+  return Math.floor(Math.random() * Math.floor(max));
+}
+
+export function getSliceRange(max) {
+  const beginIndex = getRandomInt(max);
+  const endIndex = getRandomInt(max);
+
+  if (beginIndex === endIndex) {
+    return getSliceRange(max);
+  }
+
+  return { beginIndex, endIndex };
+}
diff --git a/javascript/src/utilities/secrets.js b/javascript/src/utilities/secrets.js
index 764649eecffbde63c0726baa1b50edd5a89d8725..df1e2bd2308aff955f9cc208ea7be17e67e9003b 100644
--- a/javascript/src/utilities/secrets.js
+++ b/javascript/src/utilities/secrets.js
@@ -1,6 +1,7 @@
 import secrets from "../lib/secrets";
-import { encryptMessage } from "./signingUtilities.js";
+import { encryptMessage } from "./signingUtilities";
 import { encodeResponse } from "./appUtility";
+import { getSliceRange } from "./numberUtilities";
 
 /** Initialize
  */
@@ -61,7 +62,8 @@ export const getRecoveryKeyShares = (recoveryKey, sharesNumber) => {
 
 export const checkRecoveryKeyCombine = (recoveryKey, recoveryKeyShares) => {
   let checkKey;
-  checkKey = combineSecret(recoveryKeyShares.slice(0, 2));
+  const { beginIndex, endIndex } = getSliceRange(recoveryKeyShares.length);
+  checkKey = combineSecret(recoveryKeyShares.slice(beginIndex, endIndex));
   if (checkKey !== recoveryKey) {
     return encodeResponse("400", "", "First sanity check failed");
   }