Skip to main content
Version: 0.2.1

DTLS 1.3 RFC 9147 conformance

This page summarizes NoxTLS DTLS 1.3 alignment with RFC 9147. For API usage, see TLS component and DTLS API.

Implemented

RFC sectionTopicStatus
5.9HKDF dtls13 label prefixDone
5.3ClientHello (legacy_session_id, legacy_cookie)Done
4.2, 4.2.3Unified header (CID, S/L bits, length)Done
4.2.2Record number reconstruction for AEADDone
4.5.1Replay window per epochDone
4.2.1Benign plaintext epoch mismatch handlingDone
4.2.3Short-AEAD-tag padding (e.g. CCM_8)Done
5.2, 5.5Handshake reassembly and overlap checksDone
5.8.3ACK-aware retransmit (skip ACKed records)Done
4.3, 4.4MTU-aware handshake fragmentationDone
5.8.2, 9Connection ID request/response and rotation APIsDone
5.8.1Final-flight ACK retention and resendDone
5.8.1RTT-based retransmission timerDone
4.2.2, 4.5.3KeyUpdate read/write epoch trackingDone

Interop hardening (in progress)

  • Connection ID rotation under asymmetric third-party peers.
  • Duplicate final-flight and lossy-timer scenarios under packet loss.
  • KeyUpdate stress across epoch wrap.

Suggested regression matrix

After changing DTLS 1.3 code:

  1. cmake --build build && ctest --test-dir build --output-on-failure
  2. Manual OpenSSL 3 s_client / s_server with -dtls1_3 where available

Migration

DTLS 1.3 key schedule and ClientHello layout changed for RFC 9147. Older NoxTLS DTLS 1.3 peers are not interoperable with current builds without upgrading both ends.