1# crypto_signature.h 2 3 4## Overview 5 6Provides APIs for signature verification. 7 8**Library**: libohcrypto.z.so 9 10**System capability**: SystemCapability.Security.CryptoFramework 11 12**Since**: 12 13 14**Related module**: [CryptoSignatureApi](_crypto_signature_api.md) 15 16 17## Summary 18 19 20### Types 21 22| Name | Description | 23| -------- | -------- | 24| typedef struct [OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) [OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) | Defines the data used for signature verification. | 25 26 27### Enums 28 29| Name | Description | 30| -------- | -------- | 31| [CryptoSignature_ParamType](_crypto_signature_api.md#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. | 32 33 34### Functions 35 36| Name | Description | 37| -------- | -------- | 38| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Create](_crypto_signature_api.md#oh_cryptoverify_create) (const char \*algoName, [OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*\*verify) | Creates a **Verify** instance for signature verification. | 39| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Init](_crypto_signature_api.md#oh_cryptoverify_init) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx, [OH_CryptoPubKey](_crypto_asym_key_api.md#oh_cryptopubkey) \*pubKey) | Initializes a **Verify** instance by using the public key. | 40| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Update](_crypto_signature_api.md#oh_cryptoverify_update) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*in) | Updates the data to be verified. | 41| bool [OH_CryptoVerify_Final](_crypto_signature_api.md#oh_cryptoverify_final) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*in, [Crypto_DataBlob](_crypto___data_blob.md) \*signData) | Verifies the signature of the data. | 42| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_Recover](_crypto_signature_api.md#oh_cryptoverify_recover) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx, [Crypto_DataBlob](_crypto___data_blob.md) \*signData, [Crypto_DataBlob](_crypto___data_blob.md) \*rawSignData) | Restores the signature data. | 43| const char \* [OH_CryptoVerify_GetAlgoName](_crypto_signature_api.md#oh_cryptoverify_getalgoname) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx) | Obtains the signature verification algorithm. | 44| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_SetParam](_crypto_signature_api.md#oh_cryptoverify_setparam) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx, [CryptoSignature_ParamType](_crypto_signature_api.md#cryptosignature_paramtype) type, [Crypto_DataBlob](_crypto___data_blob.md) \*value) | Sets signature verification parameters. | 45| [OH_Crypto_ErrCode](_crypto_common_api.md#oh_crypto_errcode) [OH_CryptoVerify_GetParam](_crypto_signature_api.md#oh_cryptoverify_getparam) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx, [CryptoSignature_ParamType](_crypto_signature_api.md#cryptosignature_paramtype) type, [Crypto_DataBlob](_crypto___data_blob.md) \*value) | Obtains signature verification parameters. | 46| void [OH_CryptoVerify_Destroy](_crypto_signature_api.md#oh_cryptoverify_destroy) ([OH_CryptoVerify](_crypto_signature_api.md#oh_cryptoverify) \*ctx) | Destroys a **Verify** instance. | 47