From 78815120c791b7a99b475d3fec1c32f336eb90e5 Mon Sep 17 00:00:00 2001 From: Abhinav-grd Date: Fri, 2 Apr 2021 19:12:28 +0530 Subject: [PATCH] added error message kek generation failure --- src/pages/generate/index.tsx | 20 +++++++++++++++----- src/utils/strings/englishConstants.tsx | 1 + 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/pages/generate/index.tsx b/src/pages/generate/index.tsx index 367d31395..93ae225d8 100644 --- a/src/pages/generate/index.tsx +++ b/src/pages/generate/index.tsx @@ -60,10 +60,19 @@ export default function Generate() { const cryptoWorker = await new CryptoWorker(); const key: string = await cryptoWorker.generateMasterKey(); const kekSalt: string = await cryptoWorker.generateSaltToDeriveKey(); - const kek: KEK = await cryptoWorker.deriveSensitiveKey( - passphrase, - kekSalt - ); + let kek: KEK; + try { + kek = await cryptoWorker.deriveSensitiveKey( + passphrase, + kekSalt + ); + } catch (e) { + setFieldError( + 'confirm', + constants.PASSWORD_GENERATION_FAILED + ); + return; + } const encryptedKeyAttributes: B64EncryptionResult = await cryptoWorker.encryptToB64( key, kek.key @@ -109,8 +118,9 @@ export default function Generate() { 'passphrase', `${constants.UNKNOWN_ERROR} ${e.message}` ); + } finally { + setLoading(false); } - setLoading(false); }; return ( diff --git a/src/utils/strings/englishConstants.tsx b/src/utils/strings/englishConstants.tsx index 8574d0f27..c9c19818f 100644 --- a/src/utils/strings/englishConstants.tsx +++ b/src/utils/strings/englishConstants.tsx @@ -156,6 +156,7 @@ const englishConstants = { SESSION_EXPIRED: 'login', SYNC_FAILED: 'failed to sync with remote server, please refresh page to try again', + PASSWORD_GENERATION_FAILED: `your browser was unable to generate a strong enough password that meets ente's encryption standards, please try using the mobile app or another browser`, }; export default englishConstants;