Skip to content

Commit efafcc9

Browse files
authored
BE-7952 Wrap the platform.unwrapKey with try-catch block in the processKdFolderKeys to avoid complete sync down failure (#222)
* Wrap the platform.unwrapKey with try-catch block in the processKdFolderKeys to avoid complete sync down failure * formatter * v18.0.7 * replaced the console with logger in the vault.ts
1 parent d203b87 commit efafcc9

4 files changed

Lines changed: 17 additions & 15 deletions

File tree

keeperapi/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

keeperapi/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@keeper-security/keeperapi",
33
"description": "Keeper API Javascript SDK",
4-
"version": "18.0.6",
4+
"version": "18.0.7",
55
"browser": "dist/browser/index.js",
66
"main": "dist/index.cjs.js",
77
"types": "dist/node/index.d.ts",

keeperapi/src/browser/platform.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -613,13 +613,9 @@ export const browserPlatform: Platform = class {
613613
}
614614

615615
static async importECCJsonWebKey(jwk: JsonWebKey, extractable = true): Promise<CryptoKey> {
616-
return await crypto.subtle.importKey(
617-
'jwk',
618-
jwk,
619-
{ name: 'ECDH', namedCurve: 'P-256' },
620-
extractable,
621-
['deriveBits']
622-
)
616+
return await crypto.subtle.importKey('jwk', jwk, { name: 'ECDH', namedCurve: 'P-256' }, extractable, [
617+
'deriveBits',
618+
])
623619
}
624620

625621
static async ecdhComputeSharedSecret(

keeperapi/src/vault.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1121,8 +1121,8 @@ const processKdRecordLinks = async (storage: VaultStorage, keeperDriveRecordLink
11211121
parentRecordUid,
11221122
})
11231123
} catch (e: any) {
1124-
console.error(
1125-
`[ks] The record link for ${childRecordUid} cannot be decrypted by ${parentRecordUid} (${e.message})`
1124+
logger.error(
1125+
`[kd] The record link for ${childRecordUid} cannot be decrypted by ${parentRecordUid} (${e.message})`
11261126
)
11271127
}
11281128
}
@@ -1182,7 +1182,13 @@ const processKdFolderKeys = async (storage: VaultStorage, folderKeys?: Folder.IF
11821182
if (!key.folderUid || !key.folderKey || !key.parentUid || isNil(key.encryptedBy)) continue
11831183
const folderUid = webSafe64FromBytes(key.folderUid)
11841184
const parentUid = webSafe64FromBytes(key.parentUid)
1185-
await platform.unwrapKey(key.folderKey, folderUid, parentUid, 'gcm', 'aes', storage)
1185+
try {
1186+
await platform.unwrapKey(key.folderKey, folderUid, parentUid, 'gcm', 'aes', storage)
1187+
} catch (e: any) {
1188+
logger.error(
1189+
`[kd] The folder key for ${folderUid} can't be decrypted by the parent key ${parentUid} (${e.message})`
1190+
)
1191+
}
11861192
}
11871193
}
11881194

@@ -1288,7 +1294,7 @@ const processKdFolders = async (storage: VaultStorage, keeperDriveFolders?: Fold
12881294
inheritUserPermissions: toOptional(folder.inheritUserPermissions),
12891295
})
12901296
} catch (err: any) {
1291-
console.error(`[ks] folder ${folderUid} cannot be decrypted (${err.message})`)
1297+
logger.error(`[kd] folder ${folderUid} cannot be decrypted (${err.message})`)
12921298
}
12931299
}
12941300
}
@@ -1423,7 +1429,7 @@ const processKdRecords = async (
14231429
isKeeperDriveData: true,
14241430
})
14251431
} catch (err: any) {
1426-
console.error(`[kd] record ${recordUid} cannot be decrypted: ${err.message}`)
1432+
logger.error(`[kd] record ${recordUid} cannot be decrypted: ${err.message}`)
14271433
}
14281434
}
14291435
}

0 commit comments

Comments
 (0)