智能客服
你问我答,随时在线为你解决问题

























为应用提供非对称密钥相关接口功能。
起始版本: 12
| 名称 | 描述 |
|---|---|
| crypto_asym_key.h | 声明非对称密钥接口。 |
| 名称 | 描述 |
|---|---|
| typedef struct OH_CryptoKeyPair OH_CryptoKeyPair | 定义密钥对结构体。 |
| typedef struct OH_CryptoPubKey OH_CryptoPubKey | 定义公钥结构体。 |
| typedef struct OH_CryptoAsymKeyGenerator OH_CryptoAsymKeyGenerator | 定义非对称密钥生成器结构体。 |
| 名称 | 描述 |
|---|---|
| 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 } | 定义编码格式。 |
typedef struct OH_CryptoAsymKeyGenerator OH_CryptoAsymKeyGenerator
描述
定义非对称密钥生成器结构体。
起始版本: 12
typedef struct OH_CryptoKeyPair OH_CryptoKeyPair
描述
定义密钥对结构体。
起始版本: 12
typedef struct OH_CryptoPubKey OH_CryptoPubKey
描述
定义公钥结构体。
起始版本: 12
enum Crypto_EncodingType
描述
定义编码格式。
起始版本: 12
| 枚举值 | 描述 |
|---|---|
| CRYPTO_PEM | PEM格式密钥类型。 |
| CRYPTO_DER | DER格式密钥类型。 |
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_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 | 指向非对称密钥对实例的指针。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Create (const char *algoName, OH_CryptoAsymKeyGenerator **ctx )
描述
通过指定算法名称的字符串,获取相应的非对称密钥生成器实例。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| algoName | 指定生成对称密钥生成器的算法名称。例如:"RSA1024|PRIMES_2" |
| ctx | 指向非对称密钥生成器实例的指针。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
void OH_CryptoAsymKeyGenerator_Destroy (OH_CryptoAsymKeyGenerator *ctx)
描述
销毁非对称密钥生成器实例。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| ctx | 非对称密钥生成器实例。 |
OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Generate (OH_CryptoAsymKeyGenerator *ctx, OH_CryptoKeyPair **keyCtx )
描述
随机生成非对称密钥(密钥对)。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| ctx | 非对称密钥生成器实例。 |
| keyCtx | 指向非对称密钥对实例的指针。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
const char* OH_CryptoAsymKeyGenerator_GetAlgoName (OH_CryptoAsymKeyGenerator *ctx)
描述
获取非对称密钥算法名称。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| ctx | 非对称密钥生成器实例。 |
返回:
返回非对称密钥算法名称。
void OH_CryptoKeyPair_Destroy (OH_CryptoKeyPair *keyCtx)
描述
销毁非对称密钥对实例。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| keyCtx | 非对称密钥对实例。 |
OH_CryptoPubKey* OH_CryptoKeyPair_GetPubKey (OH_CryptoKeyPair *keyCtx)
描述
从密钥对中获取公钥实例。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| keyCtx | 密钥对实例。 |
返回:
返回从密钥对中得到的公钥实例。
OH_Crypto_ErrCode OH_CryptoPubKey_Encode (OH_CryptoPubKey *key, Crypto_EncodingType type, const char *encodingStandard, Crypto_DataBlob *out )
描述
根据指定的编码格式输出公钥数据。
起始版本: 12
参数:
| 名称 | 描述 |
|---|---|
| key | 公钥实例。 |
| type | 编码类型。 |
| encodingStandard | 编码格式。 |
| out | 输出的公钥结果。 |
返回:
0 - 成功。
401 - 参数无效。
801 - 操作不支持。
17620001 - 内存错误。
17630001 - 调用三方算法库API出错。
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出错。
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功