|
6 | 6 | import android.hardware.fingerprint.FingerprintManager; |
7 | 7 | import android.os.Build; |
8 | 8 | import android.os.CancellationSignal; |
| 9 | +import android.security.KeyPairGeneratorSpec; |
9 | 10 | import android.security.keystore.KeyGenParameterSpec; |
10 | 11 | import android.security.keystore.KeyInfo; |
11 | | - |
12 | | -import java.security.InvalidKeyException; |
13 | | - |
14 | | -import android.security.KeyPairGeneratorSpec; |
15 | 12 | import android.security.keystore.KeyProperties; |
16 | 13 | import android.util.Base64; |
17 | 14 | import android.util.Log; |
| 15 | + |
18 | 16 | import androidx.annotation.NonNull; |
19 | 17 | import androidx.biometric.BiometricConstants; |
20 | 18 | import androidx.biometric.BiometricManager; |
21 | 19 | import androidx.biometric.BiometricPrompt; |
| 20 | +import androidx.fragment.app.FragmentActivity; |
22 | 21 |
|
23 | 22 | import com.facebook.react.bridge.Promise; |
24 | 23 | import com.facebook.react.bridge.ReactApplicationContext; |
25 | 24 | import com.facebook.react.bridge.ReactContextBaseJavaModule; |
26 | 25 | import com.facebook.react.bridge.ReactMethod; |
27 | 26 | import com.facebook.react.bridge.ReadableMap; |
| 27 | +import com.facebook.react.bridge.UiThreadUtil; |
28 | 28 | import com.facebook.react.bridge.WritableMap; |
29 | 29 | import com.facebook.react.bridge.WritableNativeMap; |
30 | | -import com.facebook.react.bridge.UiThreadUtil; |
31 | 30 | import com.facebook.react.modules.core.DeviceEventManagerModule; |
32 | 31 |
|
33 | 32 | import java.math.BigInteger; |
| 33 | +import java.security.InvalidKeyException; |
34 | 34 | import java.security.Key; |
35 | 35 | import java.security.KeyPairGenerator; |
36 | 36 | import java.security.KeyStore; |
37 | | -import java.security.InvalidKeyException; |
38 | 37 | import java.security.PrivateKey; |
39 | 38 | import java.security.PublicKey; |
40 | | -import java.util.Calendar; |
41 | 39 | import java.security.UnrecoverableKeyException; |
| 40 | +import java.util.Calendar; |
42 | 41 | import java.util.HashMap; |
43 | 42 | import java.util.Map; |
44 | 43 | import java.util.concurrent.Executor; |
45 | 44 | import java.util.concurrent.Executors; |
46 | 45 |
|
| 46 | +import javax.crypto.BadPaddingException; |
47 | 47 | import javax.crypto.Cipher; |
48 | 48 | import javax.crypto.IllegalBlockSizeException; |
49 | 49 | import javax.crypto.KeyGenerator; |
50 | 50 | import javax.crypto.SecretKey; |
51 | 51 | import javax.crypto.SecretKeyFactory; |
52 | 52 | import javax.crypto.spec.GCMParameterSpec; |
53 | 53 | import javax.crypto.spec.IvParameterSpec; |
54 | | - |
55 | | -import androidx.fragment.app.FragmentActivity; |
56 | 54 | import javax.security.auth.x500.X500Principal; |
57 | 55 |
|
58 | 56 | import dev.mcodex.RNSensitiveInfo.utils.AppConstants; |
@@ -618,6 +616,9 @@ public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult re |
618 | 616 | } else { |
619 | 617 | pm.reject(e); |
620 | 618 | } |
| 619 | + } catch (BadPaddingException e){ |
| 620 | + Log.d("RNSensitiveInfo", "Biometric key invalid"); |
| 621 | + pm.reject(AppConstants.E_BIOMETRICS_INVALIDATED, e.getCause().getMessage()); |
621 | 622 | } catch (SecurityException e) { |
622 | 623 | pm.reject(e); |
623 | 624 | } catch (Exception e) { |
|
0 commit comments