harmony 鸿蒙crypto_signature.h
crypto_signature.h
概述
定义验签接口。
库: libohcrypto.so
引用文件:
系统能力: SystemCapability.Security.CryptoFramework
起始版本: 12
相关模块: CryptoSignatureApi
汇总
结构体
|名称|typedef关键字|描述| |–|–|–| |OH_CryptoVerify|OH_CryptoVerify|定义验签结构体。| |OH_CryptoSign|OH_CryptoSign|定义签名结构体。| |OH_CryptoEccSignatureSpec|OH_CryptoEccSignatureSpec|定义ECC签名规范结构体。|
枚举
|名称|typedef关键字|描述| |–|–|–| |CryptoSignature_ParamType|CryptoSignature_ParamType|定义签名验签参数类型。|
函数
|名称|描述| |–|–| |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_Crypto_ErrCode OH_CryptoSign_Create(const char *algoName, OH_CryptoSign **sign)|根据给定的算法名称创建签名实例。| |OH_Crypto_ErrCode OH_CryptoSign_Init(OH_CryptoSign *ctx, OH_CryptoPrivKey *privKey)|初始化签名实例。| |OH_Crypto_ErrCode OH_CryptoSign_Update(OH_CryptoSign *ctx, const Crypto_DataBlob *in)|更新需要签名的数据。| |OH_Crypto_ErrCode OH_CryptoSign_Final(OH_CryptoSign *ctx, const Crypto_DataBlob *in, Crypto_DataBlob *out)|完成签名操作。| |const char *OH_CryptoSign_GetAlgoName(OH_CryptoSign *ctx)|获取签名实例的算法名称。| |OH_Crypto_ErrCode OH_CryptoSign_SetParam(OH_CryptoSign *ctx, CryptoSignature_ParamType type,const Crypto_DataBlob *value)|设置签名实例的指定参数。| |OH_Crypto_ErrCode OH_CryptoSign_GetParam(OH_CryptoSign *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value)|从签名实例获取指定参数。| |void OH_CryptoSign_Destroy(OH_CryptoSign *ctx)|销毁签名实例。| |OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_Create(Crypto_DataBlob *EccSignature,OH_CryptoEccSignatureSpec **spec)|创建ECC签名规范。| |OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_GetRAndS(OH_CryptoEccSignatureSpec *spec, Crypto_DataBlob *r,Crypto_DataBlob *s)|获取ECC签名的r和s值。| |OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_SetRAndS(OH_CryptoEccSignatureSpec *spec, Crypto_DataBlob *r,Crypto_DataBlob *s)|设置ECC签名的r和s值。| |OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_Encode(OH_CryptoEccSignatureSpec *spec, Crypto_DataBlob *out)|将ECC签名规范编码为DER格式的签名。| |void OH_CryptoEccSignatureSpec_Destroy(OH_CryptoEccSignatureSpec *spec)|销毁ECC签名规范。|
枚举类型说明
CryptoSignature_ParamType
enum CryptoSignature_ParamType
描述
定义签名验签参数类型。
起始版本: 12
|枚举项|描述| |–|–| |CRYPTO_PSS_MD_NAME_STR = 100|表示RSA算法中,使用PSS模式时,消息摘要功能的算法名。| |CRYPTO_PSS_MGF_NAME_STR = 101|表示RSA算法中,使用PSS模式时,掩码生成算法(目前仅支持MGF1)。| |CRYPTO_PSS_MGF1_NAME_STR = 102|表示RSA算法中,使用PSS模式时,MGF1掩码生成功能的消息摘要参数。| |CRYPTO_PSS_SALT_LEN_INT = 103|表示RSA算法中,使用PSS模式时,盐值的长度,长度以字节为单位。| |CRYPTO_PSS_TRAILER_FIELD_INT = 104|表示RSA算法中,使用PSS模式时,用于编码操作的整数,值为1。| |CRYPTO_SM2_USER_ID_DATABLOB = 105|表示SM2算法中,用户身份标识字段。|
函数说明
OH_CryptoVerify_Create()
OH_Crypto_ErrCode OH_CryptoVerify_Create(const char *algoName, OH_CryptoVerify **verify)
描述
创建验签实例。
起始版本: 12
参数:
|参数项|描述|
|–|–|
|const char *algoName|用于生成验签实例的算法名称。
例如”RSA1024|PKCS1|SHA256”|
|OH_CryptoVerify **verify|指向验签实例的指针。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoVerify_Init()
OH_Crypto_ErrCode OH_CryptoVerify_Init(OH_CryptoVerify *ctx, OH_CryptoPubKey *pubKey)
描述
传入公钥初始化验签实例。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。| |OH_CryptoPubKey *pubKey|公钥对象。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
参考:
OH_CryptoVerify_Update()
OH_Crypto_ErrCode OH_CryptoVerify_Update(OH_CryptoVerify *ctx, Crypto_DataBlob *in)
描述
追加待验签数据。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。| |Crypto_DataBlob *in|传入的消息。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
参考:
OH_CryptoVerify_Final()
bool OH_CryptoVerify_Final(OH_CryptoVerify *ctx, Crypto_DataBlob *in, Crypto_DataBlob *signData)
描述
对数据进行验签。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。| |Crypto_DataBlob *in|传入的数据。| |Crypto_DataBlob *signData|签名数据。|
返回:
|类型|说明| |–|–| |bool|表示验签是否通过。|
参考:
OH_CryptoVerify_Recover()
OH_Crypto_ErrCode OH_CryptoVerify_Recover(OH_CryptoVerify *ctx, Crypto_DataBlob *signData,Crypto_DataBlob *rawSignData)
描述
对签名数据进行恢复操作。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。| |Crypto_DataBlob *signData|签名数据。| |Crypto_DataBlob *rawSignData| 验签恢复的数据。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoVerify_GetAlgoName()
const char *OH_CryptoVerify_GetAlgoName(OH_CryptoVerify *ctx)
描述
获取验签算法名称。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。|
返回:
|类型|说明| |–|–| |const char|返回验签算法名称。|
OH_CryptoVerify_SetParam()
OH_Crypto_ErrCode OH_CryptoVerify_SetParam(OH_CryptoVerify *ctx, CryptoSignature_ParamType type,Crypto_DataBlob *value)
描述
设置验签参数。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。| |CryptoSignature_ParamType type|用于指定需要设置的验签参数。| |Crypto_DataBlob *value|用于指定验签参数的具体值。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoVerify_GetParam()
OH_Crypto_ErrCode OH_CryptoVerify_GetParam(OH_CryptoVerify *ctx, CryptoSignature_ParamType type,Crypto_DataBlob *value)
描述
获取验签参数。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。| |CryptoSignature_ParamType type|用于指定需要获取的验签参数。| |Crypto_DataBlob *value|获取的验签参数的具体值。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoVerify_Destroy()
void OH_CryptoVerify_Destroy(OH_CryptoVerify *ctx)
描述
销毁验签实例。
起始版本: 12
参数:
|参数项|描述| |–|–| |OH_CryptoVerify *ctx|指向验签实例。|
OH_CryptoSign_Create()
OH_Crypto_ErrCode OH_CryptoSign_Create(const char *algoName, OH_CryptoSign **sign)
描述
根据给定的算法名称创建签名实例。
起始版本: 20
参数:
|参数项|描述|
|–|–|
|const char *algoName|用于生成签名实例的算法名称。
例如”RSA|PKCS1|SHA384”、”ECC|SHA384”。|
|OH_CryptoSign **sign|签名实例。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoSign_Init()
OH_Crypto_ErrCode OH_CryptoSign_Init(OH_CryptoSign *ctx, OH_CryptoPrivKey *privKey)
描述
初始化签名实例。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoSign *ctx|指向签名实例。| |OH_CryptoPrivKey *privKey|私钥。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
参考:
OH_CryptoSign_Update()
OH_Crypto_ErrCode OH_CryptoSign_Update(OH_CryptoSign *ctx, const Crypto_DataBlob *in)
描述
更新需要签名的数据。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoSign *ctx|指向签名实例。| |const Crypto_DataBlob *in|需要签名的数据。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
参考:
OH_CryptoSign_Final()
OH_Crypto_ErrCode OH_CryptoSign_Final(OH_CryptoSign *ctx, const Crypto_DataBlob *in, Crypto_DataBlob *out)
描述
完成签名操作。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoSign *ctx|指向签名实例。| |const Crypto_DataBlob *in|需要签名的数据。| |Crypto_DataBlob *out|签名结果。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
参考:
OH_CryptoSign_GetAlgoName()
const char *OH_CryptoSign_GetAlgoName(OH_CryptoSign *ctx)
描述
获取签名实例的算法名称。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoSign *ctx|指向签名实例。|
返回:
|类型|说明| |–|–| |const char|返回签名算法名称。|
OH_CryptoSign_SetParam()
OH_Crypto_ErrCode OH_CryptoSign_SetParam(OH_CryptoSign *ctx, CryptoSignature_ParamType type,const Crypto_DataBlob *value)
描述
设置签名实例的指定参数。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoSign *ctx|指向签名实例。| |CryptoSignature_ParamType type|签名参数类型。| |const Crypto_DataBlob *value|输入数据。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoSign_GetParam()
OH_Crypto_ErrCode OH_CryptoSign_GetParam(OH_CryptoSign *ctx, CryptoSignature_ParamType type, Crypto_DataBlob *value)
描述
从签名实例获取指定参数。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoSign *ctx|指向签名实例。| |CryptoSignature_ParamType type|签名参数类型。| |Crypto_DataBlob *value|输出数据。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoSign_Destroy()
void OH_CryptoSign_Destroy(OH_CryptoSign *ctx)
描述
销毁签名实例。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoSign *ctx|指向签名实例。|
OH_CryptoEccSignatureSpec_Create()
OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_Create(Crypto_DataBlob *EccSignature,OH_CryptoEccSignatureSpec **spec)
描述
创建ECC签名规范。
起始版本: 20
参数:
|参数项|描述| |–|–| |Crypto_DataBlob *EccSignature|ECC签名(DER格式),如果EccSignature参数为NULL,将创建一个空的ECC签名规范。| |OH_CryptoEccSignatureSpec **spec|输出的ECC签名规范。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoEccSignatureSpec_GetRAndS()
OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_GetRAndS(OH_CryptoEccSignatureSpec *spec, Crypto_DataBlob *r,Crypto_DataBlob *s)
描述
获取ECC签名的r和s值。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoEccSignatureSpec *spec|指向ECC签名规范。| |Crypto_DataBlob *r|r值。| |Crypto_DataBlob *s|s值。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoEccSignatureSpec_SetRAndS()
OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_SetRAndS(OH_CryptoEccSignatureSpec *spec, Crypto_DataBlob *r,Crypto_DataBlob *s)
描述
设置ECC签名的r和s值。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoEccSignatureSpec *spec|指向ECC签名规范。| |Crypto_DataBlob *r|r值。| |Crypto_DataBlob *s|s值。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoEccSignatureSpec_Encode()
OH_Crypto_ErrCode OH_CryptoEccSignatureSpec_Encode(OH_CryptoEccSignatureSpec *spec, Crypto_DataBlob *out)
描述
将ECC签名规范编码为DER格式的签名。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoEccSignatureSpec *spec|指向ECC签名规范。| |Crypto_DataBlob *out|输出数据。|
返回:
|类型|说明|
|–|–|
|OH_Crypto_ErrCode| CRYPTO_SUCCESS = 0 : 操作成功。
CRYPTO_INVALID_PARAMS = 401 : 参数无效。
CRYPTO_NOT_SUPPORTED = 801 : 操作不支持。
CRYPTO_MEMORY_ERROR = 17620001 : 内存错误。
CRYPTO_OPERTION_ERROR = 17630001 : 调用三方算法库API出错。|
OH_CryptoEccSignatureSpec_Destroy()
void OH_CryptoEccSignatureSpec_Destroy(OH_CryptoEccSignatureSpec *spec)
描述
销毁ECC签名规范。
起始版本: 20
参数:
|参数项|描述| |–|–| |OH_CryptoEccSignatureSpec *spec|指向ECC签名规范。|
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Crypto Architecture Kit(加解密算法框架服务)
harmony 鸿蒙crypto_architecture_kit.h
harmony 鸿蒙crypto_asym_cipher.h
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦