|
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