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 | 指向验签实例的指针。 |
返回:
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_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 | 获取的验签参数的具体值。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
OH_CryptoVerify_Init()
OH_Crypto_ErrCode OH_CryptoVerify_Init (OH_CryptoVerify *ctx, OH_CryptoPubKey *pubKey )
描述
传入公钥初始化验签实例。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向验签实例。 |
| pubKey | 公钥对象。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
参见:
OH_CryptoVerify_Recover()
OH_Crypto_ErrCode OH_CryptoVerify_Recover (OH_CryptoVerify *ctx, Crypto_DataBlob *signData, Crypto_DataBlob *rawSignData )
描述
对签名数据进行恢复操作。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向验签实例。 |
| signData | 签名数据。 |
| rawSignData | 验签恢复的数据。 |
返回:
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 | 用于指定验签参数的具体值。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
OH_CryptoVerify_Update()
OH_Crypto_ErrCode OH_CryptoVerify_Update (OH_CryptoVerify *ctx, Crypto_DataBlob *in )
描述
追加待验签数据。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| ctx | 指向验签实例。 |
| in | 传入的消息。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
参见: