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