openHiTLS API openHiTLS 0.1.0-Alpha1
crypt_types.h
浏览该文件的文档.
1/*---------------------------------------------------------------------------------------------
2 * This file is part of the openHiTLS project.
3 * Copyright © 2023 Huawei Technologies Co.,Ltd. All rights reserved.
4 * Licensed under the openHiTLS Software license agreement 1.0. See LICENSE in the project root
5 * for license information.
6 *---------------------------------------------------------------------------------------------
7 */
8
15#ifndef CRYPT_TYPES_H
16#define CRYPT_TYPES_H
17
18#include <stdint.h>
19#include <stddef.h>
20#include "crypt_algid.h"
21
22#ifdef __cplusplus
23extern "C" {
24#endif // __cplusplus
25
31typedef struct {
32 uint8_t *data;
33 uint32_t len;
35
41typedef struct {
42uint32_t min;
43uint32_t max;
45
51typedef struct {
54
60typedef struct {
61 int32_t saltLen;
65
66typedef struct {
70
71typedef enum {
72 CRYPT_RSA_BLINDING = 0x00000001,
75
81typedef struct {
82 uint8_t *d;
83 uint8_t *n;
84 uint8_t *p;
85 uint8_t *q;
86 uint8_t *dP;
87 uint8_t *dQ;
88 uint8_t *qInv;
89 uint8_t *e;
90 uint32_t dLen;
91 uint32_t nLen;
92 uint32_t pLen;
93 uint32_t qLen;
94 uint32_t dPLen;
95 uint32_t dQLen;
96 uint32_t qInvLen;
97 uint32_t eLen;
99
105typedef struct {
106 uint8_t *p;
107 uint8_t *a;
108 uint8_t *b;
109 uint8_t *n;
110 uint8_t *h;
111 uint8_t *x;
112 uint8_t *y;
113 uint32_t pLen;
114 uint32_t aLen;
115 uint32_t bLen;
116 uint32_t nLen;
117 uint32_t hLen;
118 uint32_t xLen;
119 uint32_t yLen;
121
128
135
142
149
156
163
170
177
183typedef struct {
184 uint8_t *e;
185 uint8_t *n;
186 uint32_t eLen;
187 uint32_t nLen;
189
196
203
210
217
224
231
238
245
251typedef struct {
252 uint8_t *e;
253 uint32_t eLen;
254 uint32_t bits;
256
262typedef struct {
263 uint8_t *p;
264 uint8_t *q;
265 uint8_t *g;
266 uint32_t pLen;
267 uint32_t qLen;
268 uint32_t gLen;
270
276typedef struct {
277 uint8_t *p;
278 uint8_t *q;
279 uint8_t *g;
280 uint32_t pLen;
281 uint32_t qLen;
282 uint32_t gLen;
284
294typedef struct {
309int32_t (*getEntropy)(void *ctx, CRYPT_Data *entropy, uint32_t strength, CRYPT_Range *lenRange);
310
318 void (*cleanEntropy)(void *ctx, CRYPT_Data *entropy);
319
333 int32_t (*getNonce)(void *ctx, CRYPT_Data *nonce, uint32_t strength, CRYPT_Range *lenRange);
334
342 void (*cleanNonce)(void *ctx, CRYPT_Data *nonce);
344
350typedef enum {
371
377typedef enum {
405 CRYPT_CTRL_SET_SM2_HASH_METHOD, /* SM2 calculate the hash value by set SM3. */
406 CRYPT_CTRL_SET_SM2_SERVER, /* SM2 set the user status. */
407 CRYPT_CTRL_GENE_SM2_R, /* SM2 obtain the R value. */
408 CRYPT_CTRL_SET_SM2_R, /* SM2 set the R value. */
409 CRYPT_CTRL_SET_SM2_RANDOM, /* SM2 set the r value. */
410 CRYPT_CTRL_SET_SM2_PKG, /* SM2 uses the PKG process. */
411 CRYPT_CTRL_SM2_GET_SEND_CHECK, /* SM2 obtain the check value sent from the local end to the peer end. */
412 CRYPT_CTRL_SM2_DO_CHECK, /* SM2 check the shared key. */
413
420
426typedef enum {
435
436typedef enum {
444
450typedef enum {
467
473typedef enum {
481
494typedef void (*EventReport)(CRYPT_EVENT_TYPE oper, CRYPT_ALGO_TYPE type, int32_t id, int32_t err);
495
509
515typedef enum {
523
524#ifdef __cplusplus
525}
526#endif // __cplusplus
527
528#endif // CRYPT_TYPES_H
CRYPT_RSA_Flag
Definition crypt_types.h:71
@ CRYPT_RSA_BLINDING
Definition crypt_types.h:72
@ CRYPT_RSA_MAXFLAG
Definition crypt_types.h:73
CRYPT_PkeyCtrl
Definition crypt_types.h:377
@ CRYPT_CTRL_GET_RSA_SALT
Definition crypt_types.h:389
@ CRYPT_CTRL_GET_RSA_MGF
Definition crypt_types.h:393
@ CRYPT_CTRL_SET_RSA_OAEP_LABEL
Definition crypt_types.h:399
@ CRYPT_CTRL_SET_RSA_EMSA_PSS
Definition crypt_types.h:380
@ CRYPT_CTRL_SET_ED448_HASH_METHOD
Definition crypt_types.h:414
@ CRYPT_CTRL_SET_RSA_RSAES_OAEP
Definition crypt_types.h:398
@ CRYPT_CTRL_SET_RSA_SALT
Definition crypt_types.h:381
@ CRYPT_CTRL_SET_ED448_CONTEXT
Definition crypt_types.h:415
@ CRYPT_CTRL_SET_RSA_RSAES_PKCSV15
Definition crypt_types.h:402
@ CRYPT_CTRL_UP_REFERENCES
Definition crypt_types.h:417
@ CRYPT_CTRL_SET_ED448_PREHASH
Definition crypt_types.h:416
@ CRYPT_CTRL_SET_SM2_R
Definition crypt_types.h:408
@ CRYPT_CTRL_SM2_DO_CHECK
Definition crypt_types.h:412
@ CRYPT_CTRL_SET_ECC_USE_COFACTOR_MODE
Definition crypt_types.h:395
@ CRYPT_CTRL_SET_RSA_EMSA_PKCSV15
Definition crypt_types.h:379
@ CRYPT_CTRL_SET_SM2_RANDOM
Definition crypt_types.h:409
@ CRYPT_CTRL_SET_ED25519_HASH_METHOD
Definition crypt_types.h:378
@ CRYPT_CTRL_SET_SM9_HASH_METHOD
Definition crypt_types.h:403
@ CRYPT_CTRL_CLR_RSA_FLAG
Definition crypt_types.h:401
@ CRYPT_CTRL_SET_SM2_SERVER
Definition crypt_types.h:406
@ CRYPT_CTRL_GET_RSA_PADDING
Definition crypt_types.h:390
@ CRYPT_CTRL_GENE_SM2_R
Definition crypt_types.h:407
@ CRYPT_CTRL_SET_SM2_USER_ID
Definition crypt_types.h:404
@ CRYPT_CTRL_SET_ECC_POINT_FORMAT
Definition crypt_types.h:387
@ CRYPT_CTRL_SET_SM2_HASH_METHOD
Definition crypt_types.h:405
@ CRYPT_CTRL_SET_RSA_FLAG
Definition crypt_types.h:400
@ CRYPT_CTRL_SET_RSA_PADDING
Definition crypt_types.h:391
@ CRYPT_CTRL_SM2_GET_SEND_CHECK
Definition crypt_types.h:411
@ CRYPT_CTRL_SET_SM2_PKG
Definition crypt_types.h:410
@ CRYPT_CTRL_GET_RSA_MD
Definition crypt_types.h:392
CRYPT_CipherCtrl
Definition crypt_types.h:350
@ CRYPT_CTRL_GET_IV
Definition crypt_types.h:352
@ CRYPT_CTRL_GET_BLOCKSIZE
Definition crypt_types.h:353
@ CRYPT_CTRL_SET_IV
Definition crypt_types.h:351
@ CRYPT_CTRL_SET_COUNT
Definition crypt_types.h:354
@ CRYPT_CTRL_SET_TAGLEN
Definition crypt_types.h:358
@ CRYPT_CTRL_RC2_SETEFFLEN
Definition crypt_types.h:366
@ CRYPT_CTRL_DES_NOKEYCHECK
Definition crypt_types.h:365
@ CRYPT_CTRL_SET_SM4_CONSTTIME
Definition crypt_types.h:367
@ CRYPT_CTRL_SET_FEEDBACKSIZE
Definition crypt_types.h:363
@ CRYPT_CTRL_SET_MSGLEN
Definition crypt_types.h:360
@ CRYPT_CTRL_SET_AAD
Definition crypt_types.h:356
@ CRYPT_CTRL_GET_FEEDBACKSIZE
Definition crypt_types.h:364
@ CRYPT_CTRL_MAX
Definition crypt_types.h:369
@ CRYPT_CTRL_GET_TAG
Definition crypt_types.h:357
CRYPT_RsaPadType
Definition crypt_types.h:436
@ CRYPT_PKEY_EMSA_PKCSV15
Definition crypt_types.h:437
@ CRYPT_PKEY_RSA_PADDINGMAX
Definition crypt_types.h:442
@ CRYPT_PKEY_RSAES_PKCSV15
Definition crypt_types.h:440
@ CRYPT_PKEY_RSA_NO_PAD
Definition crypt_types.h:441
@ CRYPT_PKEY_RSAES_OAEP
Definition crypt_types.h:439
@ CRYPT_PKEY_EMSA_PSS
Definition crypt_types.h:438
CRYPT_PaddingType
Definition crypt_types.h:426
@ CRYPT_PADDING_PKCS5
Definition crypt_types.h:431
@ CRYPT_PADDING_X923
Definition crypt_types.h:430
@ CRYPT_PADDING_PKCS7
Definition crypt_types.h:432
@ CRYPT_PADDING_ZEROS
Definition crypt_types.h:428
@ CRYPT_PADDING_NONE
Definition crypt_types.h:427
@ CRYPT_PADDING_ISO7816
Definition crypt_types.h:429
@ CRYPT_PADDING_MAX_COUNT
Definition crypt_types.h:433
CRYPT_INFO_TYPE
Definition crypt_types.h:515
@ CRYPT_INFO_IV_LEN
Definition crypt_types.h:518
@ CRYPT_INFO_MAX
Definition crypt_types.h:521
@ CRYPT_INFO_KEY_LEN
Definition crypt_types.h:519
@ CRYPT_INFO_IS_AEAD
Definition crypt_types.h:516
@ CRYPT_INFO_BLOCK_LEN
Definition crypt_types.h:520
@ CRYPT_INFO_IS_STREAM
Definition crypt_types.h:517
CRYPT_MD_AlgId
Definition crypt_algid.h:59
void CRYPT_EAL_RegEventReport(EventReport func)
CRYPT_Data CRYPT_EccPub
Definition crypt_types.h:202
CRYPT_Data CRYPT_Sm2Prv
Definition crypt_types.h:148
CRYPT_Data CRYPT_DsaPrv
Definition crypt_types.h:127
void(* EventReport)(CRYPT_EVENT_TYPE oper, CRYPT_ALGO_TYPE type, int32_t id, int32_t err)
event report.
Definition crypt_types.h:494
CRYPT_Data CRYPT_Curve448Pub
Definition crypt_types.h:244
CRYPT_Data CRYPT_DsaPub
Definition crypt_types.h:195
CRYPT_ALGO_TYPE
Definition crypt_types.h:473
@ CRYPT_ALGO_KDF
Definition crypt_types.h:478
@ CRYPT_ALGO_RAND
Definition crypt_types.h:479
@ CRYPT_ALGO_CIPHER
Definition crypt_types.h:474
@ CRYPT_ALGO_PKEY
Definition crypt_types.h:475
@ CRYPT_ALGO_MD
Definition crypt_types.h:476
@ CRYPT_ALGO_MAC
Definition crypt_types.h:477
CRYPT_Data CRYPT_EcdsaPub
Definition crypt_types.h:209
CRYPT_EVENT_TYPE
Definition crypt_types.h:450
@ CRYPT_EVENT_ERR
Definition crypt_types.h:462
@ CRYPT_EVENT_MAX
Definition crypt_types.h:465
@ CRYPT_EVENT_RANDGEN
Definition crypt_types.h:460
@ CRYPT_EVENT_ZERO
Definition crypt_types.h:461
@ CRYPT_EVENT_KEYAGGREMENT
Definition crypt_types.h:458
@ CRYPT_EVENT_SETSSP
Definition crypt_types.h:463
@ CRYPT_EVENT_MAC
Definition crypt_types.h:457
@ CRYPT_EVENT_SIGN
Definition crypt_types.h:454
@ CRYPT_EVENT_GEN
Definition crypt_types.h:453
@ CRYPT_EVENT_ENC
Definition crypt_types.h:451
@ CRYPT_EVENT_GETSSP
Definition crypt_types.h:464
@ CRYPT_EVENT_VERIFY
Definition crypt_types.h:455
@ CRYPT_EVENT_DEC
Definition crypt_types.h:452
@ CRYPT_EVENT_MD
Definition crypt_types.h:456
@ CRYPT_EVENT_KEYDERIVE
Definition crypt_types.h:459
CRYPT_Data CRYPT_DhPrv
Definition crypt_types.h:155
CRYPT_Data CRYPT_Curve25519Prv
Definition crypt_types.h:169
CRYPT_Data CRYPT_EccPrv
Definition crypt_types.h:134
CRYPT_Data CRYPT_EcdsaPrv
Definition crypt_types.h:141
CRYPT_Data CRYPT_Curve25519Pub
Definition crypt_types.h:237
CRYPT_Data CRYPT_Curve448Prv
Definition crypt_types.h:176
CRYPT_Data CRYPT_EcdhPrv
Definition crypt_types.h:162
CRYPT_Data CRYPT_EcdhPub
Definition crypt_types.h:230
CRYPT_Data CRYPT_Sm2Pub
Definition crypt_types.h:216
CRYPT_Data CRYPT_DhPub
Definition crypt_types.h:223
uint32_t len
Definition crypt_types.h:33
uint8_t * data
Definition crypt_types.h:32
Definition crypt_types.h:31
uint32_t min
Definition crypt_types.h:42
uint32_t max
Definition crypt_types.h:43
Definition crypt_types.h:41
CRYPT_MD_AlgId mdId
Definition crypt_types.h:52
Definition crypt_types.h:51
CRYPT_MD_AlgId mdId
Definition crypt_types.h:62
int32_t saltLen
Definition crypt_types.h:61
CRYPT_MD_AlgId mgfId
Definition crypt_types.h:63
Definition crypt_types.h:60
CRYPT_MD_AlgId mdId
Definition crypt_types.h:67
CRYPT_MD_AlgId mgfId
Definition crypt_types.h:68
Definition crypt_types.h:66
uint32_t qLen
Definition crypt_types.h:93
uint8_t * e
Definition crypt_types.h:89
uint8_t * d
Definition crypt_types.h:82
uint8_t * dP
Definition crypt_types.h:86
uint32_t qInvLen
Definition crypt_types.h:96
uint32_t nLen
Definition crypt_types.h:91
uint8_t * n
Definition crypt_types.h:83
uint8_t * p
Definition crypt_types.h:84
uint32_t dQLen
Definition crypt_types.h:95
uint8_t * q
Definition crypt_types.h:85
uint32_t dLen
Definition crypt_types.h:90
uint8_t * qInv
Definition crypt_types.h:88
uint32_t dPLen
Definition crypt_types.h:94
uint32_t eLen
Definition crypt_types.h:97
uint32_t pLen
Definition crypt_types.h:92
uint8_t * dQ
Definition crypt_types.h:87
Definition crypt_types.h:81
uint32_t xLen
Definition crypt_types.h:118
uint8_t * b
Definition crypt_types.h:108
uint8_t * x
Definition crypt_types.h:111
uint32_t aLen
Definition crypt_types.h:114
uint32_t nLen
Definition crypt_types.h:116
uint8_t * a
Definition crypt_types.h:107
uint8_t * n
Definition crypt_types.h:109
uint8_t * h
Definition crypt_types.h:110
uint8_t * p
Definition crypt_types.h:106
uint32_t bLen
Definition crypt_types.h:115
uint8_t * y
Definition crypt_types.h:112
uint32_t hLen
Definition crypt_types.h:117
uint32_t pLen
Definition crypt_types.h:113
uint32_t yLen
Definition crypt_types.h:119
Definition crypt_types.h:105
uint8_t * e
Definition crypt_types.h:184
uint32_t nLen
Definition crypt_types.h:187
uint8_t * n
Definition crypt_types.h:185
uint32_t eLen
Definition crypt_types.h:186
Definition crypt_types.h:183
uint8_t * e
Definition crypt_types.h:252
uint32_t eLen
Definition crypt_types.h:253
uint32_t bits
Definition crypt_types.h:254
Definition crypt_types.h:251
uint8_t * g
Definition crypt_types.h:265
uint32_t qLen
Definition crypt_types.h:267
uint8_t * p
Definition crypt_types.h:263
uint8_t * q
Definition crypt_types.h:264
uint32_t gLen
Definition crypt_types.h:268
uint32_t pLen
Definition crypt_types.h:266
Definition crypt_types.h:262
uint8_t * g
Definition crypt_types.h:279
uint32_t qLen
Definition crypt_types.h:281
uint8_t * p
Definition crypt_types.h:277
uint8_t * q
Definition crypt_types.h:278
uint32_t gLen
Definition crypt_types.h:282
uint32_t pLen
Definition crypt_types.h:280
Definition crypt_types.h:276
Definition crypt_types.h:294