API参考
载入中...
搜索中...
未找到
hitls_type.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
21
22#ifndef HITLS_TYPE_H
23#define HITLS_TYPE_H
24
25#include <stdint.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
35typedef struct TlsCtx HITLS_Ctx;
36
41typedef struct TlsConfig HITLS_Config;
42
48
49typedef struct TlsSessCtx HITLS_Session;
50
57#define DTLS_SCTP_SHARED_AUTHKEY_LEN 64
58
64#define TLS13_KE_MODE_PSK_ONLY 1u
65
71#define TLS13_KE_MODE_PSK_WITH_DHE 2u
78#define TLS13_CERT_AUTH_WITH_DHE 4u
79
86#define HITLS_EMS_MODE_FORBID (-1)
93#define HITLS_EMS_MODE_PREFER (0)
100#define HITLS_EMS_MODE_FORCE (1)
101
102/* Sets the number of digits in the version number. */
103#define SSLV2_VERSION_BIT 0x00000001U
104#define SSLV3_VERSION_BIT 0x00000002U
105#define TLS10_VERSION_BIT 0x00000004U
106#define TLS11_VERSION_BIT 0x00000008U
107#define TLS12_VERSION_BIT 0x00000010U
108#define TLS13_VERSION_BIT 0x00000020U
109#define TLCP11_VERSION_BIT 0x00000080U
110#define DTLS10_VERSION_BIT 0x80000000U
111#define DTLS12_VERSION_BIT 0x40000000U
112#define DTLCP11_VERSION_BIT 0x00000100U
113#define TLS_VERSION_MASK (TLS12_VERSION_BIT | TLS13_VERSION_BIT)
114
115/* Currently, only DTLS12 is supported. DTLS10 is not supported */
116#define DTLS_VERSION_MASK DTLS12_VERSION_BIT
117
118#define STREAM_VERSION_BITS \
119 (SSLV2_VERSION_BIT | SSLV3_VERSION_BIT | TLS10_VERSION_BIT | TLS11_VERSION_BIT | TLS12_VERSION_BIT | \
120 TLS13_VERSION_BIT | TLCP11_VERSION_BIT)
121#define DATAGRAM_VERSION_BITS (DTLS10_VERSION_BIT | DTLS12_VERSION_BIT | DTLCP11_VERSION_BIT)
122
123#define TLCP_VERSION_BITS (TLCP11_VERSION_BIT | DTLCP11_VERSION_BIT)
124#define ALL_VERSION (STREAM_VERSION_BITS | DATAGRAM_VERSION_BITS)
125
131typedef enum {
132 HITLS_SESS_CACHE_NO = 0x00000000U,
133 HITLS_SESS_CACHE_CLIENT = 0x00000001U,
134 HITLS_SESS_CACHE_SERVER = 0x00000002U,
135 HITLS_SESS_CACHE_BOTH = 0x00000003U,
136 HITLS_SESS_DISABLE_INTERNAL_STORE = 0x00000004U,
137 HITLS_SESS_DISABLE_INTERNAL_LOOKUP = 0x00000008U,
138 HITLS_SESS_DISABLE_AUTO_CLEANUP = 0x00000010U,
139 HITLS_SESS_ENABLE_TIME_UPDATE = 0x00000020U,
141
147typedef enum {
148 HITLS_UPDATE_NOT_REQUESTED = 0,
149 HITLS_UPDATE_REQUESTED = 1,
150 HITLS_KEY_UPDATE_REQ_END = 255
152
153#define HITLS_MODE_ENABLE_PARTIAL_WRITE 0x00000001U
154#define HITLS_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U
155#define HITLS_MODE_AUTO_RETRY 0x00000004U
156#define HITLS_MODE_NO_AUTO_CHAIN 0x00000008U
157#define HITLS_MODE_RELEASE_BUFFERS 0x00000010U
158#define HITLS_MODE_SEND_CLIENTHELLO_TIME 0x00000020U
159#define HITLS_MODE_SEND_SERVERHELLO_TIME 0x00000040U
160#define HITLS_MODE_SEND_FALLBACK_SCSV 0x00000080U
161#define HITLS_MODE_ASYNC 0x00000100U
162#define HITLS_MODE_DTLS_SCTP_LABEL_LENGTH_BUG 0x00000400U
163
164/* close_notify message has been sent to the peer end, turn off the alarm, and the connection is considered closed. */
165# define HITLS_SENT_SHUTDOWN 1u
166# define HITLS_RECEIVED_SHUTDOWN 2u /* Received peer shutdown alert, normal close_notify or fatal error */
167
168// Used to mark the current internal status
169#define HITLS_NOTHING 1u
170#define HITLS_WRITING 2u
171#define HITLS_READING 3u
172#define HITLS_ASYNC_PAUSED 4u
173#define HITLS_ASYNC_NO_JOBS 5u
174#define HITLS_CLIENT_HELLO_CB 6u
175#define HITLS_X509_LOOKUP 7u
176#define HITLS_CC_READ 0x001u /* Read state */
177#define HITLS_CC_WRITE 0x002u /* Write status */
178
179#ifdef __cplusplus
180}
181#endif
182
183#endif
struct TlsCtx HITLS_Ctx
HITLS context
定义 hitls_type.h:35
HITLS_KeyUpdateRequest
key update message type
定义 hitls_type.h:147
struct TlsConfig HITLS_Config
config context
定义 hitls_type.h:41
struct TlsCipherSuiteInfo HITLS_Cipher
cipherSuite information
定义 hitls_type.h:47
HITLS_SESS_CACHE_MODE
HITLS_SESS_CACHE_MODE: mode for storing hitls sessions.
定义 hitls_type.h:131
定义 cipher_suite.h:50
TLS Global Configuration
定义 tls_config.h:120
定义 tls.h:263
定义 session_type.h:51