文档管理中心
您当前浏览的HarmonyOS 5.0.0(API 12)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更

CryptoAsymKeyApi

概述

为应用提供非对称密钥相关接口功能。

起始版本: 12

汇总

文件

展开
名称 描述
crypto_asym_key.h 声明非对称密钥接口。

类型定义

展开
名称 描述
typedef struct OH_CryptoKeyPair OH_CryptoKeyPair 定义密钥对结构体。
typedef struct OH_CryptoPubKey OH_CryptoPubKey 定义公钥结构体。
typedef struct OH_CryptoAsymKeyGenerator OH_CryptoAsymKeyGenerator 定义非对称密钥生成器结构体。

枚举

展开
名称 描述

CryptoAsymKey_ParamType {

CRYPTO_DSA_P_DATABLOB = 101, CRYPTO_DSA_Q_DATABLOB = 102,

CRYPTO_DSA_G_DATABLOB = 103, CRYPTO_DSA_SK_DATABLOB = 104,

CRYPTO_DSA_PK_DATABLOB = 105, CRYPTO_ECC_FP_P_DATABLOB = 201,

CRYPTO_ECC_A_DATABLOB = 202, CRYPTO_ECC_B_DATABLOB = 203,

CRYPTO_ECC_G_X_DATABLOB = 204, CRYPTO_ECC_G_Y_DATABLOB = 205,

CRYPTO_ECC_N_DATABLOB = 206, CRYPTO_ECC_H_INT = 207,

CRYPTO_ECC_SK_DATABLOB = 208, CRYPTO_ECC_PK_X_DATABLOB = 209,

CRYPTO_ECC_PK_Y_DATABLOB = 210, CRYPTO_ECC_FIELD_TYPE_STR = 211,

CRYPTO_ECC_FIELD_SIZE_INT = 212, CRYPTO_ECC_CURVE_NAME_STR = 213,

CRYPTO_RSA_N_DATABLOB = 301, CRYPTO_RSA_D_DATABLOB = 302,

CRYPTO_RSA_E_DATABLOB = 303, CRYPTO_DH_P_DATABLOB = 401,

CRYPTO_DH_G_DATABLOB = 402, CRYPTO_DH_L_NUM = 403,

CRYPTO_DH_SK_DATABLOB = 404, CRYPTO_DH_PK_DATABLOB = 405,

CRYPTO_ED25519_SK_DATABLOB = 501, CRYPTO_ED25519_PK_DATABLOB = 502,

CRYPTO_X25519_SK_DATABLOB = 601, CRYPTO_X25519_PK_DATABLOB = 602

}

定义非对称密钥参数类型。
Crypto_EncodingType { CRYPTO_PEM = 0, CRYPTO_DER = 1 } 定义编码格式。

函数

展开
名称 描述
OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Create (const char *algoName, OH_CryptoAsymKeyGenerator **ctx) 通过指定算法名称的字符串,获取相应的非对称密钥生成器实例。
OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Generate (OH_CryptoAsymKeyGenerator *ctx, OH_CryptoKeyPair **keyCtx) 随机生成非对称密钥(密钥对)。
OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Convert (OH_CryptoAsymKeyGenerator *ctx, Crypto_EncodingType type, Crypto_DataBlob *pubKeyData, Crypto_DataBlob *priKeyData, OH_CryptoKeyPair **keyCtx) 转换非对称密钥数据为密钥对。
const char * OH_CryptoAsymKeyGenerator_GetAlgoName (OH_CryptoAsymKeyGenerator *ctx) 获取非对称密钥算法名称。
void OH_CryptoAsymKeyGenerator_Destroy (OH_CryptoAsymKeyGenerator *ctx) 销毁非对称密钥生成器实例。
void OH_CryptoKeyPair_Destroy (OH_CryptoKeyPair *keyCtx) 销毁非对称密钥对实例。
OH_CryptoPubKey * OH_CryptoKeyPair_GetPubKey (OH_CryptoKeyPair *keyCtx) 从密钥对中获取公钥实例。
OH_Crypto_ErrCode OH_CryptoPubKey_Encode (OH_CryptoPubKey *key, Crypto_EncodingType type, const char *encodingStandard, Crypto_DataBlob *out) 根据指定的编码格式输出公钥数据。
OH_Crypto_ErrCode OH_CryptoPubKey_GetParam (OH_CryptoPubKey *key, CryptoAsymKey_ParamType item, Crypto_DataBlob *value) 从公钥实例获取指定参数。

类型定义说明

OH_CryptoAsymKeyGenerator

typedef struct OH_CryptoAsymKeyGenerator OH_CryptoAsymKeyGenerator

描述

定义非对称密钥生成器结构体。

起始版本: 12

OH_CryptoKeyPair

typedef struct OH_CryptoKeyPair OH_CryptoKeyPair

描述

定义密钥对结构体。

起始版本: 12

OH_CryptoPubKey

typedef struct OH_CryptoPubKey OH_CryptoPubKey

描述

定义公钥结构体。

起始版本: 12

枚举类型说明

Crypto_EncodingType

enum Crypto_EncodingType

描述

定义编码格式。

起始版本: 12

展开
枚举值 描述
CRYPTO_PEM PEM格式密钥类型。
CRYPTO_DER DER格式密钥类型。

CryptoAsymKey_ParamType

enum CryptoAsymKey_ParamType

描述

定义非对称密钥参数类型。

起始版本: 12

展开
枚举值 描述
CRYPTO_DSA_P_DATABLOB DSA算法的素模数p。
CRYPTO_DSA_Q_DATABLOB DSA算法中密钥参数q(p-1的素因子)。
CRYPTO_DSA_G_DATABLOB DSA算法的参数g。
CRYPTO_DSA_SK_DATABLOB DSA算法的私钥sk。
CRYPTO_DSA_PK_DATABLOB DSA算法的公钥pk。
CRYPTO_ECC_FP_P_DATABLOB ECC算法中表示椭圆曲线Fp域的素数p。
CRYPTO_ECC_A_DATABLOB ECC算法中椭圆曲线的第一个系数a。
CRYPTO_ECC_B_DATABLOB ECC算法中椭圆曲线的第二个系数b。
CRYPTO_ECC_G_X_DATABLOB ECC算法中基点g的x坐标。
CRYPTO_ECC_G_Y_DATABLOB ECC算法中基点g的y坐标。
CRYPTO_ECC_N_DATABLOB ECC算法中基点g的阶n。
CRYPTO_ECC_H_INT ECC算法中的余因子h。
CRYPTO_ECC_SK_DATABLOB ECC算法中的私钥sk。
CRYPTO_ECC_PK_X_DATABLOB ECC算法中,公钥pk(椭圆曲线上的一个点)的x坐标。
CRYPTO_ECC_PK_Y_DATABLOB ECC算法中,公钥pk(椭圆曲线上的一个点)的y坐标。
CRYPTO_ECC_FIELD_TYPE_STR ECC算法中,椭圆曲线的域类型(当前只支持Fp域)。
CRYPTO_ECC_FIELD_SIZE_INT ECC算法中域的大小,单位为bits(注:对于Fp域,域的大小为素数p的bits长度)。
CRYPTO_ECC_CURVE_NAME_STR ECC算法中的SECG(Standards for Efficient Cryptography Group)曲线名称。
CRYPTO_RSA_N_DATABLOB RSA算法中的模数n。
CRYPTO_RSA_D_DATABLOB RSA算法中的私钥sk(即私钥指数d)。
CRYPTO_RSA_E_DATABLOB RSA算法中的公钥pk(即公钥指数e)。
CRYPTO_DH_P_DATABLOB DH算法中的素数p。
CRYPTO_DH_G_DATABLOB DH算法中的参数g。
CRYPTO_DH_L_NUM DH算法中私钥长度,单位为bit。
CRYPTO_DH_SK_DATABLOB DH算法中的私钥sk。
CRYPTO_DH_PK_DATABLOB DH算法中的公钥pk。
CRYPTO_ED25519_SK_DATABLOB ED25519算法中的私钥sk。
CRYPTO_ED25519_PK_DATABLOB ED25519算法中的公钥pk。
CRYPTO_X25519_SK_DATABLOB X25519算法中的私钥sk。
CRYPTO_X25519_PK_DATABLOB X25519算法中的公钥pk。

函数说明

OH_CryptoAsymKeyGenerator_Convert()

OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Convert (OH_CryptoAsymKeyGenerator *ctx, Crypto_EncodingType type, Crypto_DataBlob *pubKeyData, Crypto_DataBlob *priKeyData, OH_CryptoKeyPair **keyCtx )

描述

转换非对称密钥数据为密钥对。

起始版本: 12

参数:

展开
名称 描述
ctx 非对称密钥生成器实例。
type 编码格式。
pubKeyData 公钥数据。
priKeyData 私钥数据。
keyCtx 指向非对称密钥对实例的指针。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

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

OH_CryptoAsymKeyGenerator_Create()

OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Create (const char *algoName, OH_CryptoAsymKeyGenerator **ctx )

描述

通过指定算法名称的字符串,获取相应的非对称密钥生成器实例。

起始版本: 12

参数:

展开
名称 描述
algoName 指定生成对称密钥生成器的算法名称。例如:"RSA1024|PRIMES_2"
ctx 指向非对称密钥生成器实例的指针。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

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

OH_CryptoAsymKeyGenerator_Destroy()

void OH_CryptoAsymKeyGenerator_Destroy (OH_CryptoAsymKeyGenerator *ctx)

描述

销毁非对称密钥生成器实例。

起始版本: 12

参数:

展开
名称 描述
ctx 非对称密钥生成器实例。

OH_CryptoAsymKeyGenerator_Generate()

OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Generate (OH_CryptoAsymKeyGenerator *ctx, OH_CryptoKeyPair **keyCtx )

描述

随机生成非对称密钥(密钥对)。

起始版本: 12

参数:

展开
名称 描述
ctx 非对称密钥生成器实例。
keyCtx 指向非对称密钥对实例的指针。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

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

OH_CryptoAsymKeyGenerator_GetAlgoName()

const char* OH_CryptoAsymKeyGenerator_GetAlgoName (OH_CryptoAsymKeyGenerator *ctx)

描述

获取非对称密钥算法名称。

起始版本: 12

参数:

展开
名称 描述
ctx 非对称密钥生成器实例。

返回:

返回非对称密钥算法名称。

OH_CryptoKeyPair_Destroy()

void OH_CryptoKeyPair_Destroy (OH_CryptoKeyPair *keyCtx)

描述

销毁非对称密钥对实例。

起始版本: 12

参数:

展开
名称 描述
keyCtx 非对称密钥对实例。

OH_CryptoKeyPair_GetPubKey()

OH_CryptoPubKey* OH_CryptoKeyPair_GetPubKey (OH_CryptoKeyPair *keyCtx)

描述

从密钥对中获取公钥实例。

起始版本: 12

参数:

展开
名称 描述
keyCtx 密钥对实例。

返回:

返回从密钥对中得到的公钥实例。

OH_CryptoPubKey_Encode()

OH_Crypto_ErrCode OH_CryptoPubKey_Encode (OH_CryptoPubKey *key, Crypto_EncodingType type, const char *encodingStandard, Crypto_DataBlob *out )

描述

根据指定的编码格式输出公钥数据。

起始版本: 12

参数:

展开
名称 描述
key 公钥实例。
type 编码类型。
encodingStandard 编码格式。
out 输出的公钥结果。

返回:

OH_Crypto_ErrCode:

0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

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

OH_CryptoPubKey_GetParam()

OH_Crypto_ErrCode OH_CryptoPubKey_GetParam (OH_CryptoPubKey *key, CryptoAsymKey_ParamType item, Crypto_DataBlob *value )

描述

从公钥实例获取指定参数。

起始版本: 12

参数:

展开
名称 描述
key 公钥实例。
item 非对称密钥参数类型。
value 参数输出值。

返回:

OH_Crypto_ErrCode: 0 - 成功。

401 - 参数无效。

801 - 操作不支持。

17620001 - 内存错误。

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

在 API参考 中进行搜索
请输入您想要搜索的关键词