我试着遵循这里给出的例子:https://developer.android.com/topic/security/data
我已经在我的gradle中包含了所需的库:
implementation "androidx.security:security-crypto:1.0.0"
// For Identity Credential APIs
implementation "androidx.security:security-identity-credential:1.0.0-alpha02"
但当我尝试使用代码时:
val mainKey = MasterKey.Builder(applicationContext)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
我得到未解析的引用:MasterKey错误。库中有该类吗?
先谢了。
3条答案
按热度按时间4c8rllxm1#
将库升级到最新版本(撰写本文时为1.1.0-alpha 03)
版本1.1.0-alpha 01中添加了release note和
MasterKey
。deikduxw2#
利用杰恒的一个勾手...
MasterKey API是从
security-crypto
的1.1.0-alpha01
版本添加到androidx.security
包中的(您可以访问此库here的版本)。如果您应用solution informed by Jie Heng,您将获得成功。
但如果您正在开发的Android项目支持Android API 23(又名Android棉花糖或Android 6)...
应该毫无问题地接受的东西,完全如official documentation中所述。显示如何使用
EncryptedSharedPreferences
和EncryptedFile
API的文档...如果您将
minSdkVersion
设置为23
,那么您将注意到该项目甚至不会编译。那是我的案子!
我工作的项目支持从Android API级别23.
所以我把它转换成了:
而且项目运行顺利,包括在Android API 23上(在AVD API 23上)。
**注意:**另一个选择是使用MasterKeys API而不是
MasterKey
。但请注意,MasterKeys
已过时。ux6nzvsh3#
只要使用
val mainKey = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
就可以了。MasterKey只在alpha上,所以将MasterKey标记为弃用似乎为时过早。