21#include "rec_header.h"
22#include "rec_unprocessed_msg.h"
30#define REC_MAX_PLAIN_TEXT_LENGTH 16384
32#define REC_MAX_ENCRYPTED_OVERHEAD 2048u
33#ifdef HITLS_TLS_FEATURE_RECORD_SIZE_LIMIT
34#define REC_MAX_READ_ENCRYPTED_OVERHEAD (256u + 64u)
35#define REC_MAX_WRITE_ENCRYPTED_OVERHEAD (16u + 64u)
37#define REC_MAX_READ_ENCRYPTED_OVERHEAD REC_MAX_ENCRYPTED_OVERHEAD
38#define REC_MAX_WRITE_ENCRYPTED_OVERHEAD REC_MAX_ENCRYPTED_OVERHEAD
40#define REC_MAX_CIPHER_TEXT_LEN (REC_MAX_PLAIN_LENGTH + REC_MAX_ENCRYPTED_OVERHEAD)
42#define REC_MAX_AES_GCM_ENCRYPTION_LIMIT 23726566u
50typedef int32_t (*REC_ReadFunc)(TLS_Ctx *, REC_Type, uint8_t *, uint32_t *, uint32_t);
51typedef int32_t (*REC_WriteFunc)(TLS_Ctx *, REC_Type,
const uint8_t *, uint32_t);
65 RecBufList *hsRecList;
66 RecBufList *appRecList;
67 uint32_t emptyRecordCnt;
68#ifdef HITLS_TLS_PROTO_DTLS12
75 UnprocessedHsMsg unprocessedHsMsg;
77 UnprocessedAppMsg unprocessedAppMsgList;
81 REC_WriteFunc recWrite;
83 REC_Type unexpectedMsgType;
84 uint32_t pendingDataSize;
85 const uint8_t *pendingData;
97uint32_t RecGetInitBufferSize(
const TLS_Ctx *ctx,
bool isRead);
99int32_t RecDerefBufList(TLS_Ctx *ctx);
107void RecTryFreeRecBuf(TLS_Ctx *ctx,
bool isOut);
119int32_t RecIoBufInit(TLS_Ctx *ctx,
RecCtx *recordCtx,
bool isRead);