diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java index 324b9f5a..3a46733a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/AuthActivity.java @@ -39,7 +39,7 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C private SlotList _slots; private FingerprintUiHelper _fingerHelper; - private Cipher _fingerCipher; + private FingerprintManager.CryptoObject _fingerCryptoObj; @Override protected void onCreate(Bundle savedInstanceState) { @@ -84,7 +84,8 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C invalidated = true; continue; } - _fingerCipher = slot.createDecryptCipher(key); + Cipher cipher = slot.createDecryptCipher(key); + _fingerCryptoObj = new FingerprintManager.CryptoObject(cipher); _fingerHelper = new FingerprintUiHelper(manager, imgFingerprint, textFingerprint, this); boxFingerprint.setVisibility(View.VISIBLE); invalidated = false; @@ -142,7 +143,7 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C super.onResume(); if (_fingerHelper != null) { - _fingerHelper.startListening(new FingerprintManager.CryptoObject(_fingerCipher)); + _fingerHelper.startListening(_fingerCryptoObj); } } @@ -157,7 +158,7 @@ public class AuthActivity extends AegisActivity implements FingerprintUiHelper.C @Override public void onAuthenticated() { - trySlots(FingerprintSlot.class, _fingerCipher); + trySlots(FingerprintSlot.class, _fingerCryptoObj.getCipher()); } @Override diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/Dialogs.java b/app/src/main/java/com/beemdevelopment/aegis/ui/Dialogs.java index bdba9542..aa8dac6c 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/Dialogs.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/Dialogs.java @@ -178,7 +178,7 @@ public class Dialogs { TextView textFingerprint = view.findViewById(R.id.text_fingerprint); SwirlView imgFingerprint = view.findViewById(R.id.img_fingerprint); - Cipher cipher; + FingerprintManager.CryptoObject obj; FingerprintSlot slot; final AtomicReference helper = new AtomicReference<>(); FingerprintManager manager = FingerprintHelper.getManager(activity); @@ -186,7 +186,8 @@ public class Dialogs { try { slot = new FingerprintSlot(); SecretKey key = new KeyStoreHandle().generateKey(slot.getUUID().toString()); - cipher = Slot.createEncryptCipher(key); + Cipher cipher = Slot.createEncryptCipher(key); + obj = new FingerprintManager.CryptoObject(cipher); } catch (KeyStoreHandleException | SlotException e) { throw new RuntimeException(e); } @@ -203,7 +204,7 @@ public class Dialogs { helper.set(new FingerprintUiHelper(manager, imgFingerprint, textFingerprint, new FingerprintUiHelper.Callback() { @Override public void onAuthenticated() { - listener.onSlotResult(slot, cipher); + listener.onSlotResult(slot, obj.getCipher()); dialog.dismiss(); } @@ -213,7 +214,7 @@ public class Dialogs { } })); - helper.get().startListening(new FingerprintManager.CryptoObject(cipher)); + helper.get().startListening(obj); showSecureDialog(dialog); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/CustomAuthenticatedSlide.java b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/CustomAuthenticatedSlide.java index 5ad075e3..10a26d46 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/slides/CustomAuthenticatedSlide.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/slides/CustomAuthenticatedSlide.java @@ -41,7 +41,7 @@ public class CustomAuthenticatedSlide extends Fragment implements FingerprintUiH private FingerprintUiHelper _fingerHelper; private KeyStoreHandle _storeHandle; private FingerprintSlot _fingerSlot; - private Cipher _fingerCipher; + private FingerprintManager.CryptoObject _fingerCryptoObj; private boolean _fingerAuthenticated; @Override @@ -71,7 +71,7 @@ public class CustomAuthenticatedSlide extends Fragment implements FingerprintUiH } public Cipher getFingerCipher() { - return _fingerCipher; + return _fingerCryptoObj.getCipher(); } public FingerprintSlot getFingerSlot() { @@ -111,11 +111,12 @@ public class CustomAuthenticatedSlide extends Fragment implements FingerprintUiH } try { - _fingerCipher = Slot.createEncryptCipher(key); + Cipher cipher = Slot.createEncryptCipher(key); + _fingerCryptoObj = new FingerprintManager.CryptoObject(cipher); } catch (Exception e) { throw new RuntimeException(e); } - _fingerHelper.startListening(new FingerprintManager.CryptoObject(_fingerCipher)); + _fingerHelper.startListening(_fingerCryptoObj); break; default: throw new RuntimeException();