security变更说明
cl.security.1 通用密钥库SystemCapability变更
访问级别
公开接口。
变更原因
通用密钥库为了满足未来mini平台算法能力扩展诉求,将加解密算法相关TAG的SystemCapability由SystemCapability.Security.Huks.Extension调整为SystemCapability.Security.Huks.Core。且由于mini平台算法能力较弱,部分算法当前返回不支持,待后续扩展。
变更影响
该变更为不兼容变更。
对接口所属的SystemCapability进行调整,对接口本身的使用方式无影响。
变更前:
相关接口的系统能力要求为“SystemCapability.Security.Huks.Extension”。判断设备是否支持本次变更涉及算法需使用canIUse("SystemCapability.Security.Huks.Extension")。
变更后:
相关接口的系统能力要求为“SystemCapability.Security.Huks.Core”。判断设备是否支持本次变更涉及算法需改为使用canIUse("SystemCapability.Security.Huks.Core")。
起始 API Level
12
变更发生的版本
从OpenHarmony SDK 5.0.0.39开始。
变更的接口/组件
@ohos.security.huks模块中的加解密算法相关接口。详细接口如下:
| 序号 | 接口名 | 接口说明 |
|---|---|---|
| 1 | huks.importKeyItem | 导入明文密钥 |
| 2 | huks.importWrappedKeyItem | 导入加密密钥 |
| 3 | huks.exportKeyItem | 导出密钥 |
| 4 | huks.getKeyItemProperties | 获取密钥属性 |
| 5 | huks.deleteKey | 删除密钥 |
@ohos.security.huks模块中的相关枚举类型。详细如下:
| 序号 | 枚举名 | 枚举说明 |
|---|---|---|
| 1 | HuksKeyPurpose | 表示密钥用途 |
| 2 | HuksKeyDigest | 表示摘要算法 |
| 3 | HuksKeyPadding | 表示补齐算法 |
| 4 | HuksCipherMode | 表示加密模式 |
| 5 | HuksKeySize | 表示密钥长度 |
| 6 | HuksKeyAlg | 表示密钥使用的算法 |
| 7 | HuksUnwrapSuite | 表示导入加密密钥的算法套件 |
| 8 | HuksKeyStorageType | 表示密钥存储方式 |
| 9 | HuksImportKeyType | 表示导入密钥的密钥类型 |
| 10 | HuksRsaPssSaltLenType | 表示Rsa在签名验签、padding为pss时需指定的salt_len类型 |
| 11 | HuksAuthStorageLevel | 表示生成或导入密钥时,指定该密钥的存储安全等级 |
| 12 | HuksSendType | 表示发送Tag的方式 |
| 13 | HuksTagType | 表示Tag的数据类型 |
HuksTag中的枚举值。详细如下:
| 序号 | 枚举值 | 枚举值说明 |
|---|---|---|
| 1 | HUKS_TAG_DIGEST | 表示摘要算法的Tag |
| 2 | HUKS_TAG_SALT | 表示密钥派生时的盐值 |
| 3 | HUKS_TAG_ITERATION | 表示密钥派生时的迭代次数 |
| 4 | HUKS_TAG_AGREE_ALG | 表示密钥协商时的算法类型 |
| 5 | HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS | 表示密钥协商时的公钥别名 |
| 6 | HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS | 表示密钥协商时的私钥别名 |
| 7 | HUKS_TAG_AGREE_PUBLIC_KEY | 表示密钥协商时的公钥 |
| 8 | HUKS_TAG_DERIVE_KEY_SIZE | 表示派生密钥的大小 |
| 9 | HUKS_TAG_IMPORT_KEY_TYPE | 表示导入的密钥类型 |
| 10 | HUKS_TAG_UNWRAP_ALGORITHM_SUITE | 表示导入加密密钥的套件 |
| 11 | HUKS_TAG_DERIVED_AGREED_KEY_STORAGE_FLAG | 表示派生密钥/协商密钥的存储类型 |
| 12 | HUKS_TAG_RSA_PSS_SALT_LEN_TYPE | 表示rsa_pss_salt_length的类型 |
| 13 | HUKS_TAG_ALL_USERS | 预留 |
| 14 | HUKS_TAG_USER_ID | 表示当前密钥属于哪个userID |
| 15 | HUKS_TAG_NO_AUTH_REQUIRED | 预留 |
| 16 | HUKS_TAG_IS_ALLOWED_WRAP | 预留 |
| 17 | HUKS_TAG_KEY_WRAP_TYPE | 预留 |
| 18 | HUKS_TAG_KEY_ROLE | 预留 |
| 19 | HUKS_TAG_IS_ASYNCHRONIZED | 预留 |
| 20 | HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA | 预留 |
| 21 | HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA | 预留 |
适配指导
SystemCapability.Security.Huks.Core为必选基础能力,SystemCapability.Security.Huks.Extension为可选扩展能力。当前SDK默认定义的device-define都包含SystemCapability.Security.Huks.Core必选能力,因此涉及Universal Keystore组件的功能代码原则上无需适配。但如果代码中涉及调用canIUse()方法对本次变更涉及算法支持情况进行判断,则应修改canIUse()方法传入的SystemCapability,同时参考资料,结合API level判断。
cl.security.2 @ohos.security.cryptoFramework 接口SysCap变更
访问级别
公开接口
变更原因
加解密算法库框架为了灵活适配不同平台,按照算法类型对接口重新划分SysCap。
变更影响
此变更为不兼容变更。
变更前:
加解密算法库框架所有接口的SysCap均是SystemCapability.Security.CryptoFramework。
(1)可以使用canIUse("SystemCapability.Security.CryptoFramework")判断设备是否支持加解密算法库能力。
(2)若自定义设备支持加解密算法库能力能力,只需在设备的能力集配置中配置SystemCapability.Security.CryptoFramework。
变更后:
加解密算法库框架按照算法类型对接口重新划分SysCap,如随机数相关接口SysCap变更为SystemCapability.Security.CryptoFramework.Rand。
(1)应该使用具体的Syscap判断设备的加解密算法库是否支持对应算法,如使用canIUse("SystemCapability.Security.CryptoFramework.Rand")判断设备的加解密算法库能力是否支持随机数能力。
(2)若自定义设备原本就支持加解密算法库能力,则需在设备的能力集配置中添加加解密算法库框架的所有SysCap,具体SysCap名见“变更的接口/组件”。
起始 API Level
12
变更发生版本
从OpenHarmony SDK 5.0.0.39 版本开始。
变更的接口/组件
@ohos.security.cryptoFramework按照算法类型对接口重新划分SysCap,具体划分如下,其中序号为2到11的10个SysCap是新增的:
| 序号 | SysCap名 | SysCap描述 |
|---|---|---|
| 1 | SystemCapability.Security.CryptoFramework | 原有的SysCap,变更后不包含任何算法能力,仅包含公共能力 |
| 2 | SystemCapability.Security.CryptoFramework.Key | 密钥基础类型 |
| 3 | SystemCapability.Security.CryptoFramework.Key.SymKey | 对称密钥 |
| 4 | SystemCapability.Security.CryptoFramework.Key.AsymKey | 非对称密钥 |
| 5 | SystemCapability.Security.CryptoFramework.Signature | 签名验签 |
| 6 | SystemCapability.Security.CryptoFramework.Cipher | 对称、非对称加解密 |
| 7 | SystemCapability.Security.CryptoFramework.KeyAgreement | 密钥协商 |
| 8 | SystemCapability.Security.CryptoFramework.MessageDigest | 消息摘要 |
| 9 | SystemCapability.Security.CryptoFramework.Mac | 消息验证码 |
| 10 | SystemCapability.Security.CryptoFramework.Kdf | 密钥派生 |
| 11 | SystemCapability.Security.CryptoFramework.Rand | 随机数 |
适配指导
(1)判断设备是否支持加解密算法库框架的随机数能力需使用canIUse("SystemCapability.Security.CryptoFramework.Rand"),其他算法类型类似。
(2)若自定义设备的能力集配置文件中包含了SystemCapability.Security.CryptoFramework,则需要添加此次变更新增的10个SysCap。