26#include "hitls_type.h"
36#define HITLS_SUCCESS 0
37#define HITLS_X509_V_OK 0
44#define HITLS_WANT_CONNECT 1
51#define HITLS_WANT_ACCEPT 2
58#define HITLS_WANT_READ 3
64#define HITLS_WANT_WRITE 4
70#define HITLS_ERR_TLS 5
77#define HITLS_ERR_SYSCALL 6
79#define HITLS_WANT_BACKUP 7
86#define HITLS_WANT_CLIENT_HELLO_CB 8
93#define HITLS_WANT_X509_LOOKUP 9
101 HITLS_NULL_INPUT = 0x02010001,
103 HITLS_INTERNAL_EXCEPTION,
106 HITLS_UNREGISTERED_CALLBACK,
107 HITLS_UNSUPPORT_TLS_VERSION,
109 HITLS_CONFIG_FAIL_START = 0x02020001,
110 HITLS_CONFIG_NO_SUITABLE_CIPHER_SUITE,
111 HITLS_CONFIG_UNSUPPORT_CIPHER_SUITE,
112 HITLS_CONFIG_INVALID_SET,
113 HITLS_CONFIG_NO_SUITABLE_SIGNATURE_ALGORITHM,
114 HITLS_CONFIG_NO_GROUPS,
115 HITLS_CONFIG_UNSUPPORT_SIGNATURE_ALGORITHM,
116 HITLS_CONFIG_UNSUPPORT_POINT_FORMATS,
117 HITLS_CONFIG_INVALID_VERSION,
118 HITLS_CONFIG_INVALID_LENGTH,
119 HITLS_CONFIG_NO_CERT,
120 HITLS_CONFIG_NO_PRIVATE_KEY,
121 HITLS_CONFIG_DUP_DH_KEY_FAIL,
122 HITLS_CFG_ERR_LOAD_CERT_FILE,
123 HITLS_CFG_ERR_LOAD_CERT_BUFFER,
124 HITLS_CFG_ERR_LOAD_KEY_FILE,
125 HITLS_CFG_ERR_LOAD_KEY_BUFFER,
126 HITLS_CONFIG_UNSUPPORT_GROUP,
127 HITLS_CONFIG_UNSUPPORT,
128 HITLS_CONFIG_ERR_LOAD_GROUP_INFO,
129 HITLS_CONFIG_ERR_LOAD_SIGN_SCHEME_INFO,
130 HITLS_CONFIG_DUP_CUSTOM_EXT,
131 HITLS_CONFIG_ERR_MAX_LIMIT_CUSTOM_EXT,
132 HITLS_CFG_ERR_LOAD_CRL_FILE,
133 HITLS_CFG_ERR_LOAD_CRL_BUFFER,
135 HITLS_CM_FAIL_START = 0x02030001,
136 HITLS_CM_LINK_FATAL_ALERTED,
137 HITLS_CM_LINK_CLOSED,
138 HITLS_CM_LINK_UNESTABLISHED,
140 HITLS_CM_LINK_UNSUPPORT_SECURE_RENEGOTIATION,
141 HITLS_CM_LINK_HANDSHAKING,
143 HITLS_MSG_HANDLE_FAIL_START = 0x02040001,
144 HITLS_MSG_HANDLE_UNEXPECTED_MESSAGE,
145 HITLS_MSG_HANDLE_RANDOM_SIZE_ERR,
146 HITLS_MSG_HANDLE_UNSUPPORT_POINT_FORMAT,
147 HITLS_MSG_HANDLE_CIPHER_SUITE_ERR,
148 HITLS_MSG_HANDLE_UNSUPPORT_VERSION,
149 HITLS_MSG_HANDLE_STATE_ILLEGAL,
150 HITLS_MSG_HANDLE_UNSUPPORT_KX_ALG,
151 HITLS_MSG_HANDLE_UNSUPPORT_CERT,
152 HITLS_MSG_HANDLE_UNKNOWN_CURVE_TYPE,
153 HITLS_MSG_HANDLE_VERIFY_FINISHED_FAIL,
154 HITLS_MSG_HANDLE_VERIFY_SIGN_FAIL,
155 HITLS_MSG_HANDLE_INCORRECT_DIGEST_LEN,
156 HITLS_MSG_HANDLE_UNSUPPORT_NAMED_CURVE,
157 HITLS_MSG_HANDLE_UNSUPPORT_EXTENSION_TYPE,
158 HITLS_MSG_HANDLE_UNSUPPORT_CIPHER_SUITE,
159 HITLS_MSG_HANDLE_COOKIE_ERR,
160 HITLS_MSG_VERIFY_COOKIE_ERR,
161 HITLS_MSG_HANDLE_ERR_ENCODE_ECDH_KEY,
162 HITLS_MSG_HANDLE_ERR_ENCODE_DH_KEY,
163 HITLS_MSG_HANDLE_ERR_GET_DH_PARAMETERS,
164 HITLS_MSG_HANDLE_ERR_GET_DH_KEY,
165 HITLS_MSG_HANDLE_NO_PEER_CERTIFIACATE,
166 HITLS_MSG_HANDLE_ERR_NO_SERVER_CERTIFICATE,
167 HITLS_MSG_HANDLE_UNMATCHED_SEQUENCE,
168 HITLS_MSG_HANDLE_ILLEGAL_VERSION,
169 HITLS_MSG_HANDLE_ILLEGAL_CIPHER_SUITE,
170 HITLS_MSG_HANDLE_ILLEGAL_SELECTED_GROUP,
171 HITLS_MSG_HANDLE_ILLEGAL_EXTRENED_MASTER_SECRET,
172 HITLS_MSG_HANDLE_MISSING_EXTENSION,
173 HITLS_MSG_HANDLE_DUPLICATE_HELLO_RETYR_REQUEST,
174 HITLS_MSG_HANDLE_ALPN_PROTOCOL_NO_MATCH,
175 HITLS_MSG_HANDLE_ILLEGAL_PSK_LEN,
176 HITLS_MSG_HANDLE_ILLEGAL_IDENTITY_LEN,
177 HITLS_MSG_HANDLE_GET_UNSIGN_DATA_FAIL,
179 HITLS_MSG_HANDLE_ILLEGAL_SESSION_ID,
180 HITLS_MSG_HANDLE_SNI_UNRECOGNIZED_NAME,
181 HITLS_MSG_HANDLE_ALPN_UNRECOGNIZED,
182 HITLS_MSG_HANDLE_ILLEGAL_KEY_UPDATE_TYPE,
183 HITLS_MSG_HANDLE_SYS_TIME_FAIL,
184 HITLS_MSG_HANDLE_DTLS_CONNECT_TIMEOUT,
185 HITLS_MSG_HANDLE_UNSECURE_VERSION,
186 HITLS_MSG_HANDLE_UNSECURE_CIPHER_SUITE,
187 HITLS_MSG_HANDLE_RENEGOTIATION_FAIL,
188 HITLS_MSG_HANDLE_SESSION_ID_CTX_ILLEGAL,
189 HITLS_MSG_HANDLE_ENCRYPT_THEN_MAC_ERR,
190 HITLS_MSG_HANDLE_ILLEGAL_PSK_IDENTITY,
191 HITLS_MSG_HANDLE_PSK_USE_SESSION_FAIL,
192 HITLS_MSG_HANDLE_PSK_FIND_SESSION_FAIL,
193 HITLS_MSG_HANDLE_PSK_SESSION_INVALID_CIPHER_SUITE,
194 HITLS_MSG_HANDLE_PSK_INVALID,
195 HITLS_MSG_HANDLE_INVALID_CERT_REQ_CTX,
196 HITLS_MSG_HANDLE_HANDSHAKE_FAILURE,
197 HITLS_MSG_HANDLE_INVALID_COMPRESSION_METHOD,
198 HITLS_MSG_HANDLE_INVALID_EXTENDED_MASTER_SECRET,
199 HITLS_MSG_HANDLE_ERR_CLIENT_HELLO_FRAGMENT,
200 HITLS_MSG_HANDLE_INVALID_RECORD_SIZE_LIMIT,
201 HITLS_MSG_HANDLE_ERR_INAPPROPRIATE_FALLBACK,
203 HITLS_MSG_HANDLE_DTLS_RETRANSMIT_NOT_TIMEOUT,
204 HITLS_MSG_HANDLE_ERR_WITHOUT_TIMEOUT_ACTION,
205 HITLS_MSG_HANDLE_ERR_TIMEOUT_REWIND,
207 HITLS_PACK_FAIL_START = 0x02050001,
208 HITLS_PACK_UNSUPPORT_VERSION,
209 HITLS_PACK_UNSECURE_VERSION,
210 HITLS_PACK_UNSUPPORT_HANDSHAKE_MSG,
211 HITLS_PACK_NOT_ENOUGH_BUF_LENGTH,
212 HITLS_PACK_SESSIONID_ERR,
213 HITLS_PACK_COOKIE_ERR,
214 HITLS_PACK_CLIENT_CIPHER_SUITE_ERR,
215 HITLS_PACK_UNSUPPORT_KX_ALG,
216 HITLS_PACK_UNSUPPORT_KX_CURVE_TYPE,
217 HITLS_PACK_INVALID_KX_PUBKEY_LENGTH,
218 HITLS_PACK_SIGNATURE_ERR,
219 HITLS_PACK_PRE_SHARED_KEY_ERR,
221 HITLS_PARSE_FAIL_START = 0x02060001,
222 HITLS_PARSE_UNSUPPORT_VERSION,
223 HITLS_PARSE_UNSUPPORT_HANDSHAKE_MSG,
224 HITLS_PARSE_INVALID_MSG_LEN,
225 HITLS_PARSE_DUPLICATE_EXTENDED_MSG,
226 HITLS_PARSE_COMPRESSION_METHOD_ERR,
227 HITLS_PARSE_SERVER_NAME_ERR,
228 HITLS_PARSE_CERT_ERR,
229 HITLS_PARSE_ECDH_PUBKEY_ERR,
230 HITLS_PARSE_ECDH_SIGN_ERR,
231 HITLS_PARSE_UNSUPPORT_KX_ALG,
232 HITLS_PARSE_UNSUPPORT_KX_CURVE_TYPE,
233 HITLS_PARSE_GET_SIGN_PARA_ERR,
234 HITLS_PARSE_UNSUPPORT_SIGN_ALG,
235 HITLS_PARSE_VERIFY_SIGN_FAIL,
236 HITLS_PARSE_DH_P_ERR,
237 HITLS_PARSE_DH_G_ERR,
238 HITLS_PARSE_DH_PUBKEY_ERR,
239 HITLS_PARSE_DH_SIGN_ERR,
240 HITLS_PARSE_UNSUPPORTED_EXTENSION,
241 HITLS_PARSE_CA_LIST_ERR,
242 HITLS_PARSE_EXCESSIVE_MESSAGE_SIZE,
243 HITLS_PARSE_PRE_SHARED_KEY_FAILED,
244 HITLS_PARSE_DUPLICATED_KEY_SHARE,
245 HITLS_PARSE_SESSION_TICKET_FAIL,
247 HITLS_REASS_FAIL_START = 0x02070001,
248 HITLS_REASS_INVALID_FRAGMENT,
250 HITLS_CCS_FAIL_START = 0x02080001,
251 HITLS_CCS_INVALID_CMD,
253 HITLS_ALERT_FAIL_START = 0x02090001,
254 HITLS_ALERT_NO_WANT_SEND,
256 HITLS_REC_FAIL_START = 0x020A0001,
257 HITLS_REC_PMTU_TOO_SMALL,
258 HITLS_REC_ERR_BUFFER_NOT_ENOUGH,
259 HITLS_REC_ERR_TOO_BIG_LENGTH,
261 HITLS_REC_ERR_NOT_SUPPORT_CIPHER,
262 HITLS_REC_ERR_ENCRYPT,
263 HITLS_REC_ERR_AEAD_NONCE_PARAM,
264 HITLS_REC_ERR_SN_WRAPPING,
265 HITLS_REC_ERR_IO_EXCEPTION,
266 HITLS_REC_NORMAL_IO_BUSY,
267 HITLS_REC_NORMAL_RECV_BUF_EMPTY,
268 HITLS_REC_NORMAL_RECV_UNEXPECT_MSG,
270 HITLS_REC_NORMAL_RECV_DISORDER_MSG,
272 HITLS_REC_INVLAID_RECORD,
273 HITLS_REC_INVALID_PROTOCOL_VERSION,
274 HITLS_REC_BAD_RECORD_MAC,
275 HITLS_REC_DECODE_ERROR,
276 HITLS_REC_RECORD_OVERFLOW,
277 HITLS_REC_ERR_RECV_UNEXPECTED_MSG,
278 HITLS_REC_ERR_NOT_ON_RECORD_BOUNDARY,
279 HITLS_REC_ERR_GENERATE_MAC,
280 HITLS_REC_NORMAL_IO_EOF,
281 HITLS_REC_ENCRYPTED_NUMBER_OVERFLOW,
282 HITLS_REC_ERR_DATA_BETWEEN_CCS_AND_FINISHED,
285 HITLS_UIO_FAIL_START = 0x020B0001,
287 HITLS_UIO_IO_EXCEPTION,
288 HITLS_UIO_SCTP_IS_SND_BUF_EMPTY_FAIL,
290 HITLS_UIO_SCTP_ADD_AUTH_KEY_FAIL,
291 HITLS_UIO_SCTP_ACTIVE_AUTH_KEY_FAIL,
292 HITLS_UIO_SCTP_DEL_AUTH_KEY_FAIL,
294 HITLS_UIO_IO_TYPE_ERROR,
296 HITLS_CERT_FAIL_START = 0x020C0001,
297 HITLS_CERT_STORE_CTRL_ERR_SET_VERIFY_DEPTH,
298 HITLS_CERT_STORE_CTRL_ERR_ADD_CERT_LIST,
299 HITLS_CERT_ERR_X509_DUP,
300 HITLS_CERT_ERR_KEY_DUP,
301 HITLS_CERT_ERR_STORE_DUP,
302 HITLS_CERT_ERR_CHAIN_DUP,
303 HITLS_CERT_CTRL_ERR_GET_ENCODE_LEN,
304 HITLS_CERT_CTRL_ERR_GET_PUB_KEY,
305 HITLS_CERT_CTRL_ERR_GET_SIGN_ALGO,
306 HITLS_CERT_KEY_CTRL_ERR_GET_SIGN_LEN,
307 HITLS_CERT_KEY_CTRL_ERR_GET_TYPE,
308 HITLS_CERT_KEY_CTRL_ERR_GET_CURVE_NAME,
309 HITLS_CERT_KEY_CTRL_ERR_GET_POINT_FORMAT,
310 HITLS_CERT_KEY_CTRL_ERR_GET_SECBITS,
311 HITLS_CERT_KEY_CTRL_ERR_IS_ENC_USAGE,
313 HITLS_CERT_KEY_CTRL_ERR_IS_DIGITAL_SIGN_USAGE,
314 HITLS_CERT_KEY_CTRL_ERR_IS_KEY_CERT_SIGN_USAGE,
315 HITLS_CERT_KEY_CTRL_ERR_IS_KEY_AGREEMENT_USAGE,
316 HITLS_CERT_STORE_CTRL_ERR_SET_VERIFY_FLAGS,
317 HITLS_CERT_KEY_CTRL_ERR_GET_PARAM_ID,
319 HITLS_CERT_ERR_INVALID_KEY_TYPE,
320 HITLS_CERT_ERR_CHECK_CERT_AND_KEY,
321 HITLS_CERT_ERR_NO_CURVE_MATCH,
322 HITLS_CERT_ERR_NO_POINT_FORMAT_MATCH,
323 HITLS_CERT_ERR_NO_SIGN_SCHEME_MATCH,
324 HITLS_CERT_ERR_SELECT_CERTIFICATE,
325 HITLS_CERT_ERR_BUILD_CHAIN,
326 HITLS_CERT_ERR_ENCODE_CERT,
327 HITLS_CERT_ERR_PARSE_MSG,
328 HITLS_CERT_ERR_VERIFY_CERT_CHAIN,
329 HITLS_CERT_ERR_CREATE_SIGN,
330 HITLS_CERT_ERR_VERIFY_SIGN,
332 HITLS_CERT_ERR_ENCRYPT,
333 HITLS_CERT_ERR_DECRYPT,
334 HITLS_CERT_ERR_ADD_CHAIN_CERT,
335 HITLS_CERT_ERR_MGR_DUP,
336 HITLS_CERT_ERR_INSECURE_SIG_ALG,
337 HITLS_CERT_ERR_CA_KEY_WITH_INSECURE_SECBITS,
338 HITLS_CERT_ERR_EE_KEY_WITH_INSECURE_SECBITS,
339 HITLS_CERT_ERR_EXP_CERT,
340 HITLS_CERT_ERR_ENCODE,
341 HITLS_CERT_ERR_SET_CERT,
342 HITLS_CERT_ERR_KEYUSAGE,
343 HITLS_CERT_ERR_INVALID_STORE_TYPE,
344 HITLS_CERT_ERR_X509_REF,
345 HITLS_CERT_ERR_NO_KEYUSAGE,
346 HITLS_CERT_KEY_CTRL_ERR_IS_DATA_ENC_USAGE,
347 HITLS_CERT_KEY_CTRL_ERR_IS_NON_REPUDIATION_USAGE,
349 HITLS_CERT_CTRL_ERR_GET_SUBJECT_DN,
350 HITLS_CERT_STORE_CTRL_ERR_GET_VERIFY_DEPTH,
351 HITLS_CERT_STORE_CTRL_ERR_GET_VERIFY_FLAGS,
352 HITLS_CERT_CTRL_ERR_IS_SELF_SIGNED,
354 HITLS_CERT_ERR_INSERT_CERTPAIR,
355 HITLS_CERT_CTRL_ERR_INVALID_CMD,
356 HITLS_CERT_STORE_CTRL_ERR_ADD_CRL_LIST,
357 HITLS_CERT_STORE_CTRL_ERR_CLEAR_CRL_LIST,
359 HITLS_CRYPT_FAIL_START = 0x020D0001,
360 HITLS_CRYPT_ERR_GENERATE_RANDOM,
361 HITLS_CRYPT_ERR_HMAC,
362 HITLS_CRYPT_ERR_DIGEST,
363 HITLS_CRYPT_ERR_ENCRYPT,
364 HITLS_CRYPT_ERR_DECRYPT,
365 HITLS_CRYPT_ERR_ENCODE_ECDH_KEY,
366 HITLS_CRYPT_ERR_CALC_SHARED_KEY,
367 HITLS_CRYPT_ERR_ENCODE_DH_KEY,
368 HITLS_CRYPT_ERR_HKDF_EXTRACT,
369 HITLS_CRYPT_ERR_HKDF_EXPAND,
370 HITLS_CRYPT_ERR_KEM_ENCAPSULATE,
371 HITLS_CRYPT_ERR_KEM_DECAPSULATE,
374 HITLS_CRYPT_ERR_GEN_KEY_PAIR,
376 HITLS_APP_FAIL_START = 0x020E0001,
377 HITLS_APP_ERR_TOO_LONG_TO_WRITE,
378 HITLS_APP_ERR_ZERO_READ_BUF_LEN,
379 HITLS_APP_ERR_WRITE_BAD_RETRY,
381 HITLS_SESS_FAIL_START = 0x02100001,
382 HITLS_SESS_ERR_SESSION_ID_GENRATE,
383 HITLS_SESS_ERR_DECODE_TICKET,
384 HITLS_SESS_ERR_SESSION_TICKET_SIZE_INCORRECT,
385 HITLS_SESS_ERR_SESSION_TICKET_HMAC_FAIL,
386 HITLS_SESS_ERR_SESSION_TICKET_KEY_FAIL,
388 HITLS_SESS_ERR_ENC_VERIFY_RESULT_FAIL,
389 HITLS_SESS_ERR_ENC_MASTER_SECRET_FAIL,
390 HITLS_SESS_ERR_ENC_EXT_MASTER_SECRET_FAIL,
391 HITLS_SESS_ERR_ENC_SESSION_ID_FAIL,
392 HITLS_SESS_ERR_ENC_SESSION_ID_CTX_FAIL,
393 HITLS_SESS_ERR_ENC_HOST_NAME_FAIL,
394 HITLS_SESS_ERR_ENC_TIME_OUT_FAIL,
395 HITLS_SESS_ERR_ENC_VERSION_FAIL,
396 HITLS_SESS_ERR_ENC_CIPHER_SUITE_FAIL,
397 HITLS_SESS_ERR_ENC_START_TIME_FAIL,
398 HITLS_SESS_ERR_ENC_PSK_IDENTITY_FAIL,
399 HITLS_SESS_ERR_DEC_VERIFY_RESULT_FAIL,
400 HITLS_SESS_ERR_DEC_VERSION_FAIL,
401 HITLS_SESS_ERR_DEC_CIPHER_SUITE_FAIL,
402 HITLS_SESS_ERR_DEC_MASTER_SECRET_FAIL,
403 HITLS_SESS_ERR_DEC_PSK_IDENTITY_FAIL,
404 HITLS_SESS_ERR_DEC_START_TIME_FAIL,
405 HITLS_SESS_ERR_DEC_TIME_OUT_FAIL,
406 HITLS_SESS_ERR_DEC_HOST_NAME_FAIL,
407 HITLS_SESS_ERR_DEC_SESSION_ID_CTX_FAIL,
408 HITLS_SESS_ERR_DEC_SESSION_ID_FAIL,
409 HITLS_SESS_ERR_DEC_EXT_MASTER_SECRET_FAIL,
410 HITLS_SESS_ERR_BAD_SESSION,
411 HITLS_SESS_ERR_ENC_PEER_CERT_FAIL,
412 HITLS_SESS_ERR_DEC_PEER_CERT_FAIL,
413 HITLS_SESS_ERR_FLUSH_FAIL,
414 HITLS_SESS_ERR_NOT_FOUND,
416 HITLS_X509_FAIL_START = 0x02120001,
418 HITLS_CERT_SELF_ADAPT_ERR = 0x02130001,
419 HITLS_CERT_SELF_ADAPT_INVALID_TIME,
420 HITLS_CERT_SELF_ADAPT_UNSUPPORT_FORMAT,
421 HITLS_CERT_SELF_ADAPT_BUILD_CERT_CHAIN_ERR,
423 HITLS_CALLBACK_CERT_RETRY = 0x02140001,
424 HITLS_CALLBACK_CERT_ERROR,
425 HITLS_CALLBACK_CLIENT_HELLO_ERROR,
426 HITLS_CALLBACK_CLIENT_HELLO_RETRY,
427 HITLS_CALLBACK_CLIENT_HELLO_INVALID_CALL,
428 HITLS_CALLBACK_CLIENT_HELLO_EXTENSION_NOT_FOUND,
453int32_t HITLS_GetError(
const HITLS_Ctx *ctx, int32_t ret);
struct TlsCtx HITLS_Ctx
HITLS context
定义 hitls_type.h:35