15#ifndef HITLS_SESSION_H
16#define HITLS_SESSION_H
33#define HITLS_SESSION_ID_CTX_MAX_SIZE 32u
39#define HITLS_SESSION_ID_MAX_SIZE 32u
133#define HITLS_TICKET_KEY_RET_NEED_ALERT (-1)
135#define HITLS_TICKET_KEY_RET_FAIL 0
137#define HITLS_TICKET_KEY_RET_SUCCESS 1
139#define HITLS_TICKET_KEY_RET_SUCCESS_RENEW 2
struct TlsSessCtx HITLS_Session
Definition hitls_type.h:42
uint32_t HITLS_SESS_GetMasterKeyLen(const HITLS_Session *sess)
Obtain the master key length of a session.
int32_t HITLS_CFG_SetSessionIdCtx(HITLS_Config *config, const uint8_t *sessionIdCtx, uint32_t len)
Set the user-specific session ID ctx, only on the server.
int32_t HITLS_SESS_GetProtocolVersion(const HITLS_Session *sess, uint16_t *version)
Obtain the session protocol version.
int32_t HITLS_SetTicketNums(HITLS_Ctx *ctx, uint32_t ticketNums)
Setting TLS1.3, number of new session tickets sent after complete link establishment.
uint32_t HITLS_GetTicketNums(HITLS_Ctx *ctx)
Obtain TLS1.3, Number of new session tickets sent after complete link establishment.
int32_t HITLS_SESS_SetTimeout(HITLS_Session *sess, uint64_t timeout)
Set the timeout interval, in seconds.
int32_t HITLS_CFG_GetSessionCacheSize(HITLS_Config *config, uint32_t *size)
Obtain the maximum number of sessions in the session cache.
uint32_t HITLS_CFG_GetTicketNums(HITLS_Config *config)
Obtain TLS1.3, number of new session tickets sent after complete link establishment.
int32_t HITLS_CFG_GetSessionCacheMode(HITLS_Config *config, HITLS_SESS_CACHE_MODE *mode)
Obtain the session cache mode.
int32_t HITLS_IsSessionReused(HITLS_Ctx *ctx, uint8_t *isReused)
Whether the link is multiplexed with a session.
int32_t HITLS_CFG_SetTicketKeyCallback(HITLS_Config *config, HITLS_TicketKeyCb callback)
Set the ticket key callback, which is used only by the server, cb can be NULL.
HITLS_Session * HITLS_GetSession(const HITLS_Ctx *ctx)
Obtain the handle of the session information and directly obtain the pointer.
int32_t HITLS_CFG_SetSessionCacheSize(HITLS_Config *config, uint32_t size)
Set the maximum number of sessions in the session cache.
int32_t HITLS_GetSessionTicketKey(const HITLS_Ctx *ctx, uint8_t *key, uint32_t keySize, uint32_t *outSize)
Obtain the default ticket key of the HiTLS.
int32_t HITLS_SESS_GetSessionIdCtx(const HITLS_Session *sess, uint8_t *sessionIdCtx, uint32_t *sessionIdCtxSize)
Obtain the session ID ctx.
int32_t HITLS_CFG_SetNewSessionCb(HITLS_Config *config, HITLS_NewSessionCb newSessionCb)
Set a callback for negotiating a new session call.
int32_t HITLS_SESS_GetMasterKey(const HITLS_Session *sess, uint8_t *masterKey, uint32_t *masterKeySize)
Obtain the master key of a session.
int32_t HITLS_SESS_SetMasterKey(HITLS_Session *sess, const uint8_t *masterKey, uint32_t masterKeySize)
Set the master key of a session.
int32_t HITLS_CFG_SetSessionTimeout(HITLS_Config *config, uint64_t timeout)
Set the session timeout interval.
int32_t(* HITLS_TicketKeyCb)(uint8_t *keyName, uint32_t keyNameSize, HITLS_CipherParameters *cipher, uint8_t isEncrypt)
Obtain and verify ticket_key on the server.
Definition hitls_session.h:174
int32_t HITLS_CFG_GetSessionTicketSupport(const HITLS_Config *config, uint8_t *isSupport)
Query whether the session ticket function is supported.
int32_t HITLS_SESS_SetCipherSuite(HITLS_Session *sess, uint16_t cipherSuite)
Set the session password suite.
int32_t HITLS_SetSession(HITLS_Ctx *ctx, HITLS_Session *session)
Set the handle for the session information about the HiTLS link.
int32_t HITLS_CFG_GetSessionTicketKey(const HITLS_Config *config, uint8_t *key, uint32_t keySize, uint32_t *outSize)
Obtain the default ticket key of the HiTLS.
int32_t HITLS_SESS_SetHaveExtMasterSecret(HITLS_Session *sess, uint8_t haveExtMasterSecret)
Set whether to contain the master key extension.
int32_t HITLS_SESS_SetProtocolVersion(HITLS_Session *sess, uint16_t version)
Set the session protocol version.
HITLS_Session * HITLS_SESS_Dup(HITLS_Session *sess)
Duplicate a session, the number of reference times increases by 1.
int32_t HITLS_SetSessionTicketKey(HITLS_Ctx *ctx, const uint8_t *key, uint32_t keySize)
Set the default ticket key of the HiTLS. The key is used to encrypt and decrypt the ticket in the new...
int32_t HITLS_CFG_SetSessionTicketSupport(HITLS_Config *config, bool support)
Set whether to support the session ticket function.
int32_t HITLS_SESS_SetSessionIdCtx(HITLS_Session *sess, uint8_t *sessionIdCtx, uint32_t sessionIdCtxSize)
Set the session ID ctx.
bool HITLS_SESS_IsResumable(const HITLS_Session *sess)
Check whether the session can be recovered. Only simple check is performed, but the validity period i...
int32_t HITLS_SESS_GetSessionId(const HITLS_Session *sess, uint8_t *sessionId, uint32_t *sessionIdSize)
Obtain the session ID.
int32_t HITLS_SESS_SetSessionId(HITLS_Session *sess, uint8_t *sessionId, uint32_t sessionIdSize)
Set the session ID.
int32_t HITLS_SetSessionIdCtx(HITLS_Ctx *ctx, const uint8_t *sessionIdCtx, uint32_t len)
Set the user-specific session ID ctx of the HiTLS link, only on the server.
int32_t(* HITLS_NewSessionCb)(HITLS_Ctx *ctx, HITLS_Session *session)
This callback is called when a new session is negotiated. Users can use sessions.
Definition hitls_session.h:120
void HITLS_SESS_Free(HITLS_Session *sess)
Release the session information handle.
HITLS_Session * HITLS_SESS_New(void)
Apply for a new session.
int32_t HITLS_CFG_SetSessionCacheMode(HITLS_Config *config, HITLS_SESS_CACHE_MODE mode)
Set the session cache mode.
bool HITLS_SESS_HasTicket(const HITLS_Session *sess)
Check whether the session has a ticket.
int32_t HITLS_SESS_GetHaveExtMasterSecret(HITLS_Session *sess, uint8_t *haveExtMasterSecret)
Obtain the master key extension.
int32_t HITLS_CFG_SetTicketNums(HITLS_Config *config, uint32_t ticketNums)
Setting TLS1.3, number of new session tickets sent after a complete link is established.
int32_t HITLS_CFG_SetSessionTicketKey(HITLS_Config *config, const uint8_t *key, uint32_t keySize)
Set the default ticket key of the HiTLS. The key is used to encrypt and decrypt tickets in the new se...
HITLS_Session * HITLS_GetDupSession(HITLS_Ctx *ctx)
Obtain the handle of the copied session information.
int32_t HITLS_SESS_GetCipherSuite(HITLS_Session *sess, uint16_t *cipherSuite)
Obtain the session password suite.
int32_t HITLS_CFG_GetSessionTimeout(const HITLS_Config *config, uint64_t *timeout)
Obtain the timeout interval of a session.
struct TlsCtx HITLS_Ctx
HITLS context
Definition hitls_type.h:28
struct TlsConfig HITLS_Config
config context
Definition hitls_type.h:34
HITLS_SESS_CACHE_MODE
HITLS_SESS_CACHE_MODE: mode for storing hitls sessions.
Definition hitls_type.h:87
Key parameters
Definition hitls_crypt_type.h:214