API参考
载入中...
搜索中...
未找到
crypt_default.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_DEFAULT_H
17#define CRYPT_DEFAULT_H
18#include <stdint.h>
19#include "hitls_crypt_type.h"
20#include "hitls_crypt_reg.h"
21#include "hitls_crypt.h"
22#include "crypt_eal_rand.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
37#ifdef HITLS_CRYPTO_DRBG
38#define CRYPT_DEFAULT_RandomBytes CRYPT_EAL_Randbytes
39#else
40#define CRYPT_DEFAULT_RandomBytes NULL
41#endif
42
50#define CRYPT_DEFAULT_HMAC_Size CRYPT_DEFAULT_DigestSize
51
61HITLS_HMAC_Ctx *CRYPT_DEFAULT_HMAC_Init(HITLS_HashAlgo hashAlgo, const uint8_t *key, uint32_t len);
62
71#define CRYPT_DEFAULT_HMAC_ReInit HITLS_CRYPT_HMAC_ReInit
72
78#define CRYPT_DEFAULT_HMAC_Free HITLS_CRYPT_HMAC_Free
79
90#define CRYPT_DEFAULT_HMAC_Update HITLS_CRYPT_HMAC_Update
91
102#define CRYPT_DEFAULT_HMAC_Final HITLS_CRYPT_HMAC_Final
103
118int32_t CRYPT_DEFAULT_HMAC(HITLS_HashAlgo hashAlgo, const uint8_t *key, uint32_t keyLen,
119 const uint8_t *in, uint32_t inLen, uint8_t *out, uint32_t *outLen);
120
128#define CRYPT_DEFAULT_DigestSize HITLS_CRYPT_DigestSize
129
137HITLS_HASH_Ctx *CRYPT_DEFAULT_DigestInit(HITLS_HashAlgo hashAlgo);
138
146#define CRYPT_DEFAULT_DigestCopy HITLS_CRYPT_DigestCopy
147
153#define CRYPT_DEFAULT_DigestFree HITLS_CRYPT_DigestFree
154
165#define CRYPT_DEFAULT_DigestUpdate HITLS_CRYPT_DigestUpdate
166
177#define CRYPT_DEFAULT_DigestFinal HITLS_CRYPT_DigestFinal
178
191int32_t CRYPT_DEFAULT_Digest(HITLS_HashAlgo hashAlgo, const uint8_t *in, uint32_t inLen,
192 uint8_t *out, uint32_t *outLen);
193
206int32_t CRYPT_DEFAULT_Encrypt(const HITLS_CipherParameters *cipher, const uint8_t *in, uint32_t inLen,
207 uint8_t *out, uint32_t *outLen);
208
221int32_t CRYPT_DEFAULT_Decrypt(const HITLS_CipherParameters *cipher, const uint8_t *in, uint32_t inLen,
222 uint8_t *out, uint32_t *outLen);
223
229#define CRYPT_DEFAULT_CipherFree HITLS_CRYPT_CipherFree
230
239HITLS_CRYPT_Key *CRYPT_DEFAULT_GenerateEcdhKey(HITLS_Ctx *ctx, const HITLS_ECParameters *curveParams);
240
248HITLS_CRYPT_Key *CRYPT_DEFAULT_GenerateDhKeyBySecbits(int32_t secbits);
249
260HITLS_CRYPT_Key *CRYPT_DEFAULT_GenerateDhKeyByParameters(uint8_t *p, uint16_t pLen, uint8_t *g, uint16_t gLen);
261
274#ifdef HITLS_TLS_SUITE_KX_DHE
275#define CRYPT_DEFAULT_GetDhParameters HITLS_CRYPT_GetDhParameters
276#else
277#define CRYPT_DEFAULT_GetDhParameters NULL
278#endif /* HITLS_TLS_SUITE_KX_DHE */
279
285#ifdef HITLS_TLS_CONFIG_MANUAL_DH
286#define CRYPT_DEFAULT_DupKey HITLS_CRYPT_DupKey
287#endif
288
294#define CRYPT_DEFAULT_FreeKey HITLS_CRYPT_FreeKey
295
307#define CRYPT_DEFAULT_GetPubKey HITLS_CRYPT_GetPubKey
308
321int32_t CRYPT_DEFAULT_DhCalcSharedSecret(HITLS_CRYPT_Key *key, uint8_t *peerPubkey, uint32_t pubKeyLen,
322 uint8_t *sharedSecret, uint32_t *sharedSecretLen);
323
337int32_t CRYPT_DEFAULT_EcdhCalcSharedSecret(HITLS_CRYPT_Key *key, uint8_t *peerPubkey, uint32_t pubKeyLen,
338 uint8_t *sharedSecret, uint32_t *sharedSecretLen);
339
350int32_t CRYPT_DEFAULT_CalcSM2SharedSecret(HITLS_Sm2GenShareKeyParameters *sm2Params,
351 uint8_t *sharedSecret, uint32_t *sharedSecretLen);
352
363int32_t CRYPT_DEFAULT_HkdfExtract(const HITLS_CRYPT_HkdfExtractInput *input, uint8_t *prk, uint32_t *prkLen);
364
375int32_t CRYPT_DEFAULT_HkdfExpand(const HITLS_CRYPT_HkdfExpandInput *input, uint8_t *okm, uint32_t okmLen);
376
384int32_t CRYPT_DEFAULT_KemEncapsulate(HITLS_KemEncapsulateParams *params);
385
398#ifdef HITLS_TLS_FEATURE_KEM
399#define CRYPT_DEFAULT_KemDecapsulate HITLS_CRYPT_KemDecapsulate
400#endif /* HITLS_TLS_FEATURE_KEM */
401
402#ifdef __cplusplus
403}
404#endif
405#endif
struct TlsCtx HITLS_Ctx
HITLS context
定义 hitls_type.h:35
HKDF-Expand Input
定义 hitls_crypt_type.h:281
HKDF-Extract Input
定义 hitls_crypt_type.h:269
Key parameters
定义 hitls_crypt_type.h:235
Elliptic curve parameter
定义 hitls_crypt_type.h:222
Input parameters for KEM encapsulation
定义 hitls_crypt_reg.h:36
sm2 ecdhe negotiation key parameters
定义 hitls_crypt_type.h:254