1e41f4b71Sopenharmony_ci# crypto_sym_key.h
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## Overview
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciProvides APIs for symmetric key operations.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**Library**: libohcrypto.z.so
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Security.CryptoFramework
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ci**Since**: 12
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci**Related module**: [CryptoSymKeyApi](_crypto_sym_key_api.md)
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## Summary
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci### Types
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci| Name | Description |
23e41f4b71Sopenharmony_ci| -------- | -------- |
24e41f4b71Sopenharmony_ci| typedef struct [OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) [OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) | Defines a struct for a symmetric key. |
25e41f4b71Sopenharmony_ci| typedef struct [OH_CryptoSymKeyGenerator](_crypto_sym_key_api.md#oh_cryptosymkeygenerator) [OH_CryptoSymKeyGenerator](_crypto_sym_key_api.md#oh_cryptosymkeygenerator) | Defines a struct for a symmetric key generator. |
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci### Functions
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci| Name | Description |
31e41f4b71Sopenharmony_ci| -------- | -------- |
32e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKeyGenerator_Create](_crypto_sym_key_api.md#oh_cryptosymkeygenerator_create) (const char \*algoName, [OH_CryptoSymKeyGenerator](_crypto_sym_key_api.md#oh_cryptosymkeygenerator) \*\*ctx) | Creates a symmetric key generator instance based on the given algorithm name. |
33e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKeyGenerator_Generate](_crypto_sym_key_api.md#oh_cryptosymkeygenerator_generate) ([OH_CryptoSymKeyGenerator](_crypto_sym_key_api.md#oh_cryptosymkeygenerator) \*ctx, [OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) \*\*keyCtx) | Randomly generates a symmetric key. |
34e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKeyGenerator_Convert](_crypto_sym_key_api.md#oh_cryptosymkeygenerator_convert) ([OH_CryptoSymKeyGenerator](_crypto_sym_key_api.md#oh_cryptosymkeygenerator) \*ctx, const [Crypto_DataBlob](_crypto___data_blob.md) \*keyData, [OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) \*\*keyCtx) | Converts binary data into a symmetric key. |
35e41f4b71Sopenharmony_ci| const char \* [OH_CryptoSymKeyGenerator_GetAlgoName](_crypto_sym_key_api.md#oh_cryptosymkeygenerator_getalgoname) ([OH_CryptoSymKeyGenerator](_crypto_sym_key_api.md#oh_cryptosymkeygenerator) \*ctx) | Obtains the algorithm of a symmetric key generator instance. |
36e41f4b71Sopenharmony_ci| void [OH_CryptoSymKeyGenerator_Destroy](_crypto_sym_key_api.md#oh_cryptosymkeygenerator_destroy) ([OH_CryptoSymKeyGenerator](_crypto_sym_key_api.md#oh_cryptosymkeygenerator) \*ctx) | Destroys a symmetric key generator instance. |
37e41f4b71Sopenharmony_ci| const char \* [OH_CryptoSymKey_GetAlgoName](_crypto_sym_key_api.md#oh_cryptosymkey_getalgoname) ([OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) \*keyCtx) | Obtains the algorithm of a symmetric key. |
38e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoSymKey_GetKeyData](_crypto_sym_key_api.md#oh_cryptosymkey_getkeydata) ([OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) \*keyCtx, [Crypto_DataBlob](_crypto___data_blob.md) \*out) | Obtains symmetric key data from a key instance. |
39e41f4b71Sopenharmony_ci| void [OH_CryptoSymKey_Destroy](_crypto_sym_key_api.md#oh_cryptosymkey_destroy) ([OH_CryptoSymKey](_crypto_sym_key_api.md#oh_cryptosymkey) \*keyCtx) | Destroys a symmetric key instance. |
40