API参考
载入中...
搜索中...
未找到
crypt_ecdsa.h
1/*
2 * This file is part of the openHiTLS project.
3 *
4 * openHiTLS is licensed under the Mulan PSL v2.
5 * You can use this software according to the terms and conditions of the Mulan PSL v2.
6 * You may obtain a copy of Mulan PSL v2 at:
7 *
8 * http://license.coscl.org.cn/MulanPSL2
9 *
10 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
11 * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
12 * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
13 * See the Mulan PSL v2 for more details.
14 */
15
16#ifndef CRYPT_ECDSA_H
17#define CRYPT_ECDSA_H
18
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_ECDSA
21
22#include <stdint.h>
23#include "crypt_types.h"
24#include "crypt_local_types.h"
25#include "crypt_ecc_pkey.h"
26#include "crypt_ecc.h"
27#include "bsl_params.h"
28#include "crypt_params_key.h"
29
30#ifdef __cplusplus
31extern "C" {
32#endif /* __cpluscplus */
33
34/* ECDSA key context */
35typedef struct ECC_PkeyCtx CRYPT_ECDSA_Ctx;
36
37/* ECDSA parameter structure */
38typedef struct EccPara CRYPT_EcdsaPara;
39
47CRYPT_ECDSA_Ctx *CRYPT_ECDSA_NewCtx(void);
48
58CRYPT_ECDSA_Ctx *CRYPT_ECDSA_NewCtxEx(void *libCtx);
59
69#define CRYPT_ECDSA_DupCtx ECC_DupCtx
70
77#define CRYPT_ECDSA_FreeCtx ECC_FreeCtx
78
89#define CRYPT_ECDSA_NewParaById ECC_NewPara
90
101CRYPT_EcdsaPara *CRYPT_ECDSA_NewPara(const CRYPT_EccPara *eccPara);
102
111CRYPT_PKEY_ParaId CRYPT_ECDSA_GetParaId(const CRYPT_ECDSA_Ctx *ctx);
112
119#define CRYPT_ECDSA_FreePara ECC_FreePara
120
132int32_t CRYPT_ECDSA_SetPara(CRYPT_ECDSA_Ctx *ctx, const CRYPT_EccPara *para);
133
145#define CRYPT_ECDSA_GetPara ECC_GetPara
146
156#define CRYPT_ECDSA_GetBits ECC_PkeyGetBits
157
167uint32_t CRYPT_ECDSA_GetSignLen(const CRYPT_ECDSA_Ctx *ctx);
168
180#define CRYPT_ECDSA_Gen ECC_PkeyGen
181
203int32_t CRYPT_ECDSA_Sign(const CRYPT_ECDSA_Ctx *ctx, int32_t algId, const uint8_t *data, uint32_t dataLen,
204 uint8_t *sign, uint32_t *signLen);
205
226int32_t CRYPT_ECDSA_SignData(const CRYPT_ECDSA_Ctx *ctx, const uint8_t *data, uint32_t dataLen,
227 uint8_t *sign, uint32_t *signLen);
228
248int32_t CRYPT_ECDSA_Verify(const CRYPT_ECDSA_Ctx *ctx, int32_t algId, const uint8_t *data, uint32_t dataLen,
249 const uint8_t *sign, uint32_t signLen);
250
269int32_t CRYPT_ECDSA_VerifyData(const CRYPT_ECDSA_Ctx *ctx, const uint8_t *data, uint32_t dataLen,
270 const uint8_t *sign, uint32_t signLen);
271
284#define CRYPT_ECDSA_SetPrvKey ECC_PkeySetPrvKey
285
298#define CRYPT_ECDSA_SetPubKey ECC_PkeySetPubKey
299
312#define CRYPT_ECDSA_GetPrvKey ECC_PkeyGetPrvKey
313
326#define CRYPT_ECDSA_GetPubKey ECC_PkeyGetPubKey
327
328#ifdef HITLS_BSL_PARAMS
341#define CRYPT_ECDSA_SetPrvKeyEx ECC_PkeySetPrvKeyEx
342
355#define CRYPT_ECDSA_SetPubKeyEx ECC_PkeySetPubKeyEx
356
369#define CRYPT_ECDSA_GetPrvKeyEx ECC_PkeyGetPrvKeyEx
370
383#define CRYPT_ECDSA_GetPubKeyEx ECC_PkeyGetPubKeyEx
384
396int32_t CRYPT_ECDSA_SetParaEx(CRYPT_ECDSA_Ctx *ctx, const BSL_Param *para);
397
409#define CRYPT_ECDSA_GetParaEx ECC_GetParaEx
410#endif
411
427int32_t CRYPT_ECDSA_Ctrl(CRYPT_ECDSA_Ctx *ctx, int32_t opt, void *val, uint32_t len);
428
439#define CRYPT_ECDSA_Cmp ECC_PkeyCmp
440
449int32_t CRYPT_ECDSA_GetSecBits(const CRYPT_ECDSA_Ctx *ctx);
450
451#ifdef HITLS_CRYPTO_KEY_DECODE_CHAIN
459int32_t CRYPT_ECDSA_Import(CRYPT_ECDSA_Ctx *ctx, const BSL_Param *params);
460
468int32_t CRYPT_ECDSA_Export(const CRYPT_ECDSA_Ctx *ctx, BSL_Param *params);
469
470#endif // HITLS_CRYPTO_KEY_DECODE_CHAIN
471
472#ifdef HITLS_CRYPTO_ECDSA_CHECK
484int32_t CRYPT_ECDSA_Check(uint32_t checkType, const CRYPT_ECDSA_Ctx *pkey1, const CRYPT_ECDSA_Ctx *pkey2);
485
486#endif // HITLS_CRYPTO_ECDSA_CHECK
487
488#ifdef __cplusplus
489}
490#endif
491
492#endif // HITLS_CRYPTO_ECDSA
493
494#endif // CRYPT_ECDSA_H
Parameter identifiers
CRYPT_PKEY_ParaId
定义 crypt_algid.h:208
定义 crypt_types.h:155