diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index a2f748cae72..028715b0542 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -1389,5 +1389,11 @@ }, "errorEnableBiometricDesc": { "message": "Action was canceld by the desktop applicaiton." - } + }, + "nativeMessagingInvalidEncryptionDesc": { + "message": "Desktop application invalidated the secure communication channel. Please retry this operation" + }, + "nativeMessagingInvalidEncryptionTitle": { + "message": "Desktop communication interupted" + } } diff --git a/src/background/nativeMessaging.background.ts b/src/background/nativeMessaging.background.ts index 562fd21b31a..92cb691bdb7 100644 --- a/src/background/nativeMessaging.background.ts +++ b/src/background/nativeMessaging.background.ts @@ -62,6 +62,17 @@ export class NativeMessagingBackground { this.sharedSecret = new SymmetricCryptoKey(decrypted); this.secureSetupResolve(); break; + case 'invalidateEncryption': + this.sharedSecret = null; + this.privateKey = null; + this.connected = false; + + this.messagingService.send('showDialog', { + text: this.i18nService.t('nativeMessagingInvalidEncryptionDesc'), + title: this.i18nService.t('nativeMessagingInvalidEncryptionTitle'), + confirmText: this.i18nService.t('ok'), + type: 'error', + }); default: this.onMessage(message); } @@ -83,6 +94,8 @@ export class NativeMessagingBackground { type: 'error', }); } + this.sharedSecret = null; + this.privateKey = null; this.connected = false; reject(); });