dtls13_misc.h File Reference

DTLS 1.3 (Datagram Transport Layer Security) More...

#include "tls/tls.h"

Go to the source code of this file.

Data Structures

struct  Dtls13RetransmitState
 Retransmission state. More...
 

Macros

#define DTLS13_MAX_ACK_RECORDS   32
 
#define DTLS13_HEADER_MASK   0xE0
 
#define DTLS13_HEADER_FIXED   0x20
 
#define DTLS13_HEADER_FLAG_C   0x10
 
#define DTLS13_HEADER_FLAG_S   0x08
 
#define DTLS13_HEADER_FLAG_L   0x04
 
#define DTLS13_HEADER_FLAG_E   0x03
 

Functions

void dtls13SaveRecordNumber (TlsContext *context, uint64_t epoch, uint64_t seqNum)
 Update the list of record numbers. More...
 
error_t dtls13SendAck (TlsContext *context)
 Send ACK message. More...
 
error_t dtls13FormatAck (TlsContext *context, Dtls13Ack *message, size_t *length)
 Format ACK message. More...
 
error_t dtls13ParseAck (TlsContext *context, const Dtls13Ack *message, size_t length)
 Parse ACK message. More...
 
void dtls13FormatNonce (TlsEncryptionEngine *encryptionEngine, const DtlsSequenceNumber *seqNum, uint8_t *nonce, size_t *nonceLen)
 Format nonce. More...
 
size_t dtls13ComputeEncryptionOverhead (TlsEncryptionEngine *encryptionEngine)
 Compute overhead caused by encryption. More...
 

Variables

typedef __packed_struct
 Record number. More...
 
uint64_t seqNum
 
 Dtls13RecordNumber
 
Dtls13RecordNumber recordNumbers []
 
 Dtls13Ack
 

Detailed Description

DTLS 1.3 (Datagram Transport Layer Security)

License

SPDX-License-Identifier: GPL-2.0-or-later

Copyright (C) 2010-2026 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneSSL Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Author
Oryx Embedded SARL (www.oryx-embedded.com)
Version
2.6.2

Definition in file dtls13_misc.h.

Macro Definition Documentation

◆ DTLS13_HEADER_FIXED

#define DTLS13_HEADER_FIXED   0x20

Definition at line 46 of file dtls13_misc.h.

◆ DTLS13_HEADER_FLAG_C

#define DTLS13_HEADER_FLAG_C   0x10

Definition at line 47 of file dtls13_misc.h.

◆ DTLS13_HEADER_FLAG_E

#define DTLS13_HEADER_FLAG_E   0x03

Definition at line 50 of file dtls13_misc.h.

◆ DTLS13_HEADER_FLAG_L

#define DTLS13_HEADER_FLAG_L   0x04

Definition at line 49 of file dtls13_misc.h.

◆ DTLS13_HEADER_FLAG_S

#define DTLS13_HEADER_FLAG_S   0x08

Definition at line 48 of file dtls13_misc.h.

◆ DTLS13_HEADER_MASK

#define DTLS13_HEADER_MASK   0xE0

Definition at line 45 of file dtls13_misc.h.

◆ DTLS13_MAX_ACK_RECORDS

#define DTLS13_MAX_ACK_RECORDS   32

Definition at line 39 of file dtls13_misc.h.

Function Documentation

◆ dtls13ComputeEncryptionOverhead()

size_t dtls13ComputeEncryptionOverhead ( TlsEncryptionEngine encryptionEngine)

Compute overhead caused by encryption.

Parameters
[in]encryptionEnginePointer to the encryption engine
Returns
Overhead, in bytes, caused by encryption

Definition at line 416 of file dtls13_misc.c.

◆ dtls13FormatAck()

error_t dtls13FormatAck ( TlsContext context,
Dtls13Ack message,
size_t *  length 
)

Format ACK message.

Parameters
[in]contextPointer to the TLS context
[out]messageBuffer where to format the ACK message
[out]lengthLength of the resulting ACK message
Returns
Error code

Definition at line 190 of file dtls13_misc.c.

◆ dtls13FormatNonce()

void dtls13FormatNonce ( TlsEncryptionEngine encryptionEngine,
const DtlsSequenceNumber seqNum,
uint8_t *  nonce,
size_t *  nonceLen 
)

Format nonce.

Parameters
[in]encryptionEnginePointer to the encryption engine
[in]seqNumPointer to the sequence number
[out]noncePointer to the buffer where to store the resulting nonce
[out]nonceLenLength of the nonce, in bytes

Definition at line 381 of file dtls13_misc.c.

◆ dtls13ParseAck()

error_t dtls13ParseAck ( TlsContext context,
const Dtls13Ack message,
size_t  length 
)

Parse ACK message.

Parameters
[in]contextPointer to the TLS context
[in]messageIncoming ACK message to parse
[in]lengthMessage length
Returns
Error code

Definition at line 257 of file dtls13_misc.c.

◆ dtls13SaveRecordNumber()

void dtls13SaveRecordNumber ( TlsContext context,
uint64_t  epoch,
uint64_t  seqNum 
)

Update the list of record numbers.

Parameters
[in]contextPointer to the TLS context
[in]epochEpoch number of the received DTLS record
[in]seqNumSequence number of the received DTLS record

Definition at line 53 of file dtls13_misc.c.

◆ dtls13SendAck()

error_t dtls13SendAck ( TlsContext context)

Send ACK message.

The ACK message is used by an endpoint to indicate which handshake records it has received and processed from the other side

Parameters
[in]contextPointer to the TLS context
Returns
Error code

Definition at line 117 of file dtls13_misc.c.

Variable Documentation

◆ __packed_struct

typedef __packed_struct
Initial value:
{
uint64_t epoch

Record number.

ACK message.

Definition at line 69 of file dtls13_misc.h.

◆ Dtls13Ack

Dtls13Ack

Definition at line 84 of file dtls13_misc.h.

◆ Dtls13RecordNumber

Dtls13RecordNumber

Definition at line 73 of file dtls13_misc.h.

◆ recordNumbers

Dtls13RecordNumber recordNumbers[]

Definition at line 83 of file dtls13_misc.h.

◆ seqNum

uint64_t seqNum

Definition at line 72 of file dtls13_misc.h.

uint16_t epoch
Definition: dtls_misc.h:181