crypto_asym_cipher.h
概述
定义非对称密钥加密API。
引用文件: <CryptoArchitectureKit/crypto_asym_cipher.h>
库: libohcrypto.so
系统能力: SystemCapability.Security.CryptoFramework
起始版本: 20
相关模块: CryptoAsymCipherApi
汇总
结构体
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| OH_CryptoAsymCipher | OH_CryptoAsymCipher | 定义非对称加密结构。 |
| OH_CryptoSm2CiphertextSpec | OH_CryptoSm2CiphertextSpec | 定义SM2密文规格结构。 |
枚举
| 名称 | typedef关键字 | 描述 |
|---|---|---|
| CryptoSm2CiphertextSpec_item | CryptoSm2CiphertextSpec_item | 定义SM2密文规格项类型。 |
函数
枚举类型说明
CryptoSm2CiphertextSpec_item
enum CryptoSm2CiphertextSpec_item
描述
定义SM2密文规格项类型。
起始版本: 20
| 枚举项 | 描述 |
|---|---|
| CRYPTO_SM2_CIPHERTEXT_C1_X = 0 | 公钥x,也称为C1x。 |
| CRYPTO_SM2_CIPHERTEXT_C1_Y = 1 | 公钥y,也称为C1y。 |
| CRYPTO_SM2_CIPHERTEXT_C2 = 2 | 哈希值,也称为C2。 |
| CRYPTO_SM2_CIPHERTEXT_C3 = 3 | 密文数据,也称为C3。 |
函数说明
OH_CryptoAsymCipher_Create()
OH_Crypto_ErrCode OH_CryptoAsymCipher_Create(const char *algoName, OH_CryptoAsymCipher **ctx)
描述
根据给定的算法名称创建非对称加密。
注意:创建的资源必须通过OH_CryptoAsymCipher_Destroy销毁。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| const char *algoName | 用于生成加密的算法名称。 例如"RSA|PKCS1_OAEP|SHA384|MGF1_SHA384", "SM2|SM3"。 |
| OH_CryptoAsymCipher **ctx | 指向非对称加密上下文的指针。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_Crypto_ErrCode | CRYPTO_SUCCESS:操作成功。 CRYPTO_NOT_SUPPORTED:操作不支持。 CRYPTO_MEMORY_ERROR:内存错误。 CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。 CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
OH_CryptoAsymCipher_Init()
OH_Crypto_ErrCode OH_CryptoAsymCipher_Init(OH_CryptoAsymCipher *ctx, Crypto_CipherMode mode, OH_CryptoKeyPair *key)
描述
初始化非对称加密。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_CryptoAsymCipher *ctx | 非对称加密上下文。 |
| Crypto_CipherMode mode | 加密模式是加密还是解密。 |
| OH_CryptoKeyPair *key | 非对称密钥。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_Crypto_ErrCode | CRYPTO_SUCCESS:操作成功。 CRYPTO_NOT_SUPPORTED:操作不支持。 CRYPTO_MEMORY_ERROR:内存错误。 CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。 CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
参考:
OH_CryptoAsymCipher_Final()
OH_Crypto_ErrCode OH_CryptoAsymCipher_Final(OH_CryptoAsymCipher *ctx, const Crypto_DataBlob *in, Crypto_DataBlob *out)
描述
完成非对称加密。
注意:使用完成后必须通过OH_Crypto_FreeDataBlob释放out内存。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_CryptoAsymCipher *ctx | 非对称加密上下文。 |
| const Crypto_DataBlob *in | 要加密或解密的数据。 |
| Crypto_DataBlob *out | 最终加密或解密的数据。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_Crypto_ErrCode | CRYPTO_SUCCESS:操作成功。 CRYPTO_NOT_SUPPORTED:操作不支持。 CRYPTO_MEMORY_ERROR:内存错误。 CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。 CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
参考:
OH_CryptoAsymCipher_Destroy()
void OH_CryptoAsymCipher_Destroy(OH_CryptoAsymCipher *ctx)
描述
销毁非对称加密上下文。
参数:
| 参数项 | 描述 |
|---|---|
| OH_CryptoAsymCipher *ctx | 非对称加密上下文。 |
OH_CryptoSm2CiphertextSpec_Create()
OH_Crypto_ErrCode OH_CryptoSm2CiphertextSpec_Create(Crypto_DataBlob *sm2Ciphertext, OH_CryptoSm2CiphertextSpec **spec)
描述
创建SM2密文规格。
注意:创建的资源必须通过OH_CryptoSm2CiphertextSpec_Destroy销毁。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| Crypto_DataBlob *sm2Ciphertext | SM2密文DER格式数据,如果为NULL则创建空的SM2密文规格。 |
| OH_CryptoSm2CiphertextSpec **spec | 输出的SM2密文规格。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_Crypto_ErrCode | CRYPTO_SUCCESS:操作成功。 CRYPTO_NOT_SUPPORTED:操作不支持。 CRYPTO_MEMORY_ERROR:内存错误。 CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。 CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
OH_CryptoSm2CiphertextSpec_GetItem()
OH_Crypto_ErrCode OH_CryptoSm2CiphertextSpec_GetItem(OH_CryptoSm2CiphertextSpec *spec, CryptoSm2CiphertextSpec_item item, Crypto_DataBlob *out)
描述
获取SM2密文规格中的指定项。
注意:使用完成后必须通过OH_Crypto_FreeDataBlob释放out内存。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_CryptoSm2CiphertextSpec *spec | SM2密文规格。 |
| CryptoSm2CiphertextSpec_item item | SM2密文规格项。 |
| Crypto_DataBlob *out | 输出数据。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_Crypto_ErrCode | CRYPTO_SUCCESS:操作成功。 CRYPTO_NOT_SUPPORTED:操作不支持。 CRYPTO_MEMORY_ERROR:内存错误。 CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。 CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
OH_CryptoSm2CiphertextSpec_SetItem()
OH_Crypto_ErrCode OH_CryptoSm2CiphertextSpec_SetItem(OH_CryptoSm2CiphertextSpec *spec, CryptoSm2CiphertextSpec_item item, Crypto_DataBlob *in)
描述
设置SM2密文规格中的指定项。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_CryptoSm2CiphertextSpec *spec | SM2密文规格。 |
| CryptoSm2CiphertextSpec_item item | SM2密文规格项。 |
| Crypto_DataBlob *in | 输入数据。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_Crypto_ErrCode | CRYPTO_SUCCESS:操作成功。 CRYPTO_NOT_SUPPORTED:操作不支持。 CRYPTO_MEMORY_ERROR:内存错误。 CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。 CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
OH_CryptoSm2CiphertextSpec_Encode()
OH_Crypto_ErrCode OH_CryptoSm2CiphertextSpec_Encode(OH_CryptoSm2CiphertextSpec *spec, Crypto_DataBlob *out)
描述
将SM2密文规格编码为DER格式密文。
注意:使用完成后必须通过OH_Crypto_FreeDataBlob释放out内存。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_CryptoSm2CiphertextSpec *spec | SM2密文规格。 |
| Crypto_DataBlob *out | 输出数据。 |
返回:
| 类型 | 说明 |
|---|---|
| OH_Crypto_ErrCode | CRYPTO_SUCCESS:操作成功。 CRYPTO_NOT_SUPPORTED:操作不支持。 CRYPTO_MEMORY_ERROR:内存错误。 CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。 CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 |
OH_CryptoSm2CiphertextSpec_Destroy()
void OH_CryptoSm2CiphertextSpec_Destroy(OH_CryptoSm2CiphertextSpec *spec)
描述
销毁SM2密文规格。
起始版本: 20
参数:
| 参数项 | 描述 |
|---|---|
| OH_CryptoSm2CiphertextSpec *spec | SM2密文规格。 |