Open Vencode opened 3 years ago
Secure storage SetAsync throwing an exception when called on Android Api 21
Data is securely stored
Exception is throwned
[0:] Java.Security.InvalidKeyException: Unsupported key size: 24 bytes (must be 16 or 32) at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue args) [0x0008e] in <42748fcc36b74733af2d9940a8f3cc8e>:0 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue parameters) [0x0001f] in <42748fcc36b74733af2d9940a8f3cc8e>:0 at Javax.Crypto.Cipher.Init (Javax.Crypto.CipherMode opmode, Java.Security.IKey key, Java.Security.Spec.IAlgorithmParameterSpec params) [0x00069] in /Users/builder/azdo/_work/287/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-28/mcw/Javax.Crypto.Cipher.cs:508 at Xamarin.Essentials.AndroidKeyStore.Encrypt (System.String data) [0x00025] in d:\a\1\s\Xamarin.Essentials\SecureStorage\SecureStorage.android.cs:335 at Xamarin.Essentials.SecureStorage.PlatformSetAsync (System.String key, System.String data) [0x00029] in d:\a\1\s\Xamarin.Essentials\SecureStorage\SecureStorage.android.cs:85 at Xamarin.Essentials.SecureStorage.SetAsync (System.String key, System.String value) [0x00021] in d:\a\1\s\Xamarin.Essentials\SecureStorage\SecureStorage.shared.cs:27
I'm experiencing the same issue on the same versions
ProviderInstaller.InstallIfNeeded(this);
Was the cause of the issue on Android 5.1.1 for me. Maybe it helps you.
Description
Secure storage SetAsync throwing an exception when called on Android Api 21
Steps to Reproduce
Expected Behavior
Data is securely stored
Actual Behavior
Exception is throwned
Basic Information
Error
[0:] Java.Security.InvalidKeyException: Unsupported key size: 24 bytes (must be 16 or 32) at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue args) [0x0008e] in <42748fcc36b74733af2d9940a8f3cc8e>:0 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualVoidMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue parameters) [0x0001f] in <42748fcc36b74733af2d9940a8f3cc8e>:0 at Javax.Crypto.Cipher.Init (Javax.Crypto.CipherMode opmode, Java.Security.IKey key, Java.Security.Spec.IAlgorithmParameterSpec params) [0x00069] in /Users/builder/azdo/_work/287/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-28/mcw/Javax.Crypto.Cipher.cs:508 at Xamarin.Essentials.AndroidKeyStore.Encrypt (System.String data) [0x00025] in d:\a\1\s\Xamarin.Essentials\SecureStorage\SecureStorage.android.cs:335 at Xamarin.Essentials.SecureStorage.PlatformSetAsync (System.String key, System.String data) [0x00029] in d:\a\1\s\Xamarin.Essentials\SecureStorage\SecureStorage.android.cs:85 at Xamarin.Essentials.SecureStorage.SetAsync (System.String key, System.String value) [0x00021] in d:\a\1\s\Xamarin.Essentials\SecureStorage\SecureStorage.shared.cs:27