fix issue with biometric validation (#1081)

* fix issue with biometric validation

* null check key & cipher
This commit is contained in:
Matt Portune 2020-09-21 11:59:56 -04:00 committed by GitHub
parent d33e38012a
commit 0388738e02
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -51,6 +51,11 @@ namespace Bit.Droid.Services
IKey key = _keystore.GetKey(KeyName, null);
Cipher cipher = Cipher.GetInstance(Transformation);
if (key == null || cipher == null)
{
return Task.FromResult(true);
}
try
{
cipher.Init(CipherMode.EncryptMode, key);
@ -76,15 +81,23 @@ namespace Bit.Droid.Services
private void CreateKey()
{
KeyGenerator keyGen = KeyGenerator.GetInstance(KeyAlgorithm, KeyStoreName);
KeyGenParameterSpec keyGenSpec =
new KeyGenParameterSpec.Builder(KeyName, KeyStorePurpose.Encrypt | KeyStorePurpose.Decrypt)
.SetBlockModes(BlockMode)
.SetEncryptionPaddings(EncryptionPadding)
.SetUserAuthenticationRequired(true)
.Build();
keyGen.Init(keyGenSpec);
keyGen.GenerateKey();
try
{
var keyGen = KeyGenerator.GetInstance(KeyAlgorithm, KeyStoreName);
var keyGenSpec =
new KeyGenParameterSpec.Builder(KeyName, KeyStorePurpose.Encrypt | KeyStorePurpose.Decrypt)
.SetBlockModes(BlockMode)
.SetEncryptionPaddings(EncryptionPadding)
.SetUserAuthenticationRequired(true)
.Build();
keyGen.Init(keyGenSpec);
keyGen.GenerateKey();
}
catch
{
// Catch silently to allow biometrics to function on devices that are in a state where key generation
// is not functioning
}
}
}
}