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