1# crypto_sym_key.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_sym_key.h> 15 16**库:** libohcrypto.so 17 18**系统能力:** SystemCapability.Security.CryptoFramework 19 20**起始版本:** 12 21 22**相关模块:** [CryptoSymKeyApi](capi-cryptosymkeyapi.md) 23 24## 汇总 25 26### 结构体 27 28| 名称 | typedef关键字 | 描述 | 29| -- | -- | -- | 30| [OH_CryptoSymKey](capi-cryptosymkeyapi-oh-cryptosymkey.md) | OH_CryptoSymKey | 定义对称密钥生成器结构。 | 31| [OH_CryptoSymKeyGenerator](capi-cryptosymkeyapi-oh-cryptosymkeygenerator.md) | OH_CryptoSymKeyGenerator | 定义对称密钥结构。 | 32 33### 函数 34 35| 名称 | 描述 | 36| -- | -- | 37| [OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Create(const char *algoName, OH_CryptoSymKeyGenerator **ctx)](#oh_cryptosymkeygenerator_create) | 根据给定的算法名称创建对称密钥生成器。 | 38| [OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Generate(OH_CryptoSymKeyGenerator *ctx, OH_CryptoSymKey **keyCtx)](#oh_cryptosymkeygenerator_generate) | 随机生成对称密钥。 | 39| [OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Convert(OH_CryptoSymKeyGenerator *ctx, const Crypto_DataBlob *keyData, OH_CryptoSymKey **keyCtx)](#oh_cryptosymkeygenerator_convert) | 将对称密钥数据转换为对称密钥。 | 40| [const char *OH_CryptoSymKeyGenerator_GetAlgoName(OH_CryptoSymKeyGenerator *ctx)](#oh_cryptosymkeygenerator_getalgoname) | 获取对称密钥生成器的算法名称。 | 41| [void OH_CryptoSymKeyGenerator_Destroy(OH_CryptoSymKeyGenerator *ctx)](#oh_cryptosymkeygenerator_destroy) | 销毁对称密钥生成器。 | 42| [const char *OH_CryptoSymKey_GetAlgoName(OH_CryptoSymKey *keyCtx)](#oh_cryptosymkey_getalgoname) | 从对称密钥获取对称密钥算法名称。 | 43| [OH_Crypto_ErrCode OH_CryptoSymKey_GetKeyData(OH_CryptoSymKey *keyCtx, Crypto_DataBlob *out)](#oh_cryptosymkey_getkeydata) | 从密钥实例获取对称密钥数据。 | 44| [void OH_CryptoSymKey_Destroy(OH_CryptoSymKey *keyCtx)](#oh_cryptosymkey_destroy) | 销毁对称密钥实例。 | 45 46## 函数说明 47 48### OH_CryptoSymKeyGenerator_Create() 49 50``` 51OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Create(const char *algoName, OH_CryptoSymKeyGenerator **ctx) 52``` 53 54**描述** 55 56根据给定的算法名称创建对称密钥生成器。 57 58**起始版本:** 12 59 60 61**参数:** 62 63| 参数项 | 描述 | 64| -- | -- | 65| const char *algoName | 用于生成生成器的算法名称。<br> 例如"AES256"、"AES128"、"SM4"等。 | 66| [OH_CryptoSymKeyGenerator](capi-cryptosymkeyapi-oh-cryptosymkeygenerator.md) **ctx | 指向对称密钥生成器实例的指针。 | 67 68**返回:** 69 70| 类型 | 说明 | 71| -- | -- | 72| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 73 74### OH_CryptoSymKeyGenerator_Generate() 75 76``` 77OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Generate(OH_CryptoSymKeyGenerator *ctx, OH_CryptoSymKey **keyCtx) 78``` 79 80**描述** 81 82随机生成对称密钥。 83 84**起始版本:** 12 85 86 87**参数:** 88 89| 参数项 | 描述 | 90| -- | -- | 91| [OH_CryptoSymKeyGenerator](capi-cryptosymkeyapi-oh-cryptosymkeygenerator.md) *ctx | 指向对称密钥生成器实例。 | 92| [OH_CryptoSymKey](capi-cryptosymkeyapi-oh-cryptosymkey.md) **keyCtx | 指向对称密钥的指针。 | 93 94**返回:** 95 96| 类型 | 说明 | 97| -- | -- | 98| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 99 100### OH_CryptoSymKeyGenerator_Convert() 101 102``` 103OH_Crypto_ErrCode OH_CryptoSymKeyGenerator_Convert(OH_CryptoSymKeyGenerator *ctx,const Crypto_DataBlob *keyData, OH_CryptoSymKey **keyCtx) 104``` 105 106**描述** 107 108将对称密钥数据转换为对称密钥。 109 110**起始版本:** 12 111 112 113**参数:** 114 115| 参数项 | 描述 | 116| -- | -- | 117| [OH_CryptoSymKeyGenerator](capi-cryptosymkeyapi-oh-cryptosymkeygenerator.md) *ctx | 指向对称密钥生成器实例。 | 118| [const Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *keyData | 指向生成对称密钥的数据。 | 119| [OH_CryptoSymKey](capi-cryptosymkeyapi-oh-cryptosymkey.md) **keyCtx | 指向对称密钥实例的指针。 | 120 121**返回:** 122 123| 类型 | 说明 | 124| -- | -- | 125| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 126 127### OH_CryptoSymKeyGenerator_GetAlgoName() 128 129``` 130const char *OH_CryptoSymKeyGenerator_GetAlgoName(OH_CryptoSymKeyGenerator *ctx) 131``` 132 133**描述** 134 135获取对称密钥生成器的算法名称。 136 137**起始版本:** 12 138 139 140**参数:** 141 142| 参数项 | 描述 | 143| -- | -- | 144| [OH_CryptoSymKeyGenerator](capi-cryptosymkeyapi-oh-cryptosymkeygenerator.md) *ctx | 指向对称密钥生成器实例的指针。 | 145 146**返回:** 147 148| 类型 | 说明 | 149| -- | -- | 150| const char * | 返回对称密钥生成器算法名称。 | 151 152### OH_CryptoSymKeyGenerator_Destroy() 153 154``` 155void OH_CryptoSymKeyGenerator_Destroy(OH_CryptoSymKeyGenerator *ctx) 156``` 157 158**描述** 159 160销毁对称密钥生成器。 161 162**起始版本:** 12 163 164 165**参数:** 166 167| 参数项 | 描述 | 168| -- | -- | 169| [OH_CryptoSymKeyGenerator](capi-cryptosymkeyapi-oh-cryptosymkeygenerator.md) *ctx | 指向对称密钥生成器实例的指针。 | 170 171### OH_CryptoSymKey_GetAlgoName() 172 173``` 174const char *OH_CryptoSymKey_GetAlgoName(OH_CryptoSymKey *keyCtx) 175``` 176 177**描述** 178 179从对称密钥获取对称密钥算法名称。 180 181**起始版本:** 12 182 183 184**参数:** 185 186| 参数项 | 描述 | 187| -- | -- | 188| [OH_CryptoSymKey](capi-cryptosymkeyapi-oh-cryptosymkey.md) *keyCtx | 指向对称密钥实例。 | 189 190**返回:** 191 192| 类型 | 说明 | 193| -- | -- | 194| const char * | 返回对称密钥算法名称。 | 195 196### OH_CryptoSymKey_GetKeyData() 197 198``` 199OH_Crypto_ErrCode OH_CryptoSymKey_GetKeyData(OH_CryptoSymKey *keyCtx, Crypto_DataBlob *out) 200``` 201 202**描述** 203 204从密钥实例获取对称密钥数据。 205 206**起始版本:** 12 207 208 209**参数:** 210 211| 参数项 | 描述 | 212| -- | -- | 213| [OH_CryptoSymKey](capi-cryptosymkeyapi-oh-cryptosymkey.md) *keyCtx | 指向对称密钥实例。 | 214| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *out | 获取到的结果。 | 215 216**返回:** 217 218| 类型 | 说明 | 219| -- | -- | 220| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 221 222### OH_CryptoSymKey_Destroy() 223 224``` 225void OH_CryptoSymKey_Destroy(OH_CryptoSymKey *keyCtx) 226``` 227 228**描述** 229 230销毁对称密钥实例。 231 232**起始版本:** 12 233 234 235**参数:** 236 237| 参数项 | 描述 | 238| -- | -- | 239| [OH_CryptoSymKey](capi-cryptosymkeyapi-oh-cryptosymkey.md) *keyCtx | 指向对称密钥实例。 | 240 241 242