· 5 years ago · Sep 14, 2020, 09:52 AM
1private fun secureStorageNotSupported(): Boolean {
2 val keystore = KeyStore.getInstance("AndroidKeyStore").apply {
3 load(null)
4 }
5
6 val testKey: SecretKey = KeyGenerator.getInstance("AES", "AndroidKeyStore").apply {
7 val builder = KeyGenParameterSpec.Builder(
8 "test_key", KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
9 )
10
11 init(builder.build())
12 }.generateKey()
13
14 val keyInfo = SecretKeyFactory
15 .getInstance(testKey.algorithm, "AndroidKeyStore")
16 .getKeySpec(testKey, KeyInfo::class.java) as KeyInfo
17
18 return !keyInfo.isInsideSecureHardware.also {
19 try {
20 keystore.deleteEntry("test_key")
21 } catch (e: Exception) {
22 e.printStackTrace()
23 }
24 }
25 }