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.