1# crypto_asym_key.h 2 3<!--Kit: Crypto Architecture Kit--> 4<!--Subsystem: Security--> 5<!--Owner: @zxz--3--> 6<!--Designer: @lanming--> 7<!--Tester: @PAFT--> 8<!--Adviser: @zengyawen--> 9 10## 概述 11 12声明非对称密钥接口。 13 14**引用文件:** <CryptoArchitectureKit/crypto_asym_key.h> 15 16**库:** libohcrypto.so 17 18**系统能力:** SystemCapability.Security.CryptoFramework 19 20**起始版本:** 12 21 22**相关模块:** [CryptoAsymKeyApi](capi-cryptoasymkeyapi.md) 23 24## 汇总 25 26### 结构体 27 28| 名称 | typedef关键字 | 描述 | 29| -- | -- | -- | 30| [OH_CryptoKeyPair](capi-cryptoasymkeyapi-oh-cryptokeypair.md) | OH_CryptoKeyPair | 定义密钥对结构体。 | 31| [OH_CryptoPubKey](capi-cryptoasymkeyapi-oh-cryptopubkey.md) | OH_CryptoPubKey | 定义公钥结构体。 | 32| [OH_CryptoPrivKey](capi-cryptoasymkeyapi-oh-cryptoprivkey.md) | OH_CryptoPrivKey | 定义私钥结构体。 | 33| [OH_CryptoAsymKeyGenerator](capi-cryptoasymkeyapi-oh-cryptoasymkeygenerator.md) | OH_CryptoAsymKeyGenerator | 定义非对称密钥生成器结构体。 | 34| [OH_CryptoPrivKeyEncodingParams](capi-cryptoasymkeyapi-oh-cryptoprivkeyencodingparams.md) | OH_CryptoPrivKeyEncodingParams | 定义私钥编码参数结构体。 | 35| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) | OH_CryptoAsymKeySpec | 定义非对称密钥规格结构体。 | 36| [OH_CryptoAsymKeyGeneratorWithSpec](capi-cryptoasymkeyapi-oh-cryptoasymkeygeneratorwithspec.md) | OH_CryptoAsymKeyGeneratorWithSpec | 定义带规格的非对称密钥生成器。 | 37| [OH_CryptoEcPoint](capi-cryptoasymkeyapi-oh-cryptoecpoint.md) | OH_CryptoEcPoint | 定义EC点结构体。 | 38 39### 枚举 40 41| 名称 | typedef关键字 | 描述 | 42| -- | -- | -- | 43| [CryptoAsymKey_ParamType](#cryptoasymkey_paramtype) | CryptoAsymKey_ParamType | 定义非对称密钥参数类型。 | 44| [Crypto_EncodingType](#crypto_encodingtype) | Crypto_EncodingType | 定义编码格式。 | 45| [CryptoPrivKeyEncoding_ParamType](#cryptoprivkeyencoding_paramtype) | CryptoPrivKeyEncoding_ParamType | 定义私钥编码参数类型。 | 46| [CryptoAsymKeySpec_Type](#cryptoasymkeyspec_type) | CryptoAsymKeySpec_Type | 定义非对称密钥规格类型。 | 47 48### 函数 49 50| 名称 | 描述 | 51| -- | -- | 52| [OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Create(const char *algoName, OH_CryptoAsymKeyGenerator **ctx)](#oh_cryptoasymkeygenerator_create) | 通过指定算法名称的字符串,获取相应的非对称密钥生成器实例。 | 53| [OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Generate(OH_CryptoAsymKeyGenerator *ctx, OH_CryptoKeyPair **keyCtx)](#oh_cryptoasymkeygenerator_generate) | 随机生成非对称密钥(密钥对)。 | 54| [OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Convert(OH_CryptoAsymKeyGenerator *ctx, Crypto_EncodingType type, Crypto_DataBlob *pubKeyData, Crypto_DataBlob *priKeyData, OH_CryptoKeyPair **keyCtx)](#oh_cryptoasymkeygenerator_convert) | 将非对称密钥数据转换为密钥对。 | 55| [const char *OH_CryptoAsymKeyGenerator_GetAlgoName(OH_CryptoAsymKeyGenerator *ctx)](#oh_cryptoasymkeygenerator_getalgoname) | 获取非对称密钥算法名称。 | 56| [void OH_CryptoAsymKeyGenerator_Destroy(OH_CryptoAsymKeyGenerator *ctx)](#oh_cryptoasymkeygenerator_destroy) | 销毁非对称密钥生成器实例。 | 57| [void OH_CryptoKeyPair_Destroy(OH_CryptoKeyPair *keyCtx)](#oh_cryptokeypair_destroy) | 销毁非对称密钥对实例。 | 58| [OH_CryptoPubKey *OH_CryptoKeyPair_GetPubKey(OH_CryptoKeyPair *keyCtx)](#oh_cryptokeypair_getpubkey) | 从密钥对中获取公钥实例。 | 59| [OH_CryptoPrivKey *OH_CryptoKeyPair_GetPrivKey(OH_CryptoKeyPair *keyCtx)](#oh_cryptokeypair_getprivkey) | 获取密钥对的私钥。 | 60| [OH_Crypto_ErrCode OH_CryptoPubKey_Encode(OH_CryptoPubKey *key, Crypto_EncodingType type, const char *encodingStandard, Crypto_DataBlob *out)](#oh_cryptopubkey_encode) | 根据指定的编码格式输出公钥数据。 | 61| [OH_Crypto_ErrCode OH_CryptoPubKey_GetParam(OH_CryptoPubKey *key, CryptoAsymKey_ParamType item, Crypto_DataBlob *value)](#oh_cryptopubkey_getparam) | 从公钥实例获取指定参数。 | 62| [OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_SetPassword(OH_CryptoAsymKeyGenerator *ctx, const unsigned char *password, uint32_t passwordLen)](#oh_cryptoasymkeygenerator_setpassword) | 设置非对称密钥生成器上下文的密码。 | 63| [OH_Crypto_ErrCode OH_CryptoPrivKeyEncodingParams_Create(OH_CryptoPrivKeyEncodingParams **ctx)](#oh_cryptoprivkeyencodingparams_create) | 创建私钥编码参数。 | 64| [OH_Crypto_ErrCode OH_CryptoPrivKeyEncodingParams_SetParam(OH_CryptoPrivKeyEncodingParams *ctx, CryptoPrivKeyEncoding_ParamType type, Crypto_DataBlob *value)](#oh_cryptoprivkeyencodingparams_setparam) | 设置私钥编码参数。 | 65| [void OH_CryptoPrivKeyEncodingParams_Destroy(OH_CryptoPrivKeyEncodingParams *ctx)](#oh_cryptoprivkeyencodingparams_destroy) | 销毁私钥编码参数。 | 66| [OH_Crypto_ErrCode OH_CryptoPrivKey_Encode(OH_CryptoPrivKey *key, Crypto_EncodingType type, const char *encodingStandard, OH_CryptoPrivKeyEncodingParams *params, Crypto_DataBlob *out)](#oh_cryptoprivkey_encode) | 从私钥实例获取指定参数。 | 67| [OH_Crypto_ErrCode OH_CryptoPrivKey_GetParam(OH_CryptoPrivKey *key, CryptoAsymKey_ParamType item, Crypto_DataBlob *value)](#oh_cryptoprivkey_getparam) | 获取私钥的指定参数。 | 68| [OH_Crypto_ErrCode OH_CryptoAsymKeySpec_GenEcCommonParamsSpec(const char *curveName, OH_CryptoAsymKeySpec **spec)](#oh_cryptoasymkeyspec_geneccommonparamsspec) | 生成EC通用参数规格。 | 69| [OH_Crypto_ErrCode OH_CryptoAsymKeySpec_GenDhCommonParamsSpec(int pLen, int skLen, OH_CryptoAsymKeySpec **spec)](#oh_cryptoasymkeyspec_gendhcommonparamsspec) | 生成DH通用参数规格。 | 70| [OH_Crypto_ErrCode OH_CryptoAsymKeySpec_Create(const char *algoName, CryptoAsymKeySpec_Type type, OH_CryptoAsymKeySpec **spec)](#oh_cryptoasymkeyspec_create) | 根据给定的算法名称和规格类型创建非对称密钥规格。 | 71| [OH_Crypto_ErrCode OH_CryptoAsymKeySpec_SetParam(OH_CryptoAsymKeySpec *spec, CryptoAsymKey_ParamType type, Crypto_DataBlob *value)](#oh_cryptoasymkeyspec_setparam) | 设置非对称密钥规格的指定参数。 | 72| [OH_Crypto_ErrCode OH_CryptoAsymKeySpec_SetCommonParamsSpec(OH_CryptoAsymKeySpec *spec, OH_CryptoAsymKeySpec *commonParamsSpec)](#oh_cryptoasymkeyspec_setcommonparamsspec) | 设置非对称密钥规格的通用参数规格。 | 73| [OH_Crypto_ErrCode OH_CryptoAsymKeySpec_GetParam(OH_CryptoAsymKeySpec *spec, CryptoAsymKey_ParamType type, Crypto_DataBlob *value)](#oh_cryptoasymkeyspec_getparam) | 获取非对称密钥规格的指定参数。 | 74| [void OH_CryptoAsymKeySpec_Destroy(OH_CryptoAsymKeySpec *spec)](#oh_cryptoasymkeyspec_destroy) | 销毁非对称密钥规格。 | 75| [OH_Crypto_ErrCode OH_CryptoAsymKeyGeneratorWithSpec_Create(OH_CryptoAsymKeySpec *keySpec, OH_CryptoAsymKeyGeneratorWithSpec **generator)](#oh_cryptoasymkeygeneratorwithspec_create) | 创建带规格的非对称密钥生成器。 | 76| [OH_Crypto_ErrCode OH_CryptoAsymKeyGeneratorWithSpec_GenKeyPair(OH_CryptoAsymKeyGeneratorWithSpec *generator, OH_CryptoKeyPair **keyPair)](#oh_cryptoasymkeygeneratorwithspec_genkeypair) | 根据非对称密钥规格生成密钥对。 | 77| [void OH_CryptoAsymKeyGeneratorWithSpec_Destroy(OH_CryptoAsymKeyGeneratorWithSpec *generator)](#oh_cryptoasymkeygeneratorwithspec_destroy) | 销毁带规格的非对称密钥生成器。 | 78| [OH_Crypto_ErrCode OH_CryptoEcPoint_Create(const char *curveName, Crypto_DataBlob *ecKeyData, OH_CryptoEcPoint **point)](#oh_cryptoecpoint_create) | 创建EC点。 | 79| [OH_Crypto_ErrCode OH_CryptoEcPoint_GetCoordinate(OH_CryptoEcPoint *point, Crypto_DataBlob *x, Crypto_DataBlob *y)](#oh_cryptoecpoint_getcoordinate) | 获取EC点的x和y坐标。 | 80| [OH_Crypto_ErrCode OH_CryptoEcPoint_SetCoordinate(OH_CryptoEcPoint *point, Crypto_DataBlob *x, Crypto_DataBlob *y)](#oh_cryptoecpoint_setcoordinate) | 设置EC点的x和y坐标。 | 81| [OH_Crypto_ErrCode OH_CryptoEcPoint_Encode(OH_CryptoEcPoint *point, const char *format, Crypto_DataBlob *out)](#oh_cryptoecpoint_encode) | 将EC点编码为指定格式。 | 82| [void OH_CryptoEcPoint_Destroy(OH_CryptoEcPoint *point)](#oh_cryptoecpoint_destroy) | 销毁EC点。 | 83 84## 枚举类型说明 85 86### CryptoAsymKey_ParamType 87 88``` 89enum CryptoAsymKey_ParamType 90``` 91 92**描述** 93 94定义非对称密钥参数类型。 95 96**起始版本:** 12 97 98| 枚举项 | 描述 | 99| -- | -- | 100| CRYPTO_DSA_P_DATABLOB = 101 | DSA算法的素模数p。 | 101| CRYPTO_DSA_Q_DATABLOB = 102 | DSA算法中密钥参数q(p-1的素因子)。 | 102| CRYPTO_DSA_G_DATABLOB = 103 | DSA算法的参数g。 | 103| CRYPTO_DSA_SK_DATABLOB = 104 | DSA算法的私钥sk。 | 104| CRYPTO_DSA_PK_DATABLOB = 105 | DSA算法的公钥pk。 | 105| CRYPTO_ECC_FP_P_DATABLOB = 201 | ECC算法中表示椭圆曲线Fp域的素数p。 | 106| CRYPTO_ECC_A_DATABLOB = 202 | ECC算法中椭圆曲线的第一个系数a。 | 107| CRYPTO_ECC_B_DATABLOB = 203 | ECC算法中椭圆曲线的第二个系数b。 | 108| CRYPTO_ECC_G_X_DATABLOB = 204 | ECC算法中基点g的x坐标。 | 109| CRYPTO_ECC_G_Y_DATABLOB = 205 | ECC算法中基点g的y坐标。 | 110| CRYPTO_ECC_N_DATABLOB = 206 | ECC算法中基点g的阶n。 | 111| CRYPTO_ECC_H_INT = 207 | ECC算法中的余因子h。 | 112| CRYPTO_ECC_SK_DATABLOB = 208 | ECC算法中的私钥sk。 | 113| CRYPTO_ECC_PK_X_DATABLOB = 209 | ECC算法中,公钥pk(椭圆曲线上的一个点)的x坐标。 | 114| CRYPTO_ECC_PK_Y_DATABLOB = 210 | ECC算法中,公钥pk(椭圆曲线上的一个点)的y坐标。 | 115| CRYPTO_ECC_FIELD_TYPE_STR = 211 | ECC算法中,椭圆曲线的域类型(当前只支持Fp域)。 | 116| CRYPTO_ECC_FIELD_SIZE_INT = 212 | ECC算法中域的大小,单位为bits(注:对于Fp域,域的大小为素数p的bits长度)。 | 117| CRYPTO_ECC_CURVE_NAME_STR = 213 | ECC算法中的SECG(Standards for Efficient Cryptography Group)曲线名称。 | 118| CRYPTO_RSA_N_DATABLOB = 301 | RSA算法中的模数n。 | 119| CRYPTO_RSA_D_DATABLOB = 302 | RSA算法中的私钥sk(即私钥指数d)。 | 120| CRYPTO_RSA_E_DATABLOB = 303 | RSA算法中的公钥pk(即公钥指数e)。 | 121| CRYPTO_DH_P_DATABLOB = 401 | DH算法中的素数p。 | 122| CRYPTO_DH_G_DATABLOB = 402 | DH算法中的参数g。 | 123| CRYPTO_DH_L_INT = 403 | DH算法中私钥长度,单位为bit。 | 124| CRYPTO_DH_SK_DATABLOB = 404 | DH算法中的私钥sk。 | 125| CRYPTO_DH_PK_DATABLOB = 405 | DH算法中的公钥pk。 | 126| CRYPTO_ED25519_SK_DATABLOB = 501 | Ed25519算法中的私钥sk。 | 127| CRYPTO_ED25519_PK_DATABLOB = 502 | Ed25519算法中的公钥pk。 | 128| CRYPTO_X25519_SK_DATABLOB = 601 | X25519算法中的私钥sk。 | 129| CRYPTO_X25519_PK_DATABLOB = 602 | X25519算法中的公钥pk。 | 130 131### Crypto_EncodingType 132 133``` 134enum Crypto_EncodingType 135``` 136 137**描述** 138 139定义编码格式。 140 141**起始版本:** 12 142 143| 枚举项 | 描述 | 144| -- | -- | 145| CRYPTO_PEM = 0 | PEM格式密钥类型。 | 146| CRYPTO_DER = 1 | DER格式密钥类型。 | 147 148### CryptoPrivKeyEncoding_ParamType 149 150``` 151enum CryptoPrivKeyEncoding_ParamType 152``` 153 154**描述** 155 156定义私钥编码参数类型。 157 158**起始版本:** 20 159 160| 枚举项 | 描述 | 161| -- | -- | 162| CRYPTO_PRIVATE_KEY_ENCODING_PASSWORD_STR = 0 | 表示密码字符串。 | 163| CRYPTO_PRIVATE_KEY_ENCODING_SYMMETRIC_CIPHER_STR = 1 | 表示对称加密字符串。 | 164 165### CryptoAsymKeySpec_Type 166 167``` 168enum CryptoAsymKeySpec_Type 169``` 170 171**描述** 172 173定义非对称密钥规格类型。 174 175**起始版本:** 20 176 177| 枚举项 | 描述 | 178| -- | -- | 179| CRYPTO_ASYM_KEY_COMMON_PARAMS_SPEC = 0 | 通用参数规格。 | 180| CRYPTO_ASYM_KEY_PRIVATE_KEY_SPEC = 1 | 私钥规格。 | 181| CRYPTO_ASYM_KEY_PUBLIC_KEY_SPEC = 2 | 公钥规格。 | 182| CRYPTO_ASYM_KEY_KEY_PAIR_SPEC = 3 | 密钥对规格。 | 183 184 185## 函数说明 186 187### OH_CryptoAsymKeyGenerator_Create() 188 189``` 190OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Create(const char *algoName, OH_CryptoAsymKeyGenerator **ctx) 191``` 192 193**描述** 194 195通过指定算法名称的字符串,获取相应的非对称密钥生成器实例。 196 197**起始版本:** 12 198 199 200**参数:** 201 202| 参数项 | 描述 | 203| -- | -- | 204| const char *algoName | 用于生成生成器的算法名称。<br> 例如"RSA1024\|PRIMES_2"。 | 205| [OH_CryptoAsymKeyGenerator](capi-cryptoasymkeyapi-oh-cryptoasymkeygenerator.md) **ctx | 指向非对称密钥生成器上下文的指针。 | 206 207**返回:** 208 209| 类型 | 说明 | 210| -- | -- | 211| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 212 213### OH_CryptoAsymKeyGenerator_Generate() 214 215``` 216OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Generate(OH_CryptoAsymKeyGenerator *ctx, OH_CryptoKeyPair **keyCtx) 217``` 218 219**描述** 220 221随机生成非对称密钥(密钥对)。 222 223**起始版本:** 12 224 225 226**参数:** 227 228| 参数项 | 描述 | 229| -- | -- | 230| [OH_CryptoAsymKeyGenerator](capi-cryptoasymkeyapi-oh-cryptoasymkeygenerator.md) *ctx | 非对称密钥生成器实例。 | 231| [OH_CryptoKeyPair](capi-cryptoasymkeyapi-oh-cryptokeypair.md) **keyCtx | 指向非对称密钥对实例的指针。 | 232 233**返回:** 234 235| 类型 | 说明 | 236| -- | -- | 237| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 238 239### OH_CryptoAsymKeyGenerator_Convert() 240 241``` 242OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_Convert(OH_CryptoAsymKeyGenerator *ctx, Crypto_EncodingType type,Crypto_DataBlob *pubKeyData, Crypto_DataBlob *priKeyData, OH_CryptoKeyPair **keyCtx) 243``` 244 245**描述** 246 247将非对称密钥数据转换为密钥对。 248 249**起始版本:** 12 250 251 252**参数:** 253 254| 参数项 | 描述 | 255| -- | -- | 256| [OH_CryptoAsymKeyGenerator](capi-cryptoasymkeyapi-oh-cryptoasymkeygenerator.md) *ctx | 非对称密钥生成器实例。 | 257| [Crypto_EncodingType](#crypto_encodingtype) type | 编码格式。 | 258| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *pubKeyData | 公钥数据。 | 259| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *priKeyData | 私钥数据。 | 260| [OH_CryptoKeyPair](capi-cryptoasymkeyapi-oh-cryptokeypair.md) **keyCtx | 指向非对称密钥对实例的指针。 | 261 262**返回:** 263 264| 类型 | 说明 | 265| -- | -- | 266| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 267 268### OH_CryptoAsymKeyGenerator_GetAlgoName() 269 270``` 271const char *OH_CryptoAsymKeyGenerator_GetAlgoName(OH_CryptoAsymKeyGenerator *ctx) 272``` 273 274**描述** 275 276获取非对称密钥算法名称。 277 278**起始版本:** 12 279 280 281**参数:** 282 283| 参数项 | 描述 | 284| -- | -- | 285| [OH_CryptoAsymKeyGenerator](capi-cryptoasymkeyapi-oh-cryptoasymkeygenerator.md) *ctx | 非对称密钥生成器实例。 | 286 287**返回:** 288 289| 类型 | 说明 | 290| -- | -- | 291| const char * | 返回非对称密钥算法名称。 | 292 293### OH_CryptoAsymKeyGenerator_Destroy() 294 295``` 296void OH_CryptoAsymKeyGenerator_Destroy(OH_CryptoAsymKeyGenerator *ctx) 297``` 298 299**描述** 300 301销毁非对称密钥生成器实例。 302 303**起始版本:** 12 304 305 306**参数:** 307 308| 参数项 | 描述 | 309| -- | -- | 310| [OH_CryptoAsymKeyGenerator](capi-cryptoasymkeyapi-oh-cryptoasymkeygenerator.md) *ctx | 非对称密钥生成器实例。 | 311 312### OH_CryptoKeyPair_Destroy() 313 314``` 315void OH_CryptoKeyPair_Destroy(OH_CryptoKeyPair *keyCtx) 316``` 317 318**描述** 319 320销毁非对称密钥对实例。 321 322**起始版本:** 12 323 324 325**参数:** 326 327| 参数项 | 描述 | 328| -- | -- | 329| [OH_CryptoKeyPair](capi-cryptoasymkeyapi-oh-cryptokeypair.md) *keyCtx | 密钥对实例。 | 330 331### OH_CryptoKeyPair_GetPubKey() 332 333``` 334OH_CryptoPubKey *OH_CryptoKeyPair_GetPubKey(OH_CryptoKeyPair *keyCtx) 335``` 336 337**描述** 338 339从密钥对中获取公钥实例。 340 341**起始版本:** 12 342 343 344**参数:** 345 346| 参数项 | 描述 | 347| -- | -- | 348| [OH_CryptoKeyPair](capi-cryptoasymkeyapi-oh-cryptokeypair.md) *keyCtx | 密钥对实例。 | 349 350**返回:** 351 352| 类型 | 说明 | 353| -- | -- | 354| [OH_CryptoPubKey](capi-cryptoasymkeyapi-oh-cryptopubkey.md) * | 返回从密钥对中得到的公钥实例。 | 355 356### OH_CryptoKeyPair_GetPrivKey() 357 358``` 359OH_CryptoPrivKey *OH_CryptoKeyPair_GetPrivKey(OH_CryptoKeyPair *keyCtx) 360``` 361 362**描述** 363 364获取密钥对的私钥。 365 366**起始版本:** 20 367 368 369**参数:** 370 371| 参数项 | 描述 | 372| -- | -- | 373| [OH_CryptoKeyPair](capi-cryptoasymkeyapi-oh-cryptokeypair.md) *keyCtx | 密钥对实例。 | 374 375**返回:** 376 377| 类型 | 说明 | 378| -- | -- | 379| [OH_CryptoPrivKey](capi-cryptoasymkeyapi-oh-cryptoprivkey.md) * | 返回从密钥对中得到的私钥实例。 | 380 381### OH_CryptoPubKey_Encode() 382 383``` 384OH_Crypto_ErrCode OH_CryptoPubKey_Encode(OH_CryptoPubKey *key, Crypto_EncodingType type,const char *encodingStandard, Crypto_DataBlob *out) 385``` 386 387**描述** 388 389根据指定的编码格式输出公钥数据。 390 391**起始版本:** 12 392 393 394**参数:** 395 396| 参数项 | 描述 | 397| -- | -- | 398| [OH_CryptoPubKey](capi-cryptoasymkeyapi-oh-cryptopubkey.md) *key | 公钥实例。 | 399| [Crypto_EncodingType](#crypto_encodingtype) type | 编码类型。 | 400| const char *encodingStandard | 编码格式。 | 401| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *out | 输出的公钥结果。 | 402 403**返回:** 404 405| 类型 | 说明 | 406| -- | -- | 407| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 408 409### OH_CryptoPubKey_GetParam() 410 411``` 412OH_Crypto_ErrCode OH_CryptoPubKey_GetParam(OH_CryptoPubKey *key, CryptoAsymKey_ParamType item, Crypto_DataBlob *value) 413``` 414 415**描述** 416 417从公钥实例获取指定参数。 418 419**起始版本:** 12 420 421 422**参数:** 423 424| 参数项 | 描述 | 425| -- | -- | 426| [OH_CryptoPubKey](capi-cryptoasymkeyapi-oh-cryptopubkey.md) *key | 公钥实例。 | 427| [CryptoAsymKey_ParamType](#cryptoasymkey_paramtype) item | 非对称密钥参数类型。 | 428| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *value | 参数输出值。 | 429 430**返回:** 431 432| 类型 | 说明 | 433| -- | -- | 434| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_INVALID_PARAMS:参数无效。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 435 436### OH_CryptoAsymKeyGenerator_SetPassword() 437 438``` 439OH_Crypto_ErrCode OH_CryptoAsymKeyGenerator_SetPassword(OH_CryptoAsymKeyGenerator *ctx, const unsigned char *password,uint32_t passwordLen) 440``` 441 442**描述** 443 444设置非对称密钥生成器上下文的密码。 445 446**起始版本:** 20 447 448 449**参数:** 450 451| 参数项 | 描述 | 452| -- | -- | 453| [OH_CryptoAsymKeyGenerator](capi-cryptoasymkeyapi-oh-cryptoasymkeygenerator.md) *ctx | 指向非对称加密上下文的指针。 | 454| const unsigned char *password | 表示密码。 | 455| uint32_t passwordLen | 表示密码长度。 | 456 457**返回:** 458 459| 类型 | 说明 | 460| -- | -- | 461| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 462 463### OH_CryptoPrivKeyEncodingParams_Create() 464 465``` 466OH_Crypto_ErrCode OH_CryptoPrivKeyEncodingParams_Create(OH_CryptoPrivKeyEncodingParams **ctx) 467``` 468 469**描述** 470 471创建私钥编码参数。 472 473**起始版本:** 20 474 475 476**参数:** 477 478| 参数项 | 描述 | 479| -- | -- | 480| [OH_CryptoPrivKeyEncodingParams](capi-cryptoasymkeyapi-oh-cryptoprivkeyencodingparams.md) **ctx | 私钥编码参数。 | 481 482**返回:** 483 484| 类型 | 说明 | 485| -- | -- | 486| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 487 488### OH_CryptoPrivKeyEncodingParams_SetParam() 489 490``` 491OH_Crypto_ErrCode OH_CryptoPrivKeyEncodingParams_SetParam(OH_CryptoPrivKeyEncodingParams *ctx,CryptoPrivKeyEncoding_ParamType type, Crypto_DataBlob *value) 492``` 493 494**描述** 495 496设置私钥编码参数。 497 498**起始版本:** 20 499 500 501**参数:** 502 503| 参数项 | 描述 | 504| -- | -- | 505| [OH_CryptoPrivKeyEncodingParams](capi-cryptoasymkeyapi-oh-cryptoprivkeyencodingparams.md) *ctx | 私钥编码参数。 | 506| [CryptoPrivKeyEncoding_ParamType](#cryptoprivkeyencoding_paramtype) type | 私钥编码参数类型。 | 507| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *value | 私钥编码参数值。 | 508 509**返回:** 510 511| 类型 | 说明 | 512| -- | -- | 513| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 514 515### OH_CryptoPrivKeyEncodingParams_Destroy() 516 517``` 518void OH_CryptoPrivKeyEncodingParams_Destroy(OH_CryptoPrivKeyEncodingParams *ctx) 519``` 520 521**描述** 522 523销毁私钥编码参数。 524 525**起始版本:** 20 526 527 528**参数:** 529 530| 参数项 | 描述 | 531| -- | -- | 532| [OH_CryptoPrivKeyEncodingParams](capi-cryptoasymkeyapi-oh-cryptoprivkeyencodingparams.md) *ctx | 私钥编码参数。 | 533 534### OH_CryptoPrivKey_Encode() 535 536``` 537OH_Crypto_ErrCode OH_CryptoPrivKey_Encode(OH_CryptoPrivKey *key, Crypto_EncodingType type,const char *encodingStandard, OH_CryptoPrivKeyEncodingParams *params, Crypto_DataBlob *out) 538``` 539 540**描述** 541 542从私钥实例获取指定参数。 543 544**起始版本:** 20 545 546 547**参数:** 548 549| 参数项 | 描述 | 550| -- | -- | 551| [OH_CryptoPrivKey](capi-cryptoasymkeyapi-oh-cryptoprivkey.md) *key | 私钥。 | 552| [Crypto_EncodingType](#crypto_encodingtype) type | 私钥编码类型。 | 553| const char *encodingStandard | 编码标准。<br> 例如"PKCS8"。 | 554| [OH_CryptoPrivKeyEncodingParams](capi-cryptoasymkeyapi-oh-cryptoprivkeyencodingparams.md) *params | 私钥编码参数,可以为NULL,如果要加密私钥,则应设置此参数。 | 555| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *out | 编码结果。 | 556 557**返回:** 558 559| 类型 | 说明 | 560| -- | -- | 561| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 562 563### OH_CryptoPrivKey_GetParam() 564 565``` 566OH_Crypto_ErrCode OH_CryptoPrivKey_GetParam(OH_CryptoPrivKey *key, CryptoAsymKey_ParamType item,Crypto_DataBlob *value) 567``` 568 569**描述** 570 571获取私钥的指定参数。 572 573**起始版本:** 20 574 575 576**参数:** 577 578| 参数项 | 描述 | 579| -- | -- | 580| [OH_CryptoPrivKey](capi-cryptoasymkeyapi-oh-cryptoprivkey.md) *key | 私钥。 | 581| [CryptoAsymKey_ParamType](#cryptoasymkey_paramtype) item | 非对称密钥参数类型。 | 582| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *value | 输出数据。 | 583 584**返回:** 585 586| 类型 | 说明 | 587| -- | -- | 588| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 589 590### OH_CryptoAsymKeySpec_GenEcCommonParamsSpec() 591 592``` 593OH_Crypto_ErrCode OH_CryptoAsymKeySpec_GenEcCommonParamsSpec(const char *curveName, OH_CryptoAsymKeySpec **spec) 594``` 595 596**描述** 597 598生成EC通用参数规格。 599 600**起始版本:** 20 601 602 603**参数:** 604 605| 参数项 | 描述 | 606| -- | -- | 607| const char *curveName | ECC曲线名称。 | 608| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) **spec | 指向EC通用参数规格的指针。 | 609 610**返回:** 611 612| 类型 | 说明 | 613| -- | -- | 614| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 615 616### OH_CryptoAsymKeySpec_GenDhCommonParamsSpec() 617 618``` 619OH_Crypto_ErrCode OH_CryptoAsymKeySpec_GenDhCommonParamsSpec(int pLen, int skLen, OH_CryptoAsymKeySpec **spec) 620``` 621 622**描述** 623 624生成DH通用参数规格。 625 626**起始版本:** 20 627 628 629**参数:** 630 631| 参数项 | 描述 | 632| -- | -- | 633| int pLen | 素数p的字节长度。 | 634| int skLen | 私钥的字节长度。 | 635| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) **spec | 指向DH通用参数规格的指针。 | 636 637**返回:** 638 639| 类型 | 说明 | 640| -- | -- | 641| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 642 643### OH_CryptoAsymKeySpec_Create() 644 645``` 646OH_Crypto_ErrCode OH_CryptoAsymKeySpec_Create(const char *algoName, CryptoAsymKeySpec_Type type,OH_CryptoAsymKeySpec **spec) 647``` 648 649**描述** 650 651根据给定的算法名称和规格类型创建非对称密钥规格。 652 653**起始版本:** 20 654 655 656**参数:** 657 658| 参数项 | 描述 | 659| -- | -- | 660| const char *algoName | 用于生成规格的算法名称。<br> 例如"RSA"。 | 661| [CryptoAsymKeySpec_Type](#cryptoasymkeyspec_type) type | 非对称密钥规格类型。 | 662| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) **spec | 指向非对称密钥规格的指针。 | 663 664**返回:** 665 666| 类型 | 说明 | 667| -- | -- | 668| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 669 670### OH_CryptoAsymKeySpec_SetParam() 671 672``` 673OH_Crypto_ErrCode OH_CryptoAsymKeySpec_SetParam(OH_CryptoAsymKeySpec *spec, CryptoAsymKey_ParamType type,Crypto_DataBlob *value) 674``` 675 676**描述** 677 678设置非对称密钥规格的指定参数。 679 680**起始版本:** 20 681 682 683**参数:** 684 685| 参数项 | 描述 | 686| -- | -- | 687| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) *spec | 非对称密钥规格。 | 688| [CryptoAsymKey_ParamType](#cryptoasymkey_paramtype) type | 非对称密钥参数类型。 | 689| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *value | 输入数据。 | 690 691**返回:** 692 693| 类型 | 说明 | 694| -- | -- | 695| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 696 697### OH_CryptoAsymKeySpec_SetCommonParamsSpec() 698 699``` 700OH_Crypto_ErrCode OH_CryptoAsymKeySpec_SetCommonParamsSpec(OH_CryptoAsymKeySpec *spec,OH_CryptoAsymKeySpec *commonParamsSpec) 701``` 702 703**描述** 704 705设置非对称密钥规格的通用参数规格。 706 707**起始版本:** 20 708 709 710**参数:** 711 712| 参数项 | 描述 | 713| -- | -- | 714| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) *spec | 非对称密钥规格。 | 715| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) *commonParamsSpec | 通用参数规格。 | 716 717**返回:** 718 719| 类型 | 说明 | 720| -- | -- | 721| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 722 723### OH_CryptoAsymKeySpec_GetParam() 724 725``` 726OH_Crypto_ErrCode OH_CryptoAsymKeySpec_GetParam(OH_CryptoAsymKeySpec *spec, CryptoAsymKey_ParamType type,Crypto_DataBlob *value) 727``` 728 729**描述** 730 731获取非对称密钥规格的指定参数。 732 733**起始版本:** 20 734 735 736**参数:** 737 738| 参数项 | 描述 | 739| -- | -- | 740| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) *spec | 非对称密钥规格。 | 741| [CryptoAsymKey_ParamType](#cryptoasymkey_paramtype) type | 非对称密钥参数类型。 | 742| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *value | 输出数据。 | 743 744**返回:** 745 746| 类型 | 说明 | 747| -- | -- | 748| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 749 750### OH_CryptoAsymKeySpec_Destroy() 751 752``` 753void OH_CryptoAsymKeySpec_Destroy(OH_CryptoAsymKeySpec *spec) 754``` 755 756**描述** 757 758销毁非对称密钥规格。 759 760**起始版本:** 20 761 762 763**参数:** 764 765| 参数项 | 描述 | 766| -- | -- | 767| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) *spec | 非对称密钥规格。 | 768 769### OH_CryptoAsymKeyGeneratorWithSpec_Create() 770 771``` 772OH_Crypto_ErrCode OH_CryptoAsymKeyGeneratorWithSpec_Create(OH_CryptoAsymKeySpec *keySpec,OH_CryptoAsymKeyGeneratorWithSpec **generator) 773``` 774 775**描述** 776 777创建带规格的非对称密钥生成器。 778 779**起始版本:** 20 780 781 782**参数:** 783 784| 参数项 | 描述 | 785| -- | -- | 786| [OH_CryptoAsymKeySpec](capi-cryptoasymkeyapi-oh-cryptoasymkeyspec.md) *keySpec | 非对称密钥规格。 | 787| [OH_CryptoAsymKeyGeneratorWithSpec](capi-cryptoasymkeyapi-oh-cryptoasymkeygeneratorwithspec.md) **generator | 带规格的非对称密钥生成器。 | 788 789**返回:** 790 791| 类型 | 说明 | 792| -- | -- | 793| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 794 795### OH_CryptoAsymKeyGeneratorWithSpec_GenKeyPair() 796 797``` 798OH_Crypto_ErrCode OH_CryptoAsymKeyGeneratorWithSpec_GenKeyPair(OH_CryptoAsymKeyGeneratorWithSpec *generator,OH_CryptoKeyPair **keyPair) 799``` 800 801**描述** 802 803根据非对称密钥规格生成密钥对。 804 805**起始版本:** 20 806 807 808**参数:** 809 810| 参数项 | 描述 | 811| -- | -- | 812| [OH_CryptoAsymKeyGeneratorWithSpec](capi-cryptoasymkeyapi-oh-cryptoasymkeygeneratorwithspec.md) *generator | 带规格的非对称密钥生成器。 | 813| [OH_CryptoKeyPair](capi-cryptoasymkeyapi-oh-cryptokeypair.md) **keyPair | 指向密钥对的指针。 | 814 815**返回:** 816 817| 类型 | 说明 | 818| -- | -- | 819| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 820 821### OH_CryptoAsymKeyGeneratorWithSpec_Destroy() 822 823``` 824void OH_CryptoAsymKeyGeneratorWithSpec_Destroy(OH_CryptoAsymKeyGeneratorWithSpec *generator) 825``` 826 827**描述** 828 829销毁带规格的非对称密钥生成器。 830 831**起始版本:** 20 832 833 834**参数:** 835 836| 参数项 | 描述 | 837| -- | -- | 838| [OH_CryptoAsymKeyGeneratorWithSpec](capi-cryptoasymkeyapi-oh-cryptoasymkeygeneratorwithspec.md) *generator | 带规格的非对称密钥生成器。 | 839 840### OH_CryptoEcPoint_Create() 841 842``` 843OH_Crypto_ErrCode OH_CryptoEcPoint_Create(const char *curveName, Crypto_DataBlob *ecKeyData, OH_CryptoEcPoint **point) 844``` 845 846**描述** 847 848创建EC点。 849 850**起始版本:** 20 851 852 853**参数:** 854 855| 参数项 | 描述 | 856| -- | -- | 857| const char *curveName | 曲线名称。 | 858| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *ecKeyData | EC点数据,支持"04 \|\| x \|\| y"、"02 \|\| x"或"03 \|\| x"格式。如果ecKeyData参数为NULL,将创建一个空的EC点规格。 | 859| [OH_CryptoEcPoint](capi-cryptoasymkeyapi-oh-cryptoecpoint.md) **point | 指向EC点的指针。 | 860 861**返回:** 862 863| 类型 | 说明 | 864| -- | -- | 865| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 866 867### OH_CryptoEcPoint_GetCoordinate() 868 869``` 870OH_Crypto_ErrCode OH_CryptoEcPoint_GetCoordinate(OH_CryptoEcPoint *point, Crypto_DataBlob *x, Crypto_DataBlob *y) 871``` 872 873**描述** 874 875获取EC点的x和y坐标。 876 877**起始版本:** 20 878 879 880**参数:** 881 882| 参数项 | 描述 | 883| -- | -- | 884| [OH_CryptoEcPoint](capi-cryptoasymkeyapi-oh-cryptoecpoint.md) *point | EC点。 | 885| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *x | EC点的x坐标,可以为NULL。 | 886| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *y | EC点的y坐标,可以为NULL。 | 887 888**返回:** 889 890| 类型 | 说明 | 891| -- | -- | 892| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 893 894### OH_CryptoEcPoint_SetCoordinate() 895 896``` 897OH_Crypto_ErrCode OH_CryptoEcPoint_SetCoordinate(OH_CryptoEcPoint *point, Crypto_DataBlob *x, Crypto_DataBlob *y) 898``` 899 900**描述** 901 902设置EC点的x和y坐标。 903 904**起始版本:** 20 905 906 907**参数:** 908 909| 参数项 | 描述 | 910| -- | -- | 911| [OH_CryptoEcPoint](capi-cryptoasymkeyapi-oh-cryptoecpoint.md) *point | EC点。 | 912| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *x | EC点的x坐标。 | 913| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *y | EC点的y坐标。 | 914 915**返回:** 916 917| 类型 | 说明 | 918| -- | -- | 919| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 920 921### OH_CryptoEcPoint_Encode() 922 923``` 924OH_Crypto_ErrCode OH_CryptoEcPoint_Encode(OH_CryptoEcPoint *point, const char *format, Crypto_DataBlob *out) 925``` 926 927**描述** 928 929将EC点编码为指定格式。 930 931**起始版本:** 20 932 933 934**参数:** 935 936| 参数项 | 描述 | 937| -- | -- | 938| [OH_CryptoEcPoint](capi-cryptoasymkeyapi-oh-cryptoecpoint.md) *point | EC点。 | 939| const char *format | 编码格式,支持"UNCOMPRESSED"和"COMPRESSED"。 | 940| [Crypto_DataBlob](capi-cryptocommonapi-crypto-datablob.md) *out | 编码后的EC点数据。 | 941 942**返回:** 943 944| 类型 | 说明 | 945| -- | -- | 946| [OH_Crypto_ErrCode](capi-crypto-common-h.md#oh_crypto_errcode) | CRYPTO_SUCCESS:操作成功。<br> CRYPTO_NOT_SUPPORTED:操作不支持。<br> CRYPTO_MEMORY_ERROR:内存错误。<br> CRYPTO_PARAMETER_CHECK_FAILED:参数检查失败。<br> CRYPTO_OPERTION_ERROR:调用三方算法库API出错。 | 947 948### OH_CryptoEcPoint_Destroy() 949 950``` 951void OH_CryptoEcPoint_Destroy(OH_CryptoEcPoint *point) 952``` 953 954**描述** 955 956销毁EC点。 957 958**起始版本:** 20 959 960 961**参数:** 962 963| 参数项 | 描述 | 964| -- | -- | 965| [OH_CryptoEcPoint](capi-cryptoasymkeyapi-oh-cryptoecpoint.md) *point | EC点。 | 966 967 968