1e41f4b71Sopenharmony_ci# CryptoCommonApi
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## Overview
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciProvides common APIs for cryptographic operations.
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ci**Since**: 12
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Summary
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci### Files
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ci| Name | Description | 
17e41f4b71Sopenharmony_ci| -------- | -------- |
18e41f4b71Sopenharmony_ci| [crypto_common.h](crypto__common_8h.md) | Defines common APIs for cryptographic operations. | 
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci### Structs
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| Name | Description | 
24e41f4b71Sopenharmony_ci| -------- | -------- |
25e41f4b71Sopenharmony_ci| struct  [Crypto_DataBlob](_crypto___data_blob.md) | Defines the data used for encryption and decryption. | 
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci### Types
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci| Name | Description | 
31e41f4b71Sopenharmony_ci| -------- | -------- |
32e41f4b71Sopenharmony_ci| typedef struct [Crypto_DataBlob](_crypto___data_blob.md) [Crypto_DataBlob](#crypto_datablob) | Defines a struct for the data used for encryption and decryption. | 
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci### Enums
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci| Name | Description | 
38e41f4b71Sopenharmony_ci| -------- | -------- |
39e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](#oh_crypto_errcode) {<br>CRYPTO_SUCCESS = 0, CRYPTO_INVALID_PARAMS = 401,<br>CRYPTO_NOT_SUPPORT = 801, CRYPTO_MEMORY_ERROR = 17620001,<br>CRYPTO_OPERTION_ERROR = 17630001<br>} | Enumerates the encryption and decryption error codes. | 
40e41f4b71Sopenharmony_ci| [Crypto_CipherMode](#crypto_ciphermode) {<br>CRYPTO_ENCRYPT_MODE = 0,<br>CRYPTO_DECRYPT_MODE = 1<br>} | Enumerates the cryptographic operation types. | 
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci### Functions
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci| Name | Description | 
46e41f4b71Sopenharmony_ci| -------- | -------- |
47e41f4b71Sopenharmony_ci| void [OH_Crypto_FreeDataBlob](#oh_crypto_freedatablob) ([Crypto_DataBlob](_crypto___data_blob.md) \*dataBlob) | Releases a **dataBlob** instance. | 
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci## Type Description
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci### Crypto_DataBlob
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci```
56e41f4b71Sopenharmony_citypedef struct Crypto_DataBlob Crypto_DataBlob
57e41f4b71Sopenharmony_ci```
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**Description**
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ciDefines a struct for the data used for encryption and decryption.
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci**Since**: 12
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci## Enum Description
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci### Crypto_CipherMode
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci```
72e41f4b71Sopenharmony_cienum Crypto_CipherMode
73e41f4b71Sopenharmony_ci```
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**Description**
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ciEnumerates the cryptographic operation types.
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**Since**: 12
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| Enum | Description | 
82e41f4b71Sopenharmony_ci| -------- | -------- |
83e41f4b71Sopenharmony_ci| CRYPTO_ENCRYPT_MODE | Encrypt data. | 
84e41f4b71Sopenharmony_ci| CRYPTO_DECRYPT_MODE | Decrypt data. | 
85e41f4b71Sopenharmony_ci
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci### OH_Crypto_ErrCode
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ci```
90e41f4b71Sopenharmony_cienum OH_Crypto_ErrCode
91e41f4b71Sopenharmony_ci```
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci**Description**
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ciEnumerates the encryption and decryption error codes.
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci**Since**: 12
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ci| Enum | Description | 
100e41f4b71Sopenharmony_ci| -------- | -------- |
101e41f4b71Sopenharmony_ci| CRYPTO_SUCCESS | The operation is successful. | 
102e41f4b71Sopenharmony_ci| CRYPTO_INVALID_PARAMS | Invalid parameters are detected. | 
103e41f4b71Sopenharmony_ci| CRYPTO_NOT_SUPPORT | The function or algorithm is not supported. | 
104e41f4b71Sopenharmony_ci| CRYPTO_MEMORY_ERROR | A memory error occurred. | 
105e41f4b71Sopenharmony_ci| CRYPTO_OPERTION_ERROR | The encryption or decryption operation fails. | 
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci## Function Description
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci### OH_Crypto_FreeDataBlob()
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci```
114e41f4b71Sopenharmony_civoid OH_Crypto_FreeDataBlob (Crypto_DataBlob *dataBlob)
115e41f4b71Sopenharmony_ci```
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci**Description**
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ciReleases a **dataBlob** instance.
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**Since**: 12
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci**Parameters**
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci| Name | Description | 
126e41f4b71Sopenharmony_ci| -------- | -------- |
127e41f4b71Sopenharmony_ci| dataBlob | Pointer to the **dataBlob** instance to release. | 
128