Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
XKZJ_WCL
Docs
提交
9201ef8e
D
Docs
项目概览
XKZJ_WCL
/
Docs
与 Fork 源项目一致
Fork自
OpenHarmony / Docs
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
9201ef8e
编写于
4月 03, 2023
作者:
O
openharmony_ci
提交者:
Gitee
4月 03, 2023
浏览文件
操作
浏览文件
下载
差异文件
!16813
https://gitee.com/openharmony/docs/issues/I6SL20
Merge pull request !16813 from 高高阳/master
上级
4b0e471e
1c561586
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
79 addition
and
58 deletion
+79
-58
zh-cn/application-dev/security/huks-appendix.md
zh-cn/application-dev/security/huks-appendix.md
+79
-58
未找到文件。
zh-cn/application-dev/security/huks-appendix.md
浏览文件 @
9201ef8e
# 通用密钥库密码算法规格
## 规格实现范围说明
本文档将说明密钥管理服务规格全景,面向OpenHarmony的厂商适配密钥管理服务规格分为必选规格和可选规格。必选规格为所有厂商均支持的算法规格。而对于可选规格,厂商将基于实际情况决定是否实现,如需使用,请查阅具体厂商提供的说明,确保规格支持再使用。
**建议开发者使用必选规格开发应用,可保证全平台兼容。**
## 支持的算法类型及参数组合
### 导入\生成密钥规格
| 算法
| API级别 | 支持的密钥长度 |
| -------------- | :---------------: | ------------------ |
| AES | 8+ | 128、192、256 |
| RSA | 8+ | 512、768、1024、2048、3072、4096 |
| HMAC | 8+ | 8-1024(含),必须是8的倍数 |
| ECC | 8+ | 224、256、384、521 |
| ED25519 | 8+ | 256 |
| X25519 | 8+ | 256 |
| DSA | 8+ | 8-1024(含),8的倍数 |
| DH | 8+ | 2048、3072、4096 |
| SM2 | 9+ | 256 |
| SM3 | 9+ | 256 |
| SM4 | 9+ | 128 |
### 加密解密
| 算法
| API级别 | 备注 |
| ----------------------- | :----: | ---------------- |
| AES/CBC/NoPadding
<br>
AES/ECB/NoPadding
<br>
AES/CTR/NoPadding
<br>
AES/GCM/NoPadding
<br>
AES/CBC/PKCS7
<br>
AES/ECB/PKCS7 | 8+ | 1. CBC
\E
CB
\C
TR模式IV参数必选
<br>
2. GCM模式下Nonce、AAD、AEAD参数必选 |
| RSA/ECB/NoPadding
<br>
RSA/ECB/PKCS1_V1_5
<br>
RSA/ECB/OAEP | 8+ | |
| SM4/CTR/NoPadding
<br>
SM4/ECB/NoPadding
<br>
SM4/CBC/NoPadding
<br>
SM4/ECB/PKCS7
<br>
SM4/CBC/PKCS7 | 9+ | |
### 签名验签
| 算法 | API级别 | 备注 |
| --------- | :----------: | ----------------- |
| RSA/MD5/PKCS1_V1_5
<br>
RSA/SHA1/PKCS1_V1_5
<br>
RSA/SHA224/PKCS1_V1_5
<br>
RSA/SHA256/PKCS1_V1_5
<br>
RSA/SHA384/PKCS1_V1_5
<br>
RSA/SHA512/PKCS1_V1_5
<br>
RSA/SHA1/PSS
<br>
RSA/SHA224/PSS
<br>
RSA/SHA256/PSS
<br>
RSA/SHA384/PSS | 8+ | |
| RSA/NoDigest/PKCS1_V1_5 | 9+ | |
| DSA/SHA1
<br>
DSA/SHA224
<br>
DSA/SHA256
<br>
DSA/SHA384
<br>
DSA/SHA512 | 8+ | |
| DSA/NoDigest | 9+ | |
| ECC/SHA1
<br>
ECC/SHA224
<br>
ECC/SHA256
<br>
ECC/SHA384
<br>
ECC/SHA512 | 8+ | |
| ECC/NoDigest | 9+ | |
| ED25519/SHA1
<br>
ED25519/SHA224
<br>
ED25519/SHA256
<br>
ED25519/SHA384
<br>
ED25519/SHA512 |8+ | |
| ED25519/NoDigest | 9+ | |
| SM2/SM3
<br>
SM2/NoDigest |9+ | |
### 密钥协商
| 算法
| API级别 | 备注 |
| ------ | :-----------: | ------------------------------ |
| ECDH | 8+ | 协商密钥类型为ECC类型密钥 |
| DH | 8+ | |
| X25519 | 8+ | |
### 密钥派生
| 算法
|API级别 | 派生密钥及长度 | 备注 |
| ------------------------- | :-----------: | ------------ | ----------------- |
| HKDF/SHA256
<br>
HKDF/SHA384
<br>
HKDF/SHA512 | 8+ | 算法:AES、HMAC、SM4 长度:256、384、512 | 派生出的密钥可以存储到HUKS或者直接返回明文 |
| PBKDF2/SHA256
<br>
PBKDF2/SHA384
<br>
PBKDF2/SHA512 | 8+ | 算法:AES、HMAC、SM4 长度:256、384、512 | 派生出的密钥可以存储到HUKS或者直接返回明文 |
| 算法
| API级别 | 支持的密钥长度 |是否必选规格|
| -------------- | :---------------: | ------------------ |:------------------: |
| AES | 8+ | 128、192、256 | 是 |
| RSA | 8+ | 512、768、1024|否|
| RSA | 8+ | 2048、3072、4096 |是|
| HMAC | 8+ | 8-1024(含),必须是8的倍数 |是|
| ECC | 8+ | 224 |否|
| ECC | 8+ | 256、384、521 |是|
| ED25519 | 8+ | 256 |是|
| X25519 | 8+ | 256 |是|
| DSA | 8+ | 8-1024(含),8的倍数 |否|
| DH | 8+ | 2048 |是|
| DH | 8+ | 3072、4096 |否|
| SM2 | 9+ | 256 |是|
| SM4 | 9+ | 128 |是|
### 加密&解密流程算法与分组、填充模式的组合规格
| 算法/分组模式/填充模式
| API级别 | 备注 |是否必选规格|
| ----------------------- | :----: | ---------------- | :----------------: |
| AES/ECB/NoPadding
<br>
AES/ECB/PKCS7 | 8+ | |否|
| AES/CBC/NoPadding
<br>
AES/CBC/PKCS7
<br>
AES/CTR/NoPadding| 8+ | IV参数必选 |是|
| AES/GCM/NoPadding | 8+ | Nonce、AAD、AEAD参数必选 |是|
| RSA/ECB/NoPadding
<br>
RSA/ECB/PKCS1_V1_5
<br>
RSA/ECB/OAEP | 8+ | OAEP填充模式支持的摘要算法:SHA256/SHA384/SHA512 | 是 |
| SM4/ECB/NoPadding
<br>
SM4/ECB/PKCS7
<br>
SM4/CBC/PKCS7 | 9+ | CBC模式下 IV 参数必选 |否 |
| SM4/CTR/NoPadding
<br>
SM4/CBC/NoPadding
<br>
| 9+ | IV 参数必选 |是 |
### 签名&验签流程算法与摘要算法、填充模式的组合规格
| 算法/摘要算法/填充模式 | API级别 | 备注 |是否必选规格|
| --------- | :----------: | ---------- | :-----------------: |
| RSA/MD5/PKCS1_V1_5
<br>
RSA/SHA1/PKCS1_V1_5
<br>
RSA/SHA224/PKCS1_V1_5
<br>
RSA/SHA224/PSS| 8+ | |否|
| RSA/SHA256/PKCS1_V1_5
<br>
RSA/SHA384/PKCS1_V1_5
<br>
RSA/SHA512/PKCS1_V1_5
<br>
RSA/SHA256/PSS
<br>
RSA/SHA384/PSS
<br>
RSA/SHA512/PSS | 8+ | | 是
| RSA/NoDigest/PKCS1_V1_5 | 9+ |NoDigest 需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE |否|
| DSA/SHA1
<br>
DSA/SHA224
<br>
DSA/SHA256
<br>
DSA/SHA384
<br>
DSA/SHA512 | 8+ | |否|
| DSA/NoDigest | 9+ |NoDigest 需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE|否|
| ECC/SHA1
<br>
ECC/SHA224 | 8+ | |否|
| ECC/SHA256
<br>
ECC/SHA384
<br>
ECC/SHA512 | 8+ | |是|
| ECC/NoDigest | 9+ |NoDigest 需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE |否|
| ED25519/NoDigest | 8+ | NoDigest 需要指定TAG HuksKeyDigest.HUKS_DIGEST_NONE |否|
| SM2/SM3|9+ | |是|
| SM2/NoDigest |9+ | |否|
### 密钥协商算法
| 算法
| API级别 | 备注 | 是否必选规格|
| ------ | :-----------: | ------------------------------ |:-----------: |
| ECDH | 8+ | 协商密钥类型为ECC类型密钥 | 是|
| DH | 8+ | |是|
| X25519 | 8+ | |是|
### HMAC 密钥长度与摘要组合规格
| 摘要 | 密钥长度 | API级别 | 是否必选规格|
| ------ | :-----------: |:-----------: |:-----------: |
| SHA256 |192-1024(8的倍数)| 8+ | 是|
| SHA384 |256-1024(8的倍数) | 8+ | 是|
| SHA512 |256-1024(8的倍数)| 8+ | 是|
### 派生算法/摘要组合规格
| 算法/摘要
| 派生密钥的算法/长度
| 派生结果密钥可用算法/长度 | 备注 |API级别 |是否必选规格|
| ----------------- |-------------------------------- | ----------------------- | :------------: |:---------: |:--:|
| HKDF/SHA256 | AES/192-256 | AES/128/192/256
<br>
HMAC/8-1024
<br>
SM4/128 | 派生密钥是业务基于三段式得到密钥会话结果,业务可决定派生密钥是否由HUKS管理(即密钥不出TEE)亦或是业务独立管理 |8+|是|
| HKDF/SHA384 | AES/256 | AES/128/192/256
<br>
HMAC/8-1024
<br>
SM4/128 | 派生密钥是业务基于三段式得到密钥会话结果,业务可决定派生密钥是否由HUKS管理(即密钥不出TEE)亦或是业务独立管理 |8+|是|
|HKDF/SHA512 | AES/256 | AES/128/192/256
<br>
HMAC/8-1024
<br>
SM4/128 | 派生密钥是业务基于三段式得到密钥会话结果,业务可决定派生密钥是否由HUKS管理(即密钥不出TEE)亦或是业务独立管理 |8+|是|
| PBKDF2/SHA256 | AES/192-256 | AES/128/192/256
<br>
HMAC/8-1024
<br>
SM4/128 | 派生密钥是业务基于三段式得到密钥会话结果,业务可决定派生密钥是否由HUKS管理(即密钥不出TEE)亦或是业务独立管理 |8+|是|
| PBKDF2/SHA384 |AES/256 | AES/128/192/256
<br>
HMAC/8-1024
<br>
SM4/128 | 派生密钥是业务基于三段式得到密钥会话结果,业务可决定派生密钥是否由HUKS管理(即密钥不出TEE)亦或是业务独立管理 |8+|是|
| PBKDF2/SHA512 | AES/256 | AES/128/192/256
<br>
HMAC/8-1024
<br>
SM4/128 | 派生密钥是业务基于三段式得到密钥会话结果,业务可决定派生密钥是否由HUKS管理(即密钥不出TEE)亦或是业务独立管理 |8+|是|
### 密钥证明
| 算法
|API级别 | 备注
|
| ------------------ | :-----: | -----------------------------
-------------------------------
|
| RSA | 9+ |
仅支持Padding为PSS的密钥
|
| ECC | 9+ | |
| X25519 | 9+ | |
| 算法
|API级别 | 备注
| 是否必选规格
|
| ------------------ | :-----: | -----------------------------
| :-------:
|
| RSA | 9+ |
支持Padding为 PSS 与 PKCS1_V1_5的密钥 |是
|
| ECC | 9+ | |
是|
| X25519 | 9+ | |
是|
## 密钥材料格式
针对不同密码算法的密钥对、公钥、私钥,HUKS定义了一套密钥材料格式。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录