CryptoSignatureApi

概述

为应用提供验签接口。

起始版本: 12

汇总

文件

名称 描述
crypto_signature.h 定义验签接口。

类型定义

名称 描述
typedef struct OH_CryptoVerify OH_CryptoVerify 定义验签结构体。

枚举

名称 描述
CryptoSignature_ParamType {
CRYPTO_PSS_MD_NAME_STR = 100, CRYPTO_PSS_MGF_NAME_STR = 101,
CRYPTO_PSS_MGF1_NAME_STR = 102, CRYPTO_PSS_SALT_LEN_INT = 103,
CRYPTO_PSS_TRAILER_FIELD_INT = 104, CRYPTO_SM2_USER_ID_DATABLOB = 105
}
定义签名验签参数类型。

函数

名称 描述
OH_Crypto_ErrCode OH_CryptoVerify_Create (const char *algoName, OH_CryptoVerify **verify) 创建验签实例。
OH_Crypto_ErrCode OH_CryptoVerify_Init (OH_CryptoVerify *ctx, OH_CryptoPubKey *pubKey) 传入公钥初始化验签实例。
OH_Crypto_ErrCode OH_CryptoVerify_Update (OH_CryptoVerify *ctx, Crypto_DataBlob *in) 追加待验签数据。
bool OH_CryptoVerify_Final (OH_CryptoVerify *ctx, Crypto_DataBlob *in, Crypto_DataBlob *signData) 对数据进行验签。
OH_Crypto_ErrCode OH_CryptoVerify_Recover (OH_CryptoVerify *ctx, Crypto_DataBlob *signData, Crypto_DataBlob *rawSignData) 对签名数据进行恢复操作。
const char * OH_CryptoVerify_GetAlgoName (OH_CryptoVerify *ctx) 获取验签算法名称。
OH_Crypto_ErrCode OH_CryptoVerify_SetParam (OH_CryptoVerify *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value) 设置验签参数。
OH_Crypto_ErrCode OH_CryptoVerify_GetParam (OH_CryptoVerify *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value) 获取验签参数。
void OH_CryptoVerify_Destroy (OH_CryptoVerify *ctx) 销毁验签实例。

类型定义说明

OH_CryptoVerify

typedef struct OH_CryptoVerifyOH_CryptoVerify

描述

定义验签结构体。

起始版本: 12

枚举类型说明

CryptoSignature_ParamType

enum CryptoSignature_ParamType

描述

定义签名验签参数类型。

起始版本: 12

枚举值 描述
CRYPTO_PSS_MD_NAME_STR 表示RSA算法中,使用PSS模式时,消息摘要功能的算法名。
CRYPTO_PSS_MGF_NAME_STR 表示RSA算法中,使用PSS模式时,掩码生成算法(目前仅支持MGF1)。
CRYPTO_PSS_MGF1_NAME_STR 表示RSA算法中,使用PSS模式时,MGF1掩码生成功能的消息摘要参数。
CRYPTO_PSS_SALT_LEN_INT 表示RSA算法中,使用PSS模式时,盐值的长度,长度以字节为单位。
CRYPTO_PSS_TRAILER_FIELD_INT 表示RSA算法中,使用PSS模式时,用于编码操作的整数,值为1。
CRYPTO_SM2_USER_ID_DATABLOB 表示SM2算法中,用户身份标识字段。

函数说明

OH_CryptoVerify_Create()

OH_Crypto_ErrCode OH_CryptoVerify_Create (const char *algoName, OH_CryptoVerify **verify )

描述

创建验签实例。

起始版本: 12

参数:

名称 描述
algoName 用于生成验签实例的算法名称。例如:RSA1024|PKCS1|SHA256
verify 指向验签实例的指针。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

17630001 - 调用三方算法库API出错。

OH_CryptoVerify_Destroy()

void OH_CryptoVerify_Destroy (OH_CryptoVerify *ctx)

描述

销毁验签实例。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。

OH_CryptoVerify_Final()

bool OH_CryptoVerify_Final (OH_CryptoVerify *ctx, Crypto_DataBlob *in, Crypto_DataBlob *signData )

描述

对数据进行验签。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。
in 传入的数据。
out 签名数据。

返回:

返回bool类型,代表验签是否通过。

参见:

OH_CryptoVerify_Init

OH_CryptoVerify_Update

OH_CryptoVerify_GetAlgoName()

const char* OH_CryptoVerify_GetAlgoName (OH_CryptoVerify *ctx)

描述

获取验签算法名称。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。

返回:

返回验签算法名称。

OH_CryptoVerify_GetParam()

OH_Crypto_ErrCode OH_CryptoVerify_GetParam (OH_CryptoVerify *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value )

描述

获取验签参数。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。
type 用于指定需要获取的验签参数。
value 获取的验签参数的具体值。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

17630001 - 调用三方算法库API出错。

OH_CryptoVerify_Init()

OH_Crypto_ErrCode OH_CryptoVerify_Init (OH_CryptoVerify *ctx, OH_CryptoPubKey *pubKey )

描述

传入公钥初始化验签实例。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。
pubKey 公钥对象。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

17630001 - 调用三方算法库API出错。

参见:

OH_CryptoVerify_Update

OH_CryptoVerify_Final

OH_CryptoVerify_Recover()

OH_Crypto_ErrCode OH_CryptoVerify_Recover (OH_CryptoVerify *ctx, Crypto_DataBlob *signData, Crypto_DataBlob *rawSignData )

描述

对签名数据进行恢复操作。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。
signData 签名数据。
rawSignData 验签恢复的数据。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

17630001 - 调用三方算法库API出错。

OH_CryptoVerify_SetParam()

OH_Crypto_ErrCode OH_CryptoVerify_SetParam (OH_CryptoVerify *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value )

描述

设置验签参数。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。
type 用于指定需要设置的验签参数。
value 用于指定验签参数的具体值。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

17630001 - 调用三方算法库API出错。

OH_CryptoVerify_Update()

OH_Crypto_ErrCode OH_CryptoVerify_Update (OH_CryptoVerify *ctx, Crypto_DataBlob *in )

描述

追加待验签数据。

起始版本: 12

参数:

名称 描述
ctx 指向验签实例。
in 传入的消息。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

17630001 - 调用三方算法库API出错。

参见:

OH_CryptoVerify_Init

OH_CryptoVerify_Final