feat(quic): implement 0-RTT session ticket storage and restoration#419
Merged
Conversation
Add session ticket management for QUIC 0-RTT connection resumption: - Add session_ticket_store class for storing/retrieving session tickets - Add session_ticket_info structure with ticket metadata and validation - Add replay_filter for anti-replay protection on 0-RTT data - Add 0-RTT key derivation methods to quic_crypto - Add session ticket callback to receive NewSessionTicket messages - Add early data callbacks to messaging_quic_client - Add max_early_data_size configuration option - Add comprehensive unit tests for session ticket management Implements RFC 9001 Section 4.6 session resumption support. Closes #402
Add changelog entries for QUIC 0-RTT session ticket storage implementation in both English and Korean versions.
Contributor
Performance ComparisonBase Branch ResultsNo base results PR Branch ResultsNo PR results |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #419 +/- ##
==========================================
+ Coverage 32.94% 33.19% +0.24%
==========================================
Files 39 39
Lines 2841 2841
==========================================
+ Hits 936 943 +7
+ Misses 1905 1898 -7
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
kcenon
added a commit
that referenced
this pull request
Apr 13, 2026
) * feat(quic): implement 0-RTT session ticket storage and restoration Add session ticket management for QUIC 0-RTT connection resumption: - Add session_ticket_store class for storing/retrieving session tickets - Add session_ticket_info structure with ticket metadata and validation - Add replay_filter for anti-replay protection on 0-RTT data - Add 0-RTT key derivation methods to quic_crypto - Add session ticket callback to receive NewSessionTicket messages - Add early data callbacks to messaging_quic_client - Add max_early_data_size configuration option - Add comprehensive unit tests for session ticket management Implements RFC 9001 Section 4.6 session resumption support. Closes #402 * docs: update changelogs for 0-RTT session ticket feature Add changelog entries for QUIC 0-RTT session ticket storage implementation in both English and Korean versions.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
session_ticket_storeclass for managing session tickets per server endpointreplay_filterclass for anti-replay protection on 0-RTT early dataquic_cryptomessaging_quic_clientChanges
New Files
include/kcenon/network/protocols/quic/session_ticket_store.h- Session ticket storage and replay filtersrc/protocols/quic/session_ticket_store.cpp- Implementationtests/test_quic_session_ticket.cpp- Unit tests (20+ tests)Modified Files
include/kcenon/network/protocols/quic/crypto.h- Add 0-RTT methodssrc/protocols/quic/crypto.cpp- Implement 0-RTT key derivationinclude/kcenon/network/core/messaging_quic_client.h- Add early data callbackssrc/core/messaging_quic_client.cpp- Implement callbacksCMakeLists.txt- Add new source filetests/CMakeLists.txt- Add new testCHANGELOG.md,CHANGELOG_KO.md- Document changesFeatures
session_ticket_store
session_ticket_info
replay_filter
quic_crypto 0-RTT Methods
set_session_ticket_callback()- Receive NewSessionTicket messagesset_session_ticket()- Set ticket for resumptionenable_early_data()- Enable 0-RTT dataderive_zero_rtt_keys()- Derive 0-RTT encryption keyshas_zero_rtt_keys()/is_early_data_accepted()- Status queriesmessaging_quic_client Callbacks
set_session_ticket_callback()- Store tickets for future useset_early_data_callback()- Produce early dataset_early_data_accepted_callback()- Know if server acceptedis_early_data_accepted()- Query acceptance statusmax_early_data_sizeconfig optionTest plan
network_quic_session_ticket_test- Unit tests for session ticket storagenetwork_quic_crypto_test- Existing crypto tests still passCloses #402