• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# crypto_kdf.h
2
3<!--Kit: Crypto Architecture Kit-->
4<!--Subsystem: Security-->
5<!--Owner: @zxz--3-->
6<!--Designer: @lanming-->
7<!--Tester: @PAFT-->
8<!--Adviser: @zengyawen-->
9
10## 概述
11
12定义密钥派生接口。
13
14**引用文件:** <CryptoArchitectureKit/crypto_kdf.h>
15
16**库:** libohcrypto.so
17
18**系统能力:** SystemCapability.Security.CryptoFramework
19
20**起始版本:** 20
21
22**相关模块:** [CryptoKdfApi](capi-cryptokdfapi.md)
23
24## 汇总
25
26### 结构体
27
28| 名称 | typedef关键字 | 描述 |
29| -- | -- | -- |
30| [OH_CryptoKdf](capi-cryptokdfapi-oh-cryptokdf.md) | OH_CryptoKdf | 定义密钥派生函数(KDF)结构。 |
31| [OH_CryptoKdfParams](capi-cryptokdfapi-oh-cryptokdfparams.md) | OH_CryptoKdfParams | 定义密钥派生函数(KDF)参数结构。 |
32
33### 枚举
34
35| 名称 | typedef关键字 | 描述 |
36| -- | -- | -- |
37| [CryptoKdf_ParamType](#cryptokdf_paramtype) | CryptoKdf_ParamType | 定义密钥派生函数(KDF)参数类型。 |
38
39### 函数
40
41| 名称 | 描述 |
42| -- | -- |
43| [OH_Crypto_ErrCode OH_CryptoKdfParams_Create(const char *algoName, OH_CryptoKdfParams **params)](#oh_cryptokdfparams_create) | 创建密钥派生函数(KDF)参数。 |
44| [OH_Crypto_ErrCode OH_CryptoKdfParams_SetParam(OH_CryptoKdfParams *params, CryptoKdf_ParamType type, Crypto_DataBlob *value)](#oh_cryptokdfparams_setparam) | 设置密钥派生函数(KDF)参数。 |
45| [void OH_CryptoKdfParams_Destroy(OH_CryptoKdfParams *params)](#oh_cryptokdfparams_destroy) | 销毁密钥派生函数(KDF)参数。 |
46| [OH_Crypto_ErrCode OH_CryptoKdf_Create(const char *algoName, OH_CryptoKdf **ctx)](#oh_cryptokdf_create) | 创建密钥派生函数(KDF)实例。 |
47| [OH_Crypto_ErrCode OH_CryptoKdf_Derive(OH_CryptoKdf *ctx, const OH_CryptoKdfParams *params, int keyLen,Crypto_DataBlob *key)](#oh_cryptokdf_derive) | 派生密钥。 |
48| [void OH_CryptoKdf_Destroy(OH_CryptoKdf *ctx)](#oh_cryptokdf_destroy) | 销毁密钥派生函数(KDF)实例。 |
49
50## 枚举类型说明
51
52### CryptoKdf_ParamType
53
54```
55enum CryptoKdf_ParamType
56```
57
58**描述**
59
60定义密钥派生函数(KDF)参数类型。
61
62**起始版本:** 20
63
64| 枚举项 | 描述 |
65| -- | -- |
66| CRYPTO_KDF_KEY_DATABLOB = 0 | 表示KDF的密钥或密码。 |
67| CRYPTO_KDF_SALT_DATABLOB = 1 | 表示KDF的盐值。 |
68| CRYPTO_KDF_INFO_DATABLOB = 2 | 表示KDF的信息。 |
69| CRYPTO_KDF_ITER_COUNT_INT = 3 | 表示PBKDF2的迭代次数。 |
70| CRYPTO_KDF_SCRYPT_N_UINT64 = 4 | 表示SCRYPT KDF的n参数。 |
71| CRYPTO_KDF_SCRYPT_R_UINT64 = 5 | 表示SCRYPT KDF的r参数。 |
72| CRYPTO_KDF_SCRYPT_P_UINT64 = 6 | 表示SCRYPT KDF的p参数。 |
73| CRYPTO_KDF_SCRYPT_MAX_MEM_UINT64 = 7 | 表示SCRYPT KDF的最大内存使用量。 |
74
75
76## 函数说明
77
78### OH_CryptoKdfParams_Create()
79
80```
81OH_Crypto_ErrCode OH_CryptoKdfParams_Create(const char *algoName, OH_CryptoKdfParams **params)
82```
83
84**描述**
85
86创建密钥派生函数(KDF)参数。
87
88**起始版本:** 20
89
90
91**参数:**
92
93| 参数项 | 描述 |
94| -- | -- |
95| const char *algoName | KDF算法名称。<br> 例如"HKDF\|SHA384\|EXTRACT_AND_EXPAND"、"PBKDF2\|SHA384"。 |
96| [OH_CryptoKdfParams](capi-cryptokdfapi-oh-cryptokdfparams.md) **params | KDF参数。 |
97
98**返回:**
99
100| 类型 | 说明 |
101| -- | -- |
102| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br>         CRYPTO_NOT_SUPPORTED:操作不支持。<br>         CRYPTO_MEMORY_ERROR:内存错误。<br>         CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br>         CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
103
104### OH_CryptoKdfParams_SetParam()
105
106```
107OH_Crypto_ErrCode OH_CryptoKdfParams_SetParam(OH_CryptoKdfParams *params, CryptoKdf_ParamType type,Crypto_DataBlob *value)
108```
109
110**描述**
111
112设置密钥派生函数(KDF)参数。
113
114**起始版本:** 20
115
116
117**参数:**
118
119| 参数项 | 描述 |
120| -- | -- |
121| [OH_CryptoKdfParams](capi-cryptokdfapi-oh-cryptokdfparams.md) *params | KDF参数。 |
122| [CryptoKdf_ParamType](#cryptokdf_paramtype) type | KDF参数类型。 |
123| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *value | KDF参数值。 |
124
125**返回:**
126
127| 类型 | 说明 |
128| -- | -- |
129| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br>         CRYPTO_NOT_SUPPORTED:操作不支持。<br>         CRYPTO_MEMORY_ERROR:内存错误。<br>         CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br>         CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
130
131### OH_CryptoKdfParams_Destroy()
132
133```
134void OH_CryptoKdfParams_Destroy(OH_CryptoKdfParams *params)
135```
136
137**描述**
138
139销毁密钥派生函数(KDF)参数。
140
141**起始版本:** 20
142
143
144**参数:**
145
146| 参数项 | 描述 |
147| -- | -- |
148| [OH_CryptoKdfParams](capi-cryptokdfapi-oh-cryptokdfparams.md) *params | KDF参数。 |
149
150### OH_CryptoKdf_Create()
151
152```
153OH_Crypto_ErrCode OH_CryptoKdf_Create(const char *algoName, OH_CryptoKdf **ctx)
154```
155
156**描述**
157
158创建密钥派生函数(KDF)实例。
159
160**起始版本:** 20
161
162
163**参数:**
164
165| 参数项 | 描述 |
166| -- | -- |
167| const char *algoName | KDF算法名称。 |
168| [OH_CryptoKdf](capi-cryptokdfapi-oh-cryptokdf.md) **ctx | KDF实例。 |
169
170**返回:**
171
172| 类型 | 说明 |
173| -- | -- |
174| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br>         CRYPTO_NOT_SUPPORTED:操作不支持。<br>         CRYPTO_MEMORY_ERROR:内存错误。<br>         CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br>         CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
175
176### OH_CryptoKdf_Derive()
177
178```
179OH_Crypto_ErrCode OH_CryptoKdf_Derive(OH_CryptoKdf *ctx, const OH_CryptoKdfParams *params, int keyLen,Crypto_DataBlob *key)
180```
181
182**描述**
183
184派生密钥。
185
186**起始版本:** 20
187
188
189**参数:**
190
191| 参数项 | 描述 |
192| -- | -- |
193| [OH_CryptoKdf](capi-cryptokdfapi-oh-cryptokdf.md) *ctx | KDF实例。 |
194| [const OH_CryptoKdfParams](capi-cryptokdfapi-oh-cryptokdfparams.md) *params | KDF参数。 |
195| int keyLen | 密钥派生长度。 |
196| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *key | 派生出的密钥。 |
197
198**返回:**
199
200| 类型 | 说明 |
201| -- | -- |
202| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br>         CRYPTO_NOT_SUPPORTED:操作不支持。<br>         CRYPTO_MEMORY_ERROR:内存错误。<br>         CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br>         CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
203
204### OH_CryptoKdf_Destroy()
205
206```
207void OH_CryptoKdf_Destroy(OH_CryptoKdf *ctx)
208```
209
210**描述**
211
212销毁密钥派生函数(KDF)实例。
213
214**起始版本:** 20
215
216
217**参数:**
218
219| 参数项 | 描述 |
220| -- | -- |
221| [OH_CryptoKdf](capi-cryptokdfapi-oh-cryptokdf.md) *ctx | KDF实例。 |
222
223
224