From 683cde5a8b8fa9f0fe1c99039c44a443d525f217 Mon Sep 17 00:00:00 2001 From: Philipp Crocoll Date: Tue, 5 Nov 2019 20:55:02 +0100 Subject: [PATCH] update targetSdkVersion to 29 (Android 10/Q). Change canvas clipping in Soft keyboard to adhere to behavior changes in Android 10. Migrate to AndroidX. Migrate to using BiometricPrompt instead of FingerprintManager, keeping compatibility to SamsungPass API for devices like SGS5. Closes #795, should close #626, closes #910 --- .../Additions/AboutAdditions.txt | 48 ++ src/BiometricBinding/BiometricBinding.csproj | 70 +++ src/BiometricBinding/Jars/AboutJars.txt | 24 + .../Jars/biometric-1.0.0-rc02.aar | Bin 0 -> 162758 bytes .../Properties/AssemblyInfo.cs | 30 + .../Transforms/EnumFields.xml | 14 + .../Transforms/EnumMethods.xml | 13 + src/BiometricBinding/Transforms/Metadata.xml | 9 + src/KeePass.sln | 30 +- .../softkeyboard/LatinKeyboardBaseView.java | 7 +- src/keepass2android/BiometricModule.cs | 549 ++++++++++++++++++ .../CloseImmediatelyActivity.cs | 2 +- .../ConfigureChildDatabasesActivity.cs | 2 +- src/keepass2android/CreateDatabaseActivity.cs | 2 +- .../FileStorageSelectionActivity.cs | 4 +- src/keepass2android/FingerprintModule.cs | 472 --------------- .../FingerprintSamsungIdentifier.cs | 36 +- .../FingerprintSetupActivity.cs | 107 ++-- src/keepass2android/GroupBaseActivity.cs | 6 +- src/keepass2android/LifecycleAwareActivity.cs | 4 +- .../NoSecureDisplayActivity.cs | 4 +- src/keepass2android/PasswordActivity.cs | 89 +-- .../Properties/AndroidManifest_debug.xml | 1 + .../Properties/AndroidManifest_nonet.xml | 2 + src/keepass2android/QuickUnlock.cs | 158 +++-- .../Resources/layout/QuickUnlock.xml | 2 +- .../Resources/layout/config_child_db.xml | 2 +- .../layout/filestorage_selection.xml | 2 +- .../layout/no_secure_display_layout.axml | 2 +- .../Resources/layout/open_db_selection.xml | 2 +- .../Resources/layout/password.xml | 2 +- .../Resources/layout/toolbar.axml | 2 +- .../SelectCurrentDbActivity.cs | 4 +- src/keepass2android/SetPasswordDialog.cs | 2 +- .../fileselect/FileSelectActivity.cs | 2 +- src/keepass2android/keepass2android.csproj | 18 +- .../ChooseForAutofillActivityBase.cs | 2 +- .../settings/AppSettingsActivity.cs | 2 +- .../settings/DatabaseSettingsActivity.cs | 2 +- 39 files changed, 1007 insertions(+), 722 deletions(-) create mode 100644 src/BiometricBinding/Additions/AboutAdditions.txt create mode 100644 src/BiometricBinding/BiometricBinding.csproj create mode 100644 src/BiometricBinding/Jars/AboutJars.txt create mode 100644 src/BiometricBinding/Jars/biometric-1.0.0-rc02.aar create mode 100644 src/BiometricBinding/Properties/AssemblyInfo.cs create mode 100644 src/BiometricBinding/Transforms/EnumFields.xml create mode 100644 src/BiometricBinding/Transforms/EnumMethods.xml create mode 100644 src/BiometricBinding/Transforms/Metadata.xml create mode 100644 src/keepass2android/BiometricModule.cs delete mode 100644 src/keepass2android/FingerprintModule.cs diff --git a/src/BiometricBinding/Additions/AboutAdditions.txt b/src/BiometricBinding/Additions/AboutAdditions.txt new file mode 100644 index 00000000..c2403076 --- /dev/null +++ b/src/BiometricBinding/Additions/AboutAdditions.txt @@ -0,0 +1,48 @@ +Additions allow you to add arbitrary C# to the generated classes +before they are compiled. This can be helpful for providing convenience +methods or adding pure C# classes. + +== Adding Methods to Generated Classes == + +Let's say the library being bound has a Rectangle class with a constructor +that takes an x and y position, and a width and length size. It will look like +this: + +public partial class Rectangle +{ + public Rectangle (int x, int y, int width, int height) + { + // JNI bindings + } +} + +Imagine we want to add a constructor to this class that takes a Point and +Size structure instead of 4 ints. We can add a new file called Rectangle.cs +with a partial class containing our new method: + +public partial class Rectangle +{ + public Rectangle (Point location, Size size) : + this (location.X, location.Y, size.Width, size.Height) + { + } +} + +At compile time, the additions class will be added to the generated class +and the final assembly will a Rectangle class with both constructors. + + +== Adding C# Classes == + +Another thing that can be done is adding fully C# managed classes to the +generated library. In the above example, let's assume that there isn't a +Point class available in Java or our library. The one we create doesn't need +to interact with Java, so we'll create it like a normal class in C#. + +By adding a Point.cs file with this class, it will end up in the binding library: + +public class Point +{ + public int X { get; set; } + public int Y { get; set; } +} \ No newline at end of file diff --git a/src/BiometricBinding/BiometricBinding.csproj b/src/BiometricBinding/BiometricBinding.csproj new file mode 100644 index 00000000..b92aa63b --- /dev/null +++ b/src/BiometricBinding/BiometricBinding.csproj @@ -0,0 +1,70 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4} + {10368E6C-D01B-4462-8E8B-01FC667A7035};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {77efb91c-a7e9-4b0e-a7c5-31eeec3c6d46} + Library + Properties + BiometricBinding + BiometricBinding + 512 + false + v10.0 + class-parse + XAJavaInterop1 + PackageReference + + + true + portable + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + portable + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + 1.0.0-preview02 + + + + + \ No newline at end of file diff --git a/src/BiometricBinding/Jars/AboutJars.txt b/src/BiometricBinding/Jars/AboutJars.txt new file mode 100644 index 00000000..c359b62f --- /dev/null +++ b/src/BiometricBinding/Jars/AboutJars.txt @@ -0,0 +1,24 @@ +This directory is for Android .jars. + +There are 2 types of jars that are supported: + +== Input Jar == + +This is the jar that bindings should be generated for. + +For example, if you were binding the Google Maps library, this would +be Google's "maps.jar". + +Set the build action for these jars in the properties page to "InputJar". + + +== Reference Jars == + +These are jars that are referenced by the input jar. C# bindings will +not be created for these jars. These jars will be used to resolve +types used by the input jar. + +NOTE: Do not add "android.jar" as a reference jar. It will be added automatically +based on the Target Framework selected. + +Set the build action for these jars in the properties page to "ReferenceJar". \ No newline at end of file diff --git a/src/BiometricBinding/Jars/biometric-1.0.0-rc02.aar b/src/BiometricBinding/Jars/biometric-1.0.0-rc02.aar new file mode 100644 index 0000000000000000000000000000000000000000..128ee2c821afb80f97d49c0c6333bd74ffd982d5 GIT binary patch literal 162758 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 h$?|tCG1#E3X+)c;>eWlDpH}})7X37y{ + + \ No newline at end of file diff --git a/src/BiometricBinding/Transforms/EnumMethods.xml b/src/BiometricBinding/Transforms/EnumMethods.xml new file mode 100644 index 00000000..49216c61 --- /dev/null +++ b/src/BiometricBinding/Transforms/EnumMethods.xml @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/BiometricBinding/Transforms/Metadata.xml b/src/BiometricBinding/Transforms/Metadata.xml new file mode 100644 index 00000000..91493a25 --- /dev/null +++ b/src/BiometricBinding/Transforms/Metadata.xml @@ -0,0 +1,9 @@ + + + diff --git a/src/KeePass.sln b/src/KeePass.sln index da7c6ee4..652a3fb4 100644 --- a/src/KeePass.sln +++ b/src/KeePass.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2009 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29418.71 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeePassLib2Android", "KeePassLib2Android\KeePassLib2Android.csproj", "{545B4A6B-8BBA-4FBE-92FC-4AC060122A54}" EndProject @@ -29,6 +29,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SamsungPass", "SamsungPass\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PCloudBindings", "PCloudBindings\PCloudBindings.csproj", "{2DB80C77-D46F-4970-B967-E9FFA9B2AC2E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BiometricBinding", "BiometricBinding\BiometricBinding.csproj", "{2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -315,6 +317,30 @@ Global {2DB80C77-D46F-4970-B967-E9FFA9B2AC2E}.ReleaseNoNet|Win32.Build.0 = ReleaseNoNet|Any CPU {2DB80C77-D46F-4970-B967-E9FFA9B2AC2E}.ReleaseNoNet|x64.ActiveCfg = ReleaseNoNet|Any CPU {2DB80C77-D46F-4970-B967-E9FFA9B2AC2E}.ReleaseNoNet|x64.Build.0 = ReleaseNoNet|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|Win32.ActiveCfg = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|Win32.Build.0 = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|x64.ActiveCfg = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Debug|x64.Build.0 = Debug|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|Any CPU.Build.0 = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|Win32.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|Win32.Build.0 = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|x64.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.Release|x64.Build.0 = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|Any CPU.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|Any CPU.Build.0 = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|Mixed Platforms.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|Mixed Platforms.Build.0 = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|Win32.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|Win32.Build.0 = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|x64.ActiveCfg = Release|Any CPU + {2B1DE455-BF8E-4F8A-87BE-AE7EA354F3E4}.ReleaseNoNet|x64.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/softkeyboard/LatinKeyboardBaseView.java b/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/softkeyboard/LatinKeyboardBaseView.java index acad23d0..dc75569b 100644 --- a/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/softkeyboard/LatinKeyboardBaseView.java +++ b/src/java/KP2ASoftkeyboard_AS/app/src/main/java/keepass2android/softkeyboard/LatinKeyboardBaseView.java @@ -26,6 +26,7 @@ import android.graphics.Paint; import android.graphics.Paint.Align; import android.graphics.PorterDuff; import android.graphics.Rect; +import android.graphics.RectF; import android.graphics.Region.Op; import android.graphics.Typeface; import android.graphics.drawable.Drawable; @@ -774,7 +775,9 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx mKeyboardChanged = false; } final Canvas canvas = mCanvas; - canvas.clipRect(mDirtyRect, Op.REPLACE); + canvas.save(); + canvas.clipRect(new RectF(mDirtyRect)); + if (mKeyboard == null) return; @@ -907,6 +910,8 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx } } + canvas.restore(); + mDrawPending = false; mDirtyRect.setEmpty(); } diff --git a/src/keepass2android/BiometricModule.cs b/src/keepass2android/BiometricModule.cs new file mode 100644 index 00000000..7f81a02c --- /dev/null +++ b/src/keepass2android/BiometricModule.cs @@ -0,0 +1,549 @@ +using System; +using Android.Content; +using Javax.Crypto; +using Java.Security; +using Java.Lang; +using Android.Views.InputMethods; +using Android.App; +using Android.OS; +using Android.Security.Keystore; +using Android.Preferences; +using Android.Util; +using Android.Widget; +using Androidx.Biometric; +using AndroidX.Fragment.App; +using Java.IO; +using Java.Security.Cert; +using Java.Util.Concurrent; +using Javax.Crypto.Spec; +using Exception = System.Exception; +using File = System.IO.File; + +namespace keepass2android +{ + + public static class Kp2aLog + { + private static bool? _logToFile; + + private static object _fileLocker = new object(); + + public static void Log(string message) + { + if (message != null) + Android.Util.Log.Debug("KP2A", message); + if (LogToFile) + { + lock (_fileLocker) + { + try + { + using (var streamWriter = System.IO.File.AppendText(LogFilename)) + { + string stringToLog = DateTime.Now + ":" + DateTime.Now.Millisecond + " -- " + message; + streamWriter.WriteLine(stringToLog); + } + } + catch (Exception e) + { + Android.Util.Log.Debug("KP2A", "Couldn't write to log file. " + e); + } + } + + } + + } + + private static string LogFilename + { + get { return Application.Context.FilesDir.CanonicalPath + "/keepass2android.log"; } + } + + private static bool LogToFile + { + get + { + if (_logToFile == null) + _logToFile = System.IO.File.Exists(LogFilename); + return (bool)_logToFile; + } + } + public static event EventHandler OnUnexpectedError; + + public static void LogUnexpectedError(Exception exception) + { + Log(exception.ToString()); + if (OnUnexpectedError != null) + OnUnexpectedError(null, exception); + } + + public static void CreateLogFile() + { + if (!System.IO.File.Exists(LogFilename)) + { + System.IO.File.Create(LogFilename).Dispose(); + _logToFile = true; + } + + + } + + public static void FinishLogFile() + { + if (System.IO.File.Exists(LogFilename)) + { + _logToFile = false; + int count = 0; + while (System.IO.File.Exists(LogFilename + "." + count)) + count++; + System.IO.File.Move(LogFilename, LogFilename + "." + count); + + } + + } + + public static void SendLog(Context ctx) + { + if (!System.IO.File.Exists(LogFilename)) + return; + Intent sendIntent = new Intent(); + sendIntent.SetAction(Intent.ActionSend); + sendIntent.PutExtra(Intent.ExtraText, File.ReadAllText(LogFilename)); + sendIntent.PutExtra(Intent.ExtraEmail, "crocoapps@gmail.com"); + sendIntent.PutExtra(Intent.ExtraSubject, "Keepass2Android log"); + sendIntent.SetType("text/plain"); + ctx.StartActivity(Intent.CreateChooser(sendIntent, "Send log to...")); + } + } + public interface IBiometricAuthCallback + { + void OnBiometricAuthSucceeded(); + void OnBiometricError(string toString); + } + + public class BiometricModule + { + public AndroidX.Fragment.App.FragmentActivity Activity { get; set; } + + public BiometricModule(AndroidX.Fragment.App.FragmentActivity activity) + { + Activity = activity; + } + + + public KeyguardManager KeyguardManager + { + get + { + return (KeyguardManager)Activity.GetSystemService("keyguard"); + } + } + + + public KeyStore Keystore + { + get + { + try + { + return KeyStore.GetInstance("AndroidKeyStore"); + } + catch (KeyStoreException e) + { + throw new RuntimeException("Failed to get an instance of KeyStore", e); + } + } + } + + public KeyGenerator KeyGenerator + { + get + { + try + { + return KeyGenerator.GetInstance(KeyProperties.KeyAlgorithmAes, "AndroidKeyStore"); + } + catch (NoSuchAlgorithmException e) + { + throw new RuntimeException("Failed to get an instance of KeyGenerator", e); + } + catch (NoSuchProviderException e) + { + throw new RuntimeException("Failed to get an instance of KeyGenerator", e); + } + } + } + + public Cipher Cipher + { + get + { + try + { + return Cipher.GetInstance(KeyProperties.KeyAlgorithmAes + "/" + + KeyProperties.BlockModeCbc + "/" + + KeyProperties.EncryptionPaddingPkcs7); + } + catch (NoSuchAlgorithmException e) + { + throw new RuntimeException("Failed to get an instance of Cipher", e); + } + catch (NoSuchPaddingException e) + { + throw new RuntimeException("Failed to get an instance of Cipher", e); + } + } + } + + public ISharedPreferences SharedPreferences + { + get { return PreferenceManager.GetDefaultSharedPreferences(Activity); } + } + + public bool IsAvailable + { + get + { + return BiometricManager.From(Activity).CanAuthenticate() == + BiometricManager.BiometricSuccess; + } + } + + public bool IsHardwareAvailable + { + get + { + var result = BiometricManager.From(Activity).CanAuthenticate(); + return result == BiometricManager.BiometricSuccess + || result == BiometricManager.BiometricErrorNoneEnrolled; + } + } + } + + public abstract class BiometricCrypt : IBiometricIdentifier + { + protected const string FailedToInitCipher = "Failed to init Cipher"; + + protected readonly string _keyId; + + protected Cipher _cipher; + private CancellationSignal _cancellationSignal; + protected BiometricPrompt.CryptoObject _cryptoObject; + + protected KeyStore _keystore; + + private BiometricPrompt _biometricPrompt; + private FragmentActivity _activity; + + public BiometricCrypt(BiometricModule biometric, string keyId) + { + Kp2aLog.Log("FP: Create " + this.GetType().Name); + _keyId = keyId; + _cipher = biometric.Cipher; + _keystore = biometric.Keystore; + _activity = biometric.Activity; + + + + } + + public abstract bool Init(); + + + protected static string GetAlias(string keyId) + { + return "keepass2android." + keyId; + } + protected static string GetIvPrefKey(string prefKey) + { + return prefKey + "_iv"; + } + + public void StartListening(IBiometricAuthCallback callback) + { + + StartListening(new BiometricAuthCallbackAdapter(callback, _activity)); + } + + public void StopListening() + { + + } + + public bool HasUserInterface + { + get { return true; } + + } + + public void StartListening(BiometricPrompt.AuthenticationCallback callback) + { + + Kp2aLog.Log("Fingerprint: StartListening "); + + var executor = Executors.NewSingleThreadExecutor(); + _biometricPrompt = new Androidx.Biometric.BiometricPrompt(_activity, executor, callback); + + BiometricPrompt.PromptInfo promptInfo = new BiometricPrompt.PromptInfo.Builder() + .SetTitle(_activity.GetString(AppNames.AppNameResource)) + .SetSubtitle(_activity.GetString(Resource.String.unlock_database_title)) + .SetNegativeButtonText(_activity.GetString(Android.Resource.String.Cancel)) + .Build(); + + + _biometricPrompt.Authenticate(promptInfo, _cryptoObject); + + } + + public string Encrypt(string textToEncrypt) + { + Kp2aLog.Log("FP: Encrypting"); + return Base64.EncodeToString(_cipher.DoFinal(System.Text.Encoding.UTF8.GetBytes(textToEncrypt)), 0); + } + + + public void StoreEncrypted(string textToEncrypt, string prefKey, Context context) + { + var edit = PreferenceManager.GetDefaultSharedPreferences(context).Edit(); + StoreEncrypted(textToEncrypt, prefKey, edit); + edit.Commit(); + } + + public void StoreEncrypted(string textToEncrypt, string prefKey, ISharedPreferencesEditor edit) + { + edit.PutString(prefKey, Encrypt(textToEncrypt)); + edit.PutString(GetIvPrefKey(prefKey), Base64.EncodeToString(CipherIv, 0)); + + } + + + private byte[] CipherIv + { + get { return _cipher.GetIV(); } + } + } + + public interface IBiometricIdentifier + { + bool Init(); + void StartListening(IBiometricAuthCallback callback); + + void StopListening(); + bool HasUserInterface { get; } + } + + public class BiometricDecryption : BiometricCrypt + { + private readonly Context _context; + private readonly byte[] _iv; + + + public BiometricDecryption(BiometricModule biometric, string keyId, byte[] iv) : base(biometric, keyId) + { + _iv = iv; + } + + public BiometricDecryption(BiometricModule biometric, string keyId, Context context, string prefKey) + : base(biometric, keyId) + { + _context = context; + _iv = Base64.Decode(PreferenceManager.GetDefaultSharedPreferences(context).GetString(GetIvPrefKey(prefKey), null), 0); + } + + public static bool IsSetUp(Context context, string prefKey) + { + return PreferenceManager.GetDefaultSharedPreferences(context).GetString(GetIvPrefKey(prefKey), null) != null; + } + + public override bool Init() + { + Kp2aLog.Log("FP: Init for Dec"); + try + { + _keystore.Load(null); + var key = _keystore.GetKey(GetAlias(_keyId), null); + var ivParams = new IvParameterSpec(_iv); + _cipher.Init(CipherMode.DecryptMode, key, ivParams); + + _cryptoObject = new BiometricPrompt.CryptoObject(_cipher); + return true; + } + catch (KeyPermanentlyInvalidatedException e) + { + Kp2aLog.Log("FP: KeyPermanentlyInvalidatedException." + e.ToString()); + return false; + } + catch (KeyStoreException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (CertificateException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (UnrecoverableKeyException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (IOException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (NoSuchAlgorithmException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (InvalidKeyException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + } + + + public string Decrypt(string encryted) + { + Kp2aLog.Log("FP: Decrypting "); + byte[] encryptedBytes = Base64.Decode(encryted, 0); + return System.Text.Encoding.UTF8.GetString(_cipher.DoFinal(encryptedBytes)); + } + + public string DecryptStored(string prefKey) + { + string enc = PreferenceManager.GetDefaultSharedPreferences(_context).GetString(prefKey, null); + return Decrypt(enc); + } + } + + public class BiometricEncryption : BiometricCrypt + { + + private KeyGenerator _keyGen; + + + public BiometricEncryption(BiometricModule biometric, string keyId) : + base(biometric, keyId) + { + _keyGen = biometric.KeyGenerator; + Kp2aLog.Log("FP: CreateKey "); + CreateKey(); + } + + + /// + /// Creates a symmetric key in the Android Key Store which can only be used after the user + /// has authenticated with biometry. + /// + private void CreateKey() + { + try + { + _keystore.Load(null); + _keyGen.Init(new KeyGenParameterSpec.Builder(GetAlias(_keyId), + KeyStorePurpose.Encrypt | KeyStorePurpose.Decrypt) + .SetBlockModes(KeyProperties.BlockModeCbc) + // Require the user to authenticate with biometry to authorize every use + // of the key + .SetEncryptionPaddings(KeyProperties.EncryptionPaddingPkcs7) + .SetUserAuthenticationRequired(true) + + .Build()); + _keyGen.GenerateKey(); + } + catch (NoSuchAlgorithmException e) + { + throw new RuntimeException(e); + } + catch (InvalidAlgorithmParameterException e) + { + throw new RuntimeException(e); + } + catch (CertificateException e) + { + throw new RuntimeException(e); + } + catch (IOException e) + { + throw new RuntimeException(e); + } + catch (System.Exception e) + { + Kp2aLog.LogUnexpectedError(e); + } + } + + public override bool Init() + { + Kp2aLog.Log("FP: Init for Enc "); + try + { + _keystore.Load(null); + var key = _keystore.GetKey(GetAlias(_keyId), null); + _cipher.Init(CipherMode.EncryptMode, key); + + _cryptoObject = new BiometricPrompt.CryptoObject(_cipher); + return true; + } + catch (KeyPermanentlyInvalidatedException) + { + return false; + } + catch (KeyStoreException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (CertificateException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (UnrecoverableKeyException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (IOException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (NoSuchAlgorithmException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + catch (InvalidKeyException e) + { + throw new RuntimeException(FailedToInitCipher, e); + } + } + + } + + public class BiometricAuthCallbackAdapter : BiometricPrompt.AuthenticationCallback + { + private readonly IBiometricAuthCallback _callback; + private readonly Context _context; + + public BiometricAuthCallbackAdapter(IBiometricAuthCallback callback, Context context) + { + _callback = callback; + _context = context; + } + + + public override void OnAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) + { + new Handler(Looper.MainLooper).Post(() => _callback.OnBiometricAuthSucceeded()); + } + + public override void OnAuthenticationError(int errorCode, ICharSequence errString) + { + + new Handler(Looper.MainLooper).Post(() => _callback.OnBiometricError(errString.ToString())); + } + + + public override void OnAuthenticationFailed() + { + new Handler(Looper.MainLooper).Post(() => _callback.OnBiometricError(_context.Resources.GetString(Resource.String.fingerprint_not_recognized))); + } + + } + +} \ No newline at end of file diff --git a/src/keepass2android/CloseImmediatelyActivity.cs b/src/keepass2android/CloseImmediatelyActivity.cs index 5a047923..1d7baac1 100644 --- a/src/keepass2android/CloseImmediatelyActivity.cs +++ b/src/keepass2android/CloseImmediatelyActivity.cs @@ -15,7 +15,7 @@ using Android.Widget; namespace keepass2android { [Activity(Label = AppNames.AppName, Theme = "@style/MyTheme_ActionBar", ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.Keyboard | ConfigChanges.KeyboardHidden)] - public class CloseImmediatelyActivity : AppCompatActivity + public class CloseImmediatelyActivity : AndroidX.AppCompat.App.AppCompatActivity { protected override void OnResume() { diff --git a/src/keepass2android/ConfigureChildDatabasesActivity.cs b/src/keepass2android/ConfigureChildDatabasesActivity.cs index a80132dd..4c2800ee 100644 --- a/src/keepass2android/ConfigureChildDatabasesActivity.cs +++ b/src/keepass2android/ConfigureChildDatabasesActivity.cs @@ -284,7 +284,7 @@ namespace keepass2android var listView = FindViewById(Android.Resource.Id.List); listView.Adapter = _adapter; - SetSupportActionBar(FindViewById(Resource.Id.mytoolbar)); + SetSupportActionBar(FindViewById(Resource.Id.mytoolbar)); FindViewById