· 5 years ago · Sep 07, 2020, 10:58 AM
1 private fun hasHardwareBackedSupport(): Boolean {
2 val testKey: SecretKey = KeyGenerator.getInstance("AES", "AndroidKeyStore").apply {
3 val builder = KeyGenParameterSpec.Builder(
4 "key1", KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
5 )
6
7 init(builder.build())
8 }.generateKey()
9
10 val keyInfo = SecretKeyFactory
11 .getInstance(testKey.algorithm, "AndroidKeyStore")
12 .getKeySpec(testKey, KeyInfo::class.java) as KeyInfo
13
14 return keyInfo.isInsideSecureHardware
15 }