diff --git a/src/main.ts b/src/main.ts index 01e044e6..aff61bc0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -109,7 +109,6 @@ export class Main { this.messagingMain.onMessage(message); }); - this.keytarStorageListener = new KeytarStorageListener('Bitwarden'); if (process.platform === 'win32') { const BiometricWindowsMain = require('jslib-electron/biometric.windows.main').default; @@ -119,6 +118,8 @@ export class Main { this.biometricMain = new BiometricDarwinMain(this.storageService, this.i18nService); } + this.keytarStorageListener = new KeytarStorageListener('Bitwarden', this.biometricMain); + this.nativeMessagingMain = new NativeMessagingMain(this.logService, this.windowMain, app.getPath('userData'), app.getPath('exe')); } diff --git a/src/services/nativeMessaging.service.ts b/src/services/nativeMessaging.service.ts index 6e0d6b45..b63f5695 100644 --- a/src/services/nativeMessaging.service.ts +++ b/src/services/nativeMessaging.service.ts @@ -102,11 +102,12 @@ export class NativeMessagingService { }); } - const response = await this.platformUtilService.authenticateBiometric(); - if (response) { - this.send({command: 'biometricUnlock', response: 'unlocked', keyB64: (await this.cryptoService.getKey()).keyB64}, appId); + const keyB64 = await (await this.cryptoService.getKey('biometric')).keyB64; + + if (keyB64 != null) { + this.send({ command: 'biometricUnlock', response: 'unlocked', keyB64: keyB64 }, appId); } else { - this.send({command: 'biometricUnlock', response: 'canceled'}, appId); + this.send({ command: 'biometricUnlock', response: 'canceled' }, appId); } break;