1# CryptoSymCipherApi
2
3
4## 概述
5
6为应用提供对称密钥加解密相关接口功能。
7
8**起始版本:** 12
9
10
11## 汇总
12
13
14### 文件
15
16| 名称 | 描述 |
17| -------- | -------- |
18| [crypto_sym_cipher.h](crypto__sym__cipher_8h.md) | 定义对称密钥加解密接口。 |
19
20
21### 类型定义
22
23| 名称 | 描述 |
24| -------- | -------- |
25| typedef struct [OH_CryptoSymCipher](#oh_cryptosymcipher) [OH_CryptoSymCipher](#oh_cryptosymcipher) | 定义对称加解密结构体。 |
26| typedef struct [OH_CryptoSymCipherParams](#oh_cryptosymcipherparams) [OH_CryptoSymCipherParams](#oh_cryptosymcipherparams) | 定义对称加解密参数结构体。 |
27
28
29### 枚举
30
31| 名称 | 描述 |
32| -------- | -------- |
33| [CryptoSymCipher_ParamsType](#cryptosymcipher_paramstype) {<br/>CRYPTO_IV_DATABLOB = 100,<br/>CRYPTO_AAD_DATABLOB = 101,<br/>CRYPTO_TAG_DATABLOB = 102<br/>} | 定义对称加解密参数类型。 |
34
35
36### 函数
37
38| 名称 | 描述 |
39| -------- | -------- |
40| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymCipherParams_Create](#oh_cryptosymcipherparams_create) ([OH_CryptoSymCipherParams](#oh_cryptosymcipherparams) \*\*params) | 创建对称密钥加解密参数实例。 |
41| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymCipherParams_SetParam](#oh_cryptosymcipherparams_setparam) ([OH_CryptoSymCipherParams](#oh_cryptosymcipherparams) \*params, [CryptoSymCipher_ParamsType](#cryptosymcipher_paramstype) paramsType, [Crypto_DataBlob](_crypto___data_blob.md) \*value) | 设置对称密钥加解密参数。 |
42| void [OH_CryptoSymCipherParams_Destroy](#oh_cryptosymcipherparams_destroy) ([OH_CryptoSymCipherParams](#oh_cryptosymcipherparams) \*params) | 销毁对称密钥加解密参数实例。 |
43| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymCipher_Create](#oh_cryptosymcipher_create) (const char \*algoName, [OH_CryptoSymCipher](#oh_cryptosymcipher) \*\*ctx) | 根据给定的算法名称创建对称密钥加解密实例。 |
44| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymCipher_Init](#oh_cryptosymcipher_init) ([OH_CryptoSymCipher](#oh_cryptosymcipher) \*ctx, [Crypto_CipherMode](_crypto_common_api.md#crypto_ciphermode) mod, [OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) \*key, [OH_CryptoSymCipherParams](#oh_cryptosymcipherparams) \*params) | 初始化对称密钥加解密实例。 |
45| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymCipher_Update](#oh_cryptosymcipher_update) ([OH_CryptoSymCipher](#oh_cryptosymcipher) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*in, [Crypto_DataBlob](_crypto___data_blob.md) \*out) | 更新加密或者解密数据操作。 |
46| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymCipher_Final](#oh_cryptosymcipher_final) ([OH_CryptoSymCipher](#oh_cryptosymcipher) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*in, [Crypto_DataBlob](_crypto___data_blob.md) \*out) | 输出 加/解密(分组模式产生的)剩余数据,最后结束加密或者解密数据操作 |
47| const char \* [OH_CryptoSymCipher_GetAlgoName](#oh_cryptosymcipher_getalgoname) ([OH_CryptoSymCipher](#oh_cryptosymcipher) \*ctx) | 获取对称密钥加解密实例的算法名称。 |
48| void [OH_CryptoSymCipher_Destroy](#oh_cryptosymcipher_destroy) ([OH_CryptoSymCipher](#oh_cryptosymcipher) \*ctx) | 销毁对称密钥加解密实例。 |
49
50
51## 类型定义说明
52
53
54### OH_CryptoSymCipher
55
56```
57typedef struct OH_CryptoSymCipherOH_CryptoSymCipher
58```
59
60**描述**
61
62定义对称加解密结构体。
63
64**起始版本:** 12
65
66
67### OH_CryptoSymCipherParams
68
69```
70typedef struct OH_CryptoSymCipherParamsOH_CryptoSymCipherParams
71```
72
73**描述**
74
75定义对称加解密参数结构体。
76
77**起始版本:** 12
78
79
80## 枚举类型说明
81
82
83### CryptoSymCipher_ParamsType
84
85```
86enum CryptoSymCipher_ParamsType
87```
88
89**描述**
90
91定义对称加解密参数类型。
92
93**起始版本:** 12
94
95| 枚举值 | 描述 |
96| -------- | -------- |
97| CRYPTO_IV_DATABLOB | 加解密参数iv。 |
98| CRYPTO_AAD_DATABLOB | 加解密参数aad。 |
99| CRYPTO_TAG_DATABLOB | 加解密参数authTag。 |
100
101
102## 函数说明
103
104
105### OH_CryptoSymCipher_Create()
106
107```
108OH_Crypto_ErrCode OH_CryptoSymCipher_Create (const char *algoName, OH_CryptoSymCipher **ctx )
109```
110
111**描述**
112
113根据给定的算法名称创建对称密钥加解密实例。
114
115**起始版本:** 12
116
117**参数:**
118
119| 名称 | 描述 |
120| -------- | -------- |
121| algoName | 用于生成对称密钥加解密实例的算法名称。例如: AES128\|GCM\|PKCS7. |
122| ctx | 指向对称密钥加解密实例的指针。 |
123
124**返回:**
125
126[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
127
1280 - 成功。
129
130401 - 参数无效。
131
132801 - 操作不支持。
133
13417620001 - 内存错误。
135
13617630001 - 调用三方算法库API出错。
137
138
139### OH_CryptoSymCipher_Destroy()
140
141```
142void OH_CryptoSymCipher_Destroy (OH_CryptoSymCipher *ctx)
143```
144
145**描述**
146
147销毁对称密钥加解密实例。
148
149**起始版本:** 12
150
151**参数:**
152
153| 名称 | 描述 |
154| -------- | -------- |
155| ctx | 指向对称密钥加解密实例。 |
156
157
158### OH_CryptoSymCipher_Final()
159
160```
161OH_Crypto_ErrCode OH_CryptoSymCipher_Final (OH_CryptoSymCipher *ctx, Crypto_DataBlob *in, Crypto_DataBlob *out )
162```
163
164**描述**
165
166输出 加/解密(分组模式产生的)剩余数据,最后结束加密或者解密数据操作。
167
168**起始版本:** 12
169
170**参数:**
171
172| 名称 | 描述 |
173| -------- | -------- |
174| ctx | 指向对称密钥加解密实例。 |
175| in | 要加密或解密的数据。 |
176| out | 返回剩余数据的加/解密结果。 |
177
178**返回:**
179
180[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
181
1820 - 成功。
183
184401 - 参数无效。
185
186801 - 操作不支持。
187
18817620001 - 内存错误。
189
19017630001 - 调用三方算法库API出错。
191
192**参见:**
193
194[OH_CryptoSymCipher_Init](#oh_cryptosymcipher_init)
195
196[OH_CryptoSymCipher_Update](#oh_cryptosymcipher_update)
197
198
199### OH_CryptoSymCipher_GetAlgoName()
200
201```
202const char* OH_CryptoSymCipher_GetAlgoName (OH_CryptoSymCipher *ctx)
203```
204
205**描述**
206
207获取对称密钥加解密实例的算法名称。
208
209**起始版本:** 12
210
211**参数:**
212
213| 名称 | 描述 |
214| -------- | -------- |
215| ctx | 指向对称密钥加解密实例。 |
216
217**返回:**
218
219返回对称加解密算法名称。
220
221
222### OH_CryptoSymCipher_Init()
223
224```
225OH_Crypto_ErrCode OH_CryptoSymCipher_Init (OH_CryptoSymCipher *ctx, Crypto_CipherMode mod, OH_CryptoSymKey *key, OH_CryptoSymCipherParams *params )
226```
227
228**描述**
229
230初始化对称密钥加解密实例。
231
232**起始版本:** 12
233
234**参数:**
235
236| 名称 | 描述 |
237| -------- | -------- |
238| ctx | 指向对称密钥加解密实例。 |
239| mod | 加解密模式。 |
240| key | 对称密钥。 |
241| params | 指向对称密钥参数实例。 |
242
243**返回:**
244
245[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
246
2470 - 成功。
248
249401 - 参数无效。
250
251801 - 操作不支持。
252
25317620001 - 内存错误。
254
25517630001 - 调用三方算法库API出错。
256
257
258### OH_CryptoSymCipher_Update()
259
260```
261OH_Crypto_ErrCode OH_CryptoSymCipher_Update (OH_CryptoSymCipher *ctx, Crypto_DataBlob *in, Crypto_DataBlob *out )
262```
263
264**描述**
265
266更新加密或者解密数据操作。
267
268**起始版本:** 12
269
270**参数:**
271
272| 名称 | 描述 |
273| -------- | -------- |
274| ctx | 指向对称密钥加解密实例。 |
275| in | 加密或者解密的数据。 |
276| out | 更新的结果。 |
277
278**返回:**
279
280[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
281
2820 - 成功。
283
284401 - 参数无效。
285
286801 - 操作不支持。
287
28817620001 - 内存错误。
289
29017630001 - 调用三方算法库API出错。
291
292
293### OH_CryptoSymCipherParams_Create()
294
295```
296OH_Crypto_ErrCode OH_CryptoSymCipherParams_Create (OH_CryptoSymCipherParams **params)
297```
298
299**描述**
300
301创建对称密钥加解密参数实例。
302
303**起始版本:** 12
304
305**参数:**
306
307| 名称 | 描述 |
308| -------- | -------- |
309| params | 指向对称加解密参数实例的指针。 |
310
311**返回:**
312
313[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
314
3150 - 成功。
316
317401 - 参数无效。
318
319801 - 操作不支持。
320
32117620001 - 内存错误。
322
32317630001 - 调用三方算法库API出错。
324
325
326### OH_CryptoSymCipherParams_Destroy()
327
328```
329void OH_CryptoSymCipherParams_Destroy (OH_CryptoSymCipherParams *params)
330```
331
332**描述**
333
334销毁对称密钥加解密参数实例。
335
336**起始版本:** 12
337
338**参数:**
339
340| 名称 | 描述 |
341| -------- | -------- |
342| params | 指向对称密钥加解密参数实例。 |
343
344
345### OH_CryptoSymCipherParams_SetParam()
346
347```
348OH_Crypto_ErrCode OH_CryptoSymCipherParams_SetParam (OH_CryptoSymCipherParams *params, CryptoSymCipher_ParamsType paramsType, Crypto_DataBlob *value )
349```
350
351**描述**
352
353设置对称密钥加解密参数。
354
355**起始版本:** 12
356
357**参数:**
358
359| 名称 | 描述 |
360| -------- | -------- |
361| params | 指向对称密钥加解密参数实例。 |
362| paramsType | 设置对称密钥加解密参数类型。 |
363| value | 设置的参数值。 |
364
365**返回:**
366
367[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
368
3690 - 成功。
370
371401 - 参数无效。
372
373801 - 操作不支持。
374
37517620001 - 内存错误。
376
37717630001 - 调用三方算法库API出错。
378