1# CryptoSymKeyApi
2
3
4## 概述
5
6提供对称密钥相关功能接口。
7
8**起始版本:** 12
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [crypto_sym_key.h](crypto__sym__key_8h.md) | 定义对称密钥接口。 |
19
20
21### 类型定义
22
23| 名称 | 描述 |
24| -------- | -------- |
25| typedef struct [OH_CryptoSymKey](#oh_cryptosymkey) [OH_CryptoSymKey](#oh_cryptosymkey) | 定义对称密钥结构体。 |
26| typedef struct [OH_CryptoSymKeyGenerator](#oh_cryptosymkeygenerator) [OH_CryptoSymKeyGenerator](#oh_cryptosymkeygenerator) | 定义对称密钥生成器结构体。 |
27
28
29### 函数
30
31| 名称 | 描述 |
32| -------- | -------- |
33| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKeyGenerator_Create](#oh_cryptosymkeygenerator_create) (const char \*algoName, [OH_CryptoSymKeyGenerator](#oh_cryptosymkeygenerator) \*\*ctx) | 根据给定的算法名称创建对称密钥生成器。 |
34| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKeyGenerator_Generate](#oh_cryptosymkeygenerator_generate) ([OH_CryptoSymKeyGenerator](#oh_cryptosymkeygenerator) \*ctx, [OH_CryptoSymKey](#oh_cryptosymkey) \*\*keyCtx) | 随机生成对称密钥。 |
35| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKeyGenerator_Convert](#oh_cryptosymkeygenerator_convert) ([OH_CryptoSymKeyGenerator](#oh_cryptosymkeygenerator) \*ctx, const [Crypto_DataBlob](_crypto___data_blob.md) \*keyData, [OH_CryptoSymKey](#oh_cryptosymkey) \*\*keyCtx) | 将对称密钥数据转换为对称密钥。 |
36| const char \* [OH_CryptoSymKeyGenerator_GetAlgoName](#oh_cryptosymkeygenerator_getalgoname) ([OH_CryptoSymKeyGenerator](#oh_cryptosymkeygenerator) \*ctx) | 获取对称密钥生成器的算法名称。 |
37| void [OH_CryptoSymKeyGenerator_Destroy](#oh_cryptosymkeygenerator_destroy) ([OH_CryptoSymKeyGenerator](#oh_cryptosymkeygenerator) \*ctx) | 销毁对称密钥生成器。 |
38| const char \* [OH_CryptoSymKey_GetAlgoName](#oh_cryptosymkey_getalgoname) ([OH_CryptoSymKey](#oh_cryptosymkey) \*keyCtx) | 从对称密钥获取对称密钥算法名称。 |
39| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKey_GetKeyData](#oh_cryptosymkey_getkeydata) ([OH_CryptoSymKey](#oh_cryptosymkey) \*keyCtx, [Crypto_DataBlob](_crypto___data_blob.md) \*out) | 从密钥实例获取对称密钥数据。 |
40| void [OH_CryptoSymKey_Destroy](#oh_cryptosymkey_destroy) ([OH_CryptoSymKey](#oh_cryptosymkey) \*keyCtx) | 销毁对称密钥实例。 |
41
42
43## 类型定义说明
44
45
46### OH_CryptoSymKey
47
48```
49typedef struct OH_CryptoSymKeyOH_CryptoSymKey
50```
51
52**描述**
53
54定义对称密钥结构体。
55
56**起始版本:** 12
57
58
59### OH_CryptoSymKeyGenerator
60
61```
62typedef struct OH_CryptoSymKeyGeneratorOH_CryptoSymKeyGenerator
63```
64
65**描述**
66
67定义对称密钥生成器结构体。
68
69**起始版本:** 12
70
71
72## 函数说明
73
74
75### OH_CryptoSymKey_Destroy()
76
77```
78void OH_CryptoSymKey_Destroy (OH_CryptoSymKey *keyCtx)
79```
80
81**描述**
82
83销毁对称密钥实例。
84
85**起始版本:** 12
86
87**参数:**
88
89| 名称 | 描述 |
90| -------- | -------- |
91| keyCtx | 指向对称密钥实例。 |
92
93
94### OH_CryptoSymKey_GetAlgoName()
95
96```
97const char* OH_CryptoSymKey_GetAlgoName (OH_CryptoSymKey *keyCtx)
98```
99
100**描述**
101
102从对称密钥获取对称密钥算法名称。
103
104**起始版本:** 12
105
106**参数:**
107
108| 名称 | 描述 |
109| -------- | -------- |
110| keyCtx | 指向对称密钥实例。 |
111
112**返回:**
113
114返回对称密钥算法名称。
115
116
117### OH_CryptoSymKey_GetKeyData()
118
119```
120OH_Crypto_ErrCode OH_CryptoSymKey_GetKeyData (OH_CryptoSymKey *keyCtx, Crypto_DataBlob *out )
121```
122
123**描述**
124
125从密钥实例获取对称密钥数据。
126
127**起始版本:** 12
128
129**参数:**
130
131| 名称 | 描述 |
132| -------- | -------- |
133| keyCtx | 指向对称密钥实例。 |
134| out | 获取到的结果。 |
135
136**返回:**
137
138[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
139
1400 - 成功。
141
142401 - 参数无效。
143
144801 - 操作不支持。
145
14617620001 - 内存错误。
147
14817630001 - 调用三方算法库API出错。
149
150
151### OH_CryptoSymKeyGenerator_Convert()
152
153```
154OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Convert (OH_CryptoSymKeyGenerator *ctx, const Crypto_DataBlob *keyData, OH_CryptoSymKey **keyCtx )
155```
156
157**描述**
158
159将对称密钥数据转换为对称密钥。
160
161**起始版本:** 12
162
163**参数:**
164
165| 名称 | 描述 |
166| -------- | -------- |
167| ctx | 指向对称密钥生成器实例。 |
168| keyData | 指向生成对称密钥的数据。 |
169| keyCtx | 指向对称密钥实例的指针。 |
170
171**返回:**
172
173[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
174
1750 - 成功。
176
177401 - 参数无效。
178
179801 - 操作不支持。
180
18117620001 - 内存错误。
182
18317630001 - 调用三方算法库API出错。
184
185
186### OH_CryptoSymKeyGenerator_Create()
187
188```
189OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Create (const char *algoName, OH_CryptoSymKeyGenerator **ctx )
190```
191
192**描述**
193
194根据给定的算法名称创建对称密钥生成器。
195
196**起始版本:** 12
197
198**参数:**
199
200| 名称 | 描述 |
201| -------- | -------- |
202| algoName | 用于生成对称密钥的算法名称。例如: "AES256"。 |
203| ctx | 指向对称密钥生成器实例的指针。 |
204
205**返回:**
206
207[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
208
2090 - 成功。
210
211401 - 参数无效。
212
213801 - 操作不支持。
214
21517620001 - 内存错误。
216
21717630001 - 调用三方算法库API出错。
218
219
220### OH_CryptoSymKeyGenerator_Destroy()
221
222```
223void OH_CryptoSymKeyGenerator_Destroy (OH_CryptoSymKeyGenerator *ctx)
224```
225
226**描述**
227
228销毁对称密钥生成器。
229
230**起始版本:** 12
231
232**参数:**
233
234| 名称 | 描述 |
235| -------- | -------- |
236| ctx | 指向对称密钥生成器实例的指针。 |
237
238
239### OH_CryptoSymKeyGenerator_Generate()
240
241```
242OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Generate (OH_CryptoSymKeyGenerator *ctx, OH_CryptoSymKey **keyCtx )
243```
244
245**描述**
246
247随机生成对称密钥。
248
249**起始版本:** 12
250
251**参数:**
252
253| 名称 | 描述 |
254| -------- | -------- |
255| ctx | 指向对称密钥生成器实例。 |
256| keyCtx | 指向对称密钥的指针。 |
257
258**返回:**
259
260[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
261
2620 - 成功。
263
264401 - 参数无效。
265
266801 - 操作不支持。
267
26817620001 - 内存错误。
269
27017630001 - 调用三方算法库API出错。
271
272
273### OH_CryptoSymKeyGenerator_GetAlgoName()
274
275```
276const char* OH_CryptoSymKeyGenerator_GetAlgoName (OH_CryptoSymKeyGenerator *ctx)
277```
278
279**描述**
280
281获取对称密钥生成器的算法名称。
282
283**起始版本:** 12
284
285**参数:**
286
287| 名称 | 描述 |
288| -------- | -------- |
289| ctx | 指向对称密钥生成器实例的指针。 |
290
291**返回:**
292
293返回对称密钥算法名称。
294