1# 密钥使用介绍及通用流程
2
3
4为了实现对数据机密性、完整性等保护,可使用生成/导入的密钥,对数据进行密钥操作,比如:
5
6
7- [加密解密](huks-encryption-decryption-overview.md)。
8
9- [签名验签](huks-signing-signature-verification-overview.md)。
10
11- [密钥协商](huks-key-agreement-overview.md)。
12
13- [密钥派生](huks-key-derivation-overview.md)。
14
15
16本章节提供了以上常用密钥操作的示例,这部分示例均没有设置二次身份访问控制,如设置了密钥访问控制请参考[密钥访问控制](huks-identity-authentication-overview.md)用法。
17
18
19## 通用开发流程
20
21HUKS基于密钥会话来操作数据,使用密钥时基于以下流程:
22
231. (必选)初始化密钥会话[huks.initSession()](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksinitsession9)。
24   传入密钥别名和密钥操作参数,初始化一个密钥会话并获取会话句柄。其中密钥操作参数中必须包含对应密码算法所必须的参数,包括密码算法、密钥大小、密钥目的、工作模式、填充模式、散列模式、IV、Nonce、AAD等。
25
262. (可选)分段操作数据[huks.updateSession()](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksupdatesession9)。
27   当使用的数据过大(超过100K)或是部分密码算法有要求时,需要对数据进行分段操作。否则可跳过此步骤。
28
293. (必选)结束密钥会话[huks.finishSession()](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksfinishsession9)。
30   操作最后一段数据并结束密钥会话。
31
32以上任一阶段中发生错误或不需要此次密钥操作数据,均需要取消会话[huks.abortSession()](../../reference/apis-universal-keystore-kit/js-apis-huks.md#huksabortsession9),终止密钥的使用。
33