• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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