1e41f4b71Sopenharmony_ci# CryptoSignatureApi
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## Overview
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ciProvides APIs for signature verification.
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_signature.h](crypto__signature_8h.md) | Defines APIs for signature verification. | 
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci### Types
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci| Name | Description | 
24e41f4b71Sopenharmony_ci| -------- | -------- |
25e41f4b71Sopenharmony_ci| typedef struct [OH_CryptoVerify](#oh_cryptoverify) [OH_CryptoVerify](#oh_cryptoverify) | Defines the data used for signature verification. | 
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci### Enums
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci| Name | Description | 
31e41f4b71Sopenharmony_ci| -------- | -------- |
32e41f4b71Sopenharmony_ci| [CryptoSignature_ParamType](#cryptosignature_paramtype) {<br>CRYPTO_PSS_MD_NAME_STR = 100, CRYPTO_PSS_MGF_NAME_STR = 101,<br>CRYPTO_PSS_MGF1_NAME_STR = 102, CRYPTO_PSS_SALT_LEN_INT = 103,<br>CRYPTO_PSS_TRAILER_FIELD_INT = 104, CRYPTO_SM2_USER_ID_DATABLOB = 105<br>} | Enumerates the types of signature verification parameters. | 
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci### Functions
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci| Name | Description | 
38e41f4b71Sopenharmony_ci| -------- | -------- |
39e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Create](#oh_cryptoverify_create) (const char \*algoName, [OH_CryptoVerify](#oh_cryptoverify) \*\*verify) | Creates a **Verify** instance for signature verification. | 
40e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Init](#oh_cryptoverify_init) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx, [OH_CryptoPubKey](_crypto_asym_key_api.md#oh_cryptopubkey) \*pubKey) | Initializes a **Verify** instance by using the public key. | 
41e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Update](#oh_cryptoverify_update) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*in) | Updates the data to be verified. | 
42e41f4b71Sopenharmony_ci| bool [OH_CryptoVerify_Final](#oh_cryptoverify_final) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*in, [Crypto_DataBlob](_crypto___data_blob.md) \*signData) | Verifies the signature of the data. | 
43e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Recover](#oh_cryptoverify_recover) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*signData, [Crypto_DataBlob](_crypto___data_blob.md) \*rawSignData) | Restores the raw signature data. | 
44e41f4b71Sopenharmony_ci| const char \* [OH_CryptoVerify_GetAlgoName](#oh_cryptoverify_getalgoname) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx) | Obtains the signature verification algorithm. | 
45e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_SetParam](#oh_cryptoverify_setparam) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx, [CryptoSignature_ParamType](#cryptosignature_paramtype) type, [Crypto_DataBlob](_crypto___data_blob.md) \*value) | Sets a signature verification parameter. | 
46e41f4b71Sopenharmony_ci| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_GetParam](#oh_cryptoverify_getparam) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx, [CryptoSignature_ParamType](#cryptosignature_paramtype) type, [Crypto_DataBlob](_crypto___data_blob.md) \*value) | Obtains a signature verification parameter. | 
47e41f4b71Sopenharmony_ci| void [OH_CryptoVerify_Destroy](#oh_cryptoverify_destroy) ([OH_CryptoVerify](#oh_cryptoverify) \*ctx) | Destroys a **Verify** instance. | 
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ci## Type Description
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci### OH_CryptoVerify
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci```
56e41f4b71Sopenharmony_citypedef struct OH_CryptoVerifyOH_CryptoVerify
57e41f4b71Sopenharmony_ci```
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**Description**
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ciDefines the data used for signature verification.
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci**Since**: 12
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci
66e41f4b71Sopenharmony_ci## Enum Description
67e41f4b71Sopenharmony_ci
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci### CryptoSignature_ParamType
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci```
72e41f4b71Sopenharmony_cienum CryptoSignature_ParamType
73e41f4b71Sopenharmony_ci```
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**Description**
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ciEnumerates the types of signature verification parameters.
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**Since**: 12
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci| Enum | Description | 
82e41f4b71Sopenharmony_ci| -------- | -------- |
83e41f4b71Sopenharmony_ci| CRYPTO_PSS_MD_NAME_STR | MD algorithm used with the PSS padding mode in RSA. | 
84e41f4b71Sopenharmony_ci| CRYPTO_PSS_MGF_NAME_STR | Mask generation algorithm used with the PSS padding mode in RSA. Currently, only MGF1 is supported. | 
85e41f4b71Sopenharmony_ci| CRYPTO_PSS_MGF1_NAME_STR | MD parameters for the MGF1 mask generation used with the PSS padding mode in RSA. | 
86e41f4b71Sopenharmony_ci| CRYPTO_PSS_SALT_LEN_INT | Length of the salt in bytes used with the PSS padding mode in RSA. | 
87e41f4b71Sopenharmony_ci| CRYPTO_PSS_TRAILER_FIELD_INT | Trailer field used in the encoding operation when PSS padding mode is used in RSA. The value is **1**. | 
88e41f4b71Sopenharmony_ci| CRYPTO_SM2_USER_ID_DATABLOB | User ID field in SM2. | 
89e41f4b71Sopenharmony_ci
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci## Function Description
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ci
94e41f4b71Sopenharmony_ci### OH_CryptoVerify_Create()
95e41f4b71Sopenharmony_ci
96e41f4b71Sopenharmony_ci```
97e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoVerify_Create (const char *algoName, OH_CryptoVerify **verify )
98e41f4b71Sopenharmony_ci```
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci**Description**
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ciCreates a **Verify** instance for signature verification.
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci**Since**: 12
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ci**Parameters**
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci| Name | Description | 
109e41f4b71Sopenharmony_ci| -------- | -------- |
110e41f4b71Sopenharmony_ci| algoName | Pointer to the algorithm used to generate the **Verify** instance. For example, **'RSA1024\|PKCS1\|SHA256'**.| |  | 
111e41f4b71Sopenharmony_ci| verify | Pointer to the **Verify** instance created. | 
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ci**Returns**
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci**0**: The operation is successful.
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**401**: Invalid parameters are detected.
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**801**: The operation is not supported.
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci**17620001**: A memory error occurred.
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci**17630001**: Failed to call an API of a third-party algorithm library.
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ci### OH_CryptoVerify_Destroy()
129e41f4b71Sopenharmony_ci
130e41f4b71Sopenharmony_ci```
131e41f4b71Sopenharmony_civoid OH_CryptoVerify_Destroy (OH_CryptoVerify *ctx)
132e41f4b71Sopenharmony_ci```
133e41f4b71Sopenharmony_ci
134e41f4b71Sopenharmony_ci**Description**
135e41f4b71Sopenharmony_ci
136e41f4b71Sopenharmony_ciDestroys a **Verify** instance.
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci**Since**: 12
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci**Parameters**
141e41f4b71Sopenharmony_ci
142e41f4b71Sopenharmony_ci| Name | Description | 
143e41f4b71Sopenharmony_ci| -------- | -------- |
144e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance to destroy. | 
145e41f4b71Sopenharmony_ci
146e41f4b71Sopenharmony_ci
147e41f4b71Sopenharmony_ci### OH_CryptoVerify_Final()
148e41f4b71Sopenharmony_ci
149e41f4b71Sopenharmony_ci```
150e41f4b71Sopenharmony_cibool OH_CryptoVerify_Final (OH_CryptoVerify *ctx, Crypto_DataBlob *in, Crypto_DataBlob *signData )
151e41f4b71Sopenharmony_ci```
152e41f4b71Sopenharmony_ci
153e41f4b71Sopenharmony_ci**Description**
154e41f4b71Sopenharmony_ci
155e41f4b71Sopenharmony_ciVerifies the signature of the data.
156e41f4b71Sopenharmony_ci
157e41f4b71Sopenharmony_ci**Since**: 12
158e41f4b71Sopenharmony_ci
159e41f4b71Sopenharmony_ci**Parameters**
160e41f4b71Sopenharmony_ci
161e41f4b71Sopenharmony_ci| Name | Description | 
162e41f4b71Sopenharmony_ci| -------- | -------- |
163e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance. | 
164e41f4b71Sopenharmony_ci| in | Pointer to the data passed in. | 
165e41f4b71Sopenharmony_ci| out | Pointer to the signature data. | 
166e41f4b71Sopenharmony_ci
167e41f4b71Sopenharmony_ci**Returns**
168e41f4b71Sopenharmony_ci
169e41f4b71Sopenharmony_ciReturns a boolean value, indicating whether the signature verification is successful.
170e41f4b71Sopenharmony_ci
171e41f4b71Sopenharmony_ci**See**
172e41f4b71Sopenharmony_ci
173e41f4b71Sopenharmony_ci[OH_CryptoVerify_Init](#oh_cryptoverify_init)
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci[OH_CryptoVerify_Update](#oh_cryptoverify_update)
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci
178e41f4b71Sopenharmony_ci### OH_CryptoVerify_GetAlgoName()
179e41f4b71Sopenharmony_ci
180e41f4b71Sopenharmony_ci```
181e41f4b71Sopenharmony_ciconst char* OH_CryptoVerify_GetAlgoName (OH_CryptoVerify *ctx)
182e41f4b71Sopenharmony_ci```
183e41f4b71Sopenharmony_ci
184e41f4b71Sopenharmony_ci**Description**
185e41f4b71Sopenharmony_ci
186e41f4b71Sopenharmony_ciObtains the signature verification algorithm.
187e41f4b71Sopenharmony_ci
188e41f4b71Sopenharmony_ci**Since**: 12
189e41f4b71Sopenharmony_ci
190e41f4b71Sopenharmony_ci**Parameters**
191e41f4b71Sopenharmony_ci
192e41f4b71Sopenharmony_ci| Name | Description | 
193e41f4b71Sopenharmony_ci| -------- | -------- |
194e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance. | 
195e41f4b71Sopenharmony_ci
196e41f4b71Sopenharmony_ci**Returns**
197e41f4b71Sopenharmony_ci
198e41f4b71Sopenharmony_ciSignature verification algorithm obtained.
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci
201e41f4b71Sopenharmony_ci### OH_CryptoVerify_GetParam()
202e41f4b71Sopenharmony_ci
203e41f4b71Sopenharmony_ci```
204e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoVerify_GetParam (OH_CryptoVerify *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value )
205e41f4b71Sopenharmony_ci```
206e41f4b71Sopenharmony_ci
207e41f4b71Sopenharmony_ci**Description**
208e41f4b71Sopenharmony_ci
209e41f4b71Sopenharmony_ciObtains a signature verification parameter.
210e41f4b71Sopenharmony_ci
211e41f4b71Sopenharmony_ci**Since**: 12
212e41f4b71Sopenharmony_ci
213e41f4b71Sopenharmony_ci**Parameters**
214e41f4b71Sopenharmony_ci
215e41f4b71Sopenharmony_ci| Name | Description | 
216e41f4b71Sopenharmony_ci| -------- | -------- |
217e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance. | 
218e41f4b71Sopenharmony_ci| type | Name of the signature verification parameter to obtain. | 
219e41f4b71Sopenharmony_ci| value | Pointer to the parameter value obtained. | 
220e41f4b71Sopenharmony_ci
221e41f4b71Sopenharmony_ci**Returns**
222e41f4b71Sopenharmony_ci
223e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
224e41f4b71Sopenharmony_ci
225e41f4b71Sopenharmony_ci**0**: The operation is successful.
226e41f4b71Sopenharmony_ci
227e41f4b71Sopenharmony_ci**401**: Invalid parameters are detected.
228e41f4b71Sopenharmony_ci
229e41f4b71Sopenharmony_ci**801**: The operation is not supported.
230e41f4b71Sopenharmony_ci
231e41f4b71Sopenharmony_ci**17620001**: A memory error occurred.
232e41f4b71Sopenharmony_ci
233e41f4b71Sopenharmony_ci**17630001**: Failed to call an API of a third-party algorithm library.
234e41f4b71Sopenharmony_ci
235e41f4b71Sopenharmony_ci
236e41f4b71Sopenharmony_ci### OH_CryptoVerify_Init()
237e41f4b71Sopenharmony_ci
238e41f4b71Sopenharmony_ci```
239e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoVerify_Init (OH_CryptoVerify *ctx, OH_CryptoPubKey *pubKey )
240e41f4b71Sopenharmony_ci```
241e41f4b71Sopenharmony_ci
242e41f4b71Sopenharmony_ci**Description**
243e41f4b71Sopenharmony_ci
244e41f4b71Sopenharmony_ciInitializes a **Verify** instance by using the public key.
245e41f4b71Sopenharmony_ci
246e41f4b71Sopenharmony_ci**Since**: 12
247e41f4b71Sopenharmony_ci
248e41f4b71Sopenharmony_ci**Parameters**
249e41f4b71Sopenharmony_ci
250e41f4b71Sopenharmony_ci| Name | Description | 
251e41f4b71Sopenharmony_ci| -------- | -------- |
252e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance. | 
253e41f4b71Sopenharmony_ci| pubKey | Pointer to the public key. | 
254e41f4b71Sopenharmony_ci
255e41f4b71Sopenharmony_ci**Returns**
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
258e41f4b71Sopenharmony_ci
259e41f4b71Sopenharmony_ci**0**: The operation is successful.
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_ci**401**: Invalid parameters are detected.
262e41f4b71Sopenharmony_ci
263e41f4b71Sopenharmony_ci**801**: The operation is not supported.
264e41f4b71Sopenharmony_ci
265e41f4b71Sopenharmony_ci**17620001**: A memory error occurred.
266e41f4b71Sopenharmony_ci
267e41f4b71Sopenharmony_ci**17630001**: Failed to call an API of a third-party algorithm library.
268e41f4b71Sopenharmony_ci
269e41f4b71Sopenharmony_ci**See**
270e41f4b71Sopenharmony_ci
271e41f4b71Sopenharmony_ci[OH_CryptoVerify_Update](#oh_cryptoverify_update)
272e41f4b71Sopenharmony_ci
273e41f4b71Sopenharmony_ci[OH_CryptoVerify_Final](#oh_cryptoverify_final)
274e41f4b71Sopenharmony_ci
275e41f4b71Sopenharmony_ci
276e41f4b71Sopenharmony_ci### OH_CryptoVerify_Recover()
277e41f4b71Sopenharmony_ci
278e41f4b71Sopenharmony_ci```
279e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoVerify_Recover (OH_CryptoVerify *ctx, Crypto_DataBlob *signData, Crypto_DataBlob *rawSignData )
280e41f4b71Sopenharmony_ci```
281e41f4b71Sopenharmony_ci
282e41f4b71Sopenharmony_ci**Description**
283e41f4b71Sopenharmony_ci
284e41f4b71Sopenharmony_ciRestores the signature data.
285e41f4b71Sopenharmony_ci
286e41f4b71Sopenharmony_ci**Since**: 12
287e41f4b71Sopenharmony_ci
288e41f4b71Sopenharmony_ci**Parameters**
289e41f4b71Sopenharmony_ci
290e41f4b71Sopenharmony_ci| Name | Description | 
291e41f4b71Sopenharmony_ci| -------- | -------- |
292e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance. | 
293e41f4b71Sopenharmony_ci| signData | Pointer to the signature data to be restored. | 
294e41f4b71Sopenharmony_ci| rawSignData | Pointer to the raw data restored. | 
295e41f4b71Sopenharmony_ci
296e41f4b71Sopenharmony_ci**Returns**
297e41f4b71Sopenharmony_ci
298e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
299e41f4b71Sopenharmony_ci
300e41f4b71Sopenharmony_ci**0**: The operation is successful.
301e41f4b71Sopenharmony_ci
302e41f4b71Sopenharmony_ci**401**: Invalid parameters are detected.
303e41f4b71Sopenharmony_ci
304e41f4b71Sopenharmony_ci**801**: The operation is not supported.
305e41f4b71Sopenharmony_ci
306e41f4b71Sopenharmony_ci**17620001**: A memory error occurred.
307e41f4b71Sopenharmony_ci
308e41f4b71Sopenharmony_ci**17630001**: Failed to call an API of a third-party algorithm library.
309e41f4b71Sopenharmony_ci
310e41f4b71Sopenharmony_ci
311e41f4b71Sopenharmony_ci### OH_CryptoVerify_SetParam()
312e41f4b71Sopenharmony_ci
313e41f4b71Sopenharmony_ci```
314e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoVerify_SetParam (OH_CryptoVerify *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value )
315e41f4b71Sopenharmony_ci```
316e41f4b71Sopenharmony_ci
317e41f4b71Sopenharmony_ci**Description**
318e41f4b71Sopenharmony_ci
319e41f4b71Sopenharmony_ciSets a signature verification parameter.
320e41f4b71Sopenharmony_ci
321e41f4b71Sopenharmony_ci**Since**: 12
322e41f4b71Sopenharmony_ci
323e41f4b71Sopenharmony_ci**Parameters**
324e41f4b71Sopenharmony_ci
325e41f4b71Sopenharmony_ci| Name | Description | 
326e41f4b71Sopenharmony_ci| -------- | -------- |
327e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance. | 
328e41f4b71Sopenharmony_ci| type | Name of the signature verification parameter to set. | 
329e41f4b71Sopenharmony_ci| value | Pointer to the value of the signature verification parameter to set. | 
330e41f4b71Sopenharmony_ci
331e41f4b71Sopenharmony_ci**Returns**
332e41f4b71Sopenharmony_ci
333e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
334e41f4b71Sopenharmony_ci
335e41f4b71Sopenharmony_ci**0**: The operation is successful.
336e41f4b71Sopenharmony_ci
337e41f4b71Sopenharmony_ci**401**: Invalid parameters are detected.
338e41f4b71Sopenharmony_ci
339e41f4b71Sopenharmony_ci**801**: The operation is not supported.
340e41f4b71Sopenharmony_ci
341e41f4b71Sopenharmony_ci**17620001**: A memory error occurred.
342e41f4b71Sopenharmony_ci
343e41f4b71Sopenharmony_ci**17630001**: Failed to call an API of a third-party algorithm library.
344e41f4b71Sopenharmony_ci
345e41f4b71Sopenharmony_ci
346e41f4b71Sopenharmony_ci### OH_CryptoVerify_Update()
347e41f4b71Sopenharmony_ci
348e41f4b71Sopenharmony_ci```
349e41f4b71Sopenharmony_ciOH_Crypto_ErrCode OH_CryptoVerify_Update (OH_CryptoVerify *ctx, Crypto_DataBlob *in )
350e41f4b71Sopenharmony_ci```
351e41f4b71Sopenharmony_ci
352e41f4b71Sopenharmony_ci**Description**
353e41f4b71Sopenharmony_ci
354e41f4b71Sopenharmony_ciUpdates the data to be verified.
355e41f4b71Sopenharmony_ci
356e41f4b71Sopenharmony_ci**Since**: 12
357e41f4b71Sopenharmony_ci
358e41f4b71Sopenharmony_ci**Parameters**
359e41f4b71Sopenharmony_ci
360e41f4b71Sopenharmony_ci| Name | Description | 
361e41f4b71Sopenharmony_ci| -------- | -------- |
362e41f4b71Sopenharmony_ci| ctx | Pointer to the **Verify** instance. | 
363e41f4b71Sopenharmony_ci| in | Pointer to the data to pass in. | 
364e41f4b71Sopenharmony_ci
365e41f4b71Sopenharmony_ci**Returns**
366e41f4b71Sopenharmony_ci
367e41f4b71Sopenharmony_ci[OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode):
368e41f4b71Sopenharmony_ci
369e41f4b71Sopenharmony_ci**0**: The operation is successful.
370e41f4b71Sopenharmony_ci
371e41f4b71Sopenharmony_ci**401**: Invalid parameters are detected.
372e41f4b71Sopenharmony_ci
373e41f4b71Sopenharmony_ci**801**: The operation is not supported.
374e41f4b71Sopenharmony_ci
375e41f4b71Sopenharmony_ci**17620001**: A memory error occurred.
376e41f4b71Sopenharmony_ci
377e41f4b71Sopenharmony_ci**17630001**: Failed to call an API of a third-party algorithm library.
378e41f4b71Sopenharmony_ci
379e41f4b71Sopenharmony_ci**See**
380e41f4b71Sopenharmony_ci
381e41f4b71Sopenharmony_ci[OH_CryptoVerify_Init](#oh_cryptoverify_init)
382e41f4b71Sopenharmony_ci
383e41f4b71Sopenharmony_ci[OH_CryptoVerify_Final](#oh_cryptoverify_final)
384