Bug P2
Status Update
Comments
is...@google.com <is...@google.com>
la...@gmail.com <la...@gmail.com> #2
I am not sure I understand the use case. how can the benchmark be code to real world scenario when it's not possible to do right now ? which scenario is it ?
In any case, since this would be for benchmarking, this would clearly not be available through the public DSL. We should find a semi-private way of doing this (maybe the private variant API object could offer that functionality for instance or a property).
Description
Version used:1.1.0-alpha06
Devices/Android versions reproduced on: APEX T10PRO/ android 11 / android build number : T10PRO_V1.0_20230715
I got an error like below when i run the app.
java.lang.RuntimeException: Unable to start activity ComponentInfo{chungchy.elsd.anchor/chungchy.elsd.anchor.MainActivity}: java.security.GeneralSecurityException: Keystore operation failed
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3431)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.security.GeneralSecurityException: Keystore operation failed
at androidx.security.crypto.MasterKeys.generateKey(MasterKeys.java:149)
at androidx.security.crypto.MasterKeys.getOrCreate(MasterKeys.java:100)
at androidx.security.crypto.MasterKey$Builder$Api23Impl.build(MasterKey.java:380)
at androidx.security.crypto.MasterKey$Builder.build(MasterKey.java:320)
at chungchy.elsd.anchor.utils.Security$sharedPreferences$2.invoke(Security.kt:77)
at chungchy.elsd.anchor.utils.Security$sharedPreferences$2.invoke(Security.kt:74)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at chungchy.elsd.anchor.utils.Security.getSharedPreferences(Security.kt:74)
at chungchy.elsd.anchor.MainActivity.onCreate(MainActivity.kt:97)
at chungchy.elsd.anchor.base.BaseActivity.onCreate(BaseActivity.kt:27)
at android.app.Activity.performCreate(Activity.java:8028)
at android.app.Activity.performCreate(Activity.java:8012)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3404)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.security.ProviderException: Keystore operation failed
at android.security.keystore.AndroidKeyStoreKeyGeneratorSpi.engineGenerateKey(AndroidKeyStoreKeyGeneratorSpi.java:331)
at javax.crypto.KeyGenerator.generateKey(KeyGenerator.java:612)
at androidx.security.crypto.MasterKeys.generateKey(MasterKeys.java:145)
at androidx.security.crypto.MasterKeys.getOrCreate(MasterKeys.java:100)
at androidx.security.crypto.MasterKey$Builder$Api23Impl.build(MasterKey.java:380)
at androidx.security.crypto.MasterKey$Builder.build(MasterKey.java:320)
at chungchy.elsd.anchor.utils.Security$sharedPreferences$2.invoke(Security.kt:77)
at chungchy.elsd.anchor.utils.Security$sharedPreferences$2.invoke(Security.kt:74)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at chungchy.elsd.anchor.utils.Security.getSharedPreferences(Security.kt:74)
at chungchy.elsd.anchor.MainActivity.onCreate(MainActivity.kt:97)
at chungchy.elsd.anchor.base.BaseActivity.onCreate(BaseActivity.kt:27)
at android.app.Activity.performCreate(Activity.java:8028)
at android.app.Activity.performCreate(Activity.java:8012)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3404)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: android.security.KeyStoreException: Unknown error
at android.security.KeyStore.getKeyStoreException(KeyStore.java:1301)
at android.security.keystore.AndroidKeyStoreKeyGeneratorSpi.engineGenerateKey(AndroidKeyStoreKeyGeneratorSpi.java:331)
at javax.crypto.KeyGenerator.generateKey(KeyGenerator.java:612)
at androidx.security.crypto.MasterKeys.generateKey(MasterKeys.java:145)
at androidx.security.crypto.MasterKeys.getOrCreate(MasterKeys.java:100)
at androidx.security.crypto.MasterKey$Builder$Api23Impl.build(MasterKey.java:380)
at androidx.security.crypto.MasterKey$Builder.build(MasterKey.java:320)
at chungchy.elsd.anchor.utils.Security$sharedPreferences$2.invoke(Security.kt:77)
at chungchy.elsd.anchor.utils.Security$sharedPreferences$2.invoke(Security.kt:74)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at chungchy.elsd.anchor.utils.Security.getSharedPreferences(Security.kt:74)
at chungchy.elsd.anchor.MainActivity.onCreate(MainActivity.kt:97)
at chungchy.elsd.anchor.base.BaseActivity.onCreate(BaseActivity.kt:27)
at android.app.Activity.performCreate(Activity.java:8028)
at android.app.Activity.performCreate(Activity.java:8012)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3404)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7660)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
and this is my source code for masterkey.
val sharedPreferences: SharedPreferences by lazy {
val masterKey = MasterKey.Builder(ctx)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
EncryptedSharedPreferences.create(ctx,
"security_key",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
}