Skip to content

feat: expose the number of received TLS1.3 resumption tickets #2476

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 2, 2025

Conversation

Frando
Copy link
Contributor

@Frando Frando commented May 30, 2025

This adds a public function to get the count of TLS1.3 resumption tickets that were received in a client-side rustls session.

Currently, this information is not available outside of the session store. Downstream users may want to access this, though, to keep a connection open until tickets are received. When doing a 0RTT connection, it may happen that the application-side logic is done before the tickets are received. In that case, if expecting to do further 0rtt connections in the future, it may be beneficial to keep the connection open until the tickets are received. With this patch, this is possible without having to wrap or hack around the session store.

Copy link

codecov bot commented May 30, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.33%. Comparing base (ca468df) to head (5475803).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2476   +/-   ##
=======================================
  Coverage   95.33%   95.33%           
=======================================
  Files          97       97           
  Lines       21504    21518   +14     
=======================================
+ Hits        20500    20514   +14     
  Misses       1004     1004           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Member

@djc djc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems reasonable to me, thanks!

Copy link

rustls-benchmarking bot commented May 30, 2025

Benchmark results

Instruction counts

Significant differences

⚠️ There are significant instruction count differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 3593660 3580110 -13550 (-0.38%) 0.20%

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10468595 10434997 -33598 (-0.32%) 1.10%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 11555365 11589615 34250 (0.30%) 1.32%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 9949705 9932884 -16821 (-0.17%) 0.60%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 11579349 11567173 -12176 (-0.11%) 1.27%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3305531 3303515 -2016 (-0.06%) 0.27%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 78716569 78677241 -39328 (-0.05%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 78680139 78716603 36464 (0.05%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 9970347 9974583 4236 (0.04%) 0.94%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 56569984 56549005 -20979 (-0.04%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 4298386 4299856 1470 (0.03%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 4757724 4759194 1470 (0.03%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 78697070 78719885 22815 (0.03%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_client 4306090 4307320 1230 (0.03%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 4747948 4749269 1321 (0.03%) 0.37%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 56560112 56575685 15573 (0.03%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 4569708 4570938 1230 (0.03%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2904705 2905447 742 (0.03%) 0.84%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 78453493 78471537 18044 (0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 78508415 78524822 16407 (0.02%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 78720304 78736192 15888 (0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3867861 3868611 750 (0.02%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 56587917 56598097 10180 (0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 2003929 2003570 -359 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 78423717 78437664 13947 (0.02%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 5012380 5013130 750 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 55212040 55219856 7816 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3876271 3876781 510 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4218366 4218876 510 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 4750249 4750807 558 (0.01%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58229015 58235447 6432 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 2000997 2001207 210 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 55299896 55305657 5761 (0.01%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 58117365 58123163 5798 (0.01%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58124573 58130365 5792 (0.01%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58148970 58154764 5794 (0.01%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58226784 58232574 5790 (0.01%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58251617 58257404 5787 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 56609359 56614734 5375 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 78499688 78507074 7386 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 55208980 55213399 4419 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2907744 2907959 215 (0.01%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92653697 92659490 5793 (0.01%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92693661 92699453 5792 (0.01%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92685297 92691081 5784 (0.01%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92717530 92723314 5784 (0.01%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92691436 92697217 5781 (0.01%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92662831 92668601 5770 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 78710202 78714375 4173 (0.01%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30834925 30836399 1474 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30837854 30839324 1470 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30841908 30843378 1470 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30926215 30927689 1474 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30929144 30930614 1470 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30933198 30934668 1470 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 78665468 78669205 3737 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 31153199 31154675 1476 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 31224449 31225925 1476 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 31156538 31158008 1470 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 31160526 31161996 1470 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 31227809 31229279 1470 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 31231797 31233267 1470 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 55283890 55286245 2355 (0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 3587376 3587232 -144 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3304234 3304366 132 (0.00%) 0.23%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 78443261 78445716 2455 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 78504951 78507370 2419 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 55295187 55293716 -1471 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1296416 1296449 33 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 55215553 55214281 -1272 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1295244 1295267 23 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_client 2246478 2246505 27 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 56602807 56602152 -655 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 31988230 31988590 360 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 31991282 31991642 360 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 31991415 31991775 360 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 32109880 32110240 360 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 32112932 32113292 360 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 32113065 32113425 360 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 32448693 32449053 360 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 32451460 32451820 360 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 32451502 32451862 360 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 32553370 32553730 360 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 32550648 32550963 315 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 32553457 32553772 315 (0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1719942 1719926 -16 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 56554172 56553738 -434 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_client 2334246 2334262 16 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2339895 2339911 16 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7220963 7220988 25 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11127905 11127928 23 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11133666 11133689 23 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34738052 34738006 -46 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7222930 7222937 7 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 58035393 58035426 33 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58157301 58157332 31 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 46189285 46189296 11 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34736318 34736322 4 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46289085 46289090 5 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 10999871 10999872 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80643604 80643597 -7 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46284265 46284262 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80533870 80533865 -5 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80637660 80637655 -5 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80543188 80543184 -4 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46397766 46397765 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46448256 46448255 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46459277 46459278 1 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80538690 80538689 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46452704 46452704 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80632581 80632581 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 46294219 46294219 0 (0.00%) 0.20%

Wall-time

Significant differences

⚠️ There are significant wall-time differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.33 ms 1.28 ms ✅ -0.05 ms (-3.73%) 1.13%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.09 ms 1.05 ms ✅ -0.04 ms (-3.58%) 1.85%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.32 ms 1.28 ms ✅ -0.05 ms (-3.45%) 1.95%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 11.27 ms 11.04 ms ✅ -0.22 ms (-1.98%) 1.00%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 11.45 ms 11.23 ms ✅ -0.22 ms (-1.91%) 1.08%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 11.49 ms 11.27 ms ✅ -0.22 ms (-1.89%) 1.14%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 11.31 ms 11.10 ms ✅ -0.21 ms (-1.87%) 1.13%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 10.58 ms 10.39 ms ✅ -0.19 ms (-1.80%) 1.21%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 10.77 ms 10.58 ms ✅ -0.18 ms (-1.71%) 1.47%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 10.81 ms 10.63 ms ✅ -0.18 ms (-1.69%) 1.38%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 11.25 ms 11.06 ms ✅ -0.19 ms (-1.67%) 1.15%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 10.61 ms 10.44 ms ✅ -0.17 ms (-1.63%) 1.23%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 11.50 ms 11.32 ms ✅ -0.18 ms (-1.53%) 1.13%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 11.44 ms 11.27 ms ✅ -0.17 ms (-1.51%) 1.00%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 11.30 ms 11.13 ms ✅ -0.17 ms (-1.49%) 1.09%

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.82 ms 1.77 ms -0.05 ms (-2.59%) 3.02%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.65 ms 1.61 ms -0.04 ms (-2.41%) 2.73%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.12 ms 5.01 ms -0.11 ms (-2.20%) 5.99%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.39 ms 5.28 ms -0.11 ms (-2.07%) 6.24%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 655.05 µs 643.02 µs -12.04 µs (-1.84%) 3.07%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.73 ms 4.64 ms -0.09 ms (-1.81%) 7.16%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 655.85 µs 644.24 µs -11.61 µs (-1.77%) 3.77%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.42 ms 5.34 ms -0.08 ms (-1.50%) 5.84%
transfer_no_resume_ring_1.3_ecdsap256_aes 5.41 ms 5.33 ms -0.08 ms (-1.44%) 5.36%
transfer_no_resume_ring_1.3_rsa_aes 5.90 ms 5.82 ms -0.08 ms (-1.28%) 5.07%
transfer_no_resume_ring_1.2_rsa_aes 5.86 ms 5.79 ms -0.07 ms (-1.18%) 5.38%
transfer_no_resume_ring_1.3_ecdsap384_aes 8.52 ms 8.43 ms -0.08 ms (-0.99%) 3.38%
handshake_no_resume_ring_1.3_ecdsap256_aes 466.10 µs 461.69 µs -4.41 µs (-0.95%) 3.99%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.86 ms 13.74 ms -0.12 ms (-0.86%) 2.13%
handshake_no_resume_ring_1.3_ecdsap256_chacha 463.73 µs 459.90 µs -3.83 µs (-0.82%) 3.73%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.34 ms 1.33 ms -0.01 ms (-0.79%) 1.56%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 13.19 ms 13.09 ms -0.09 ms (-0.72%) 2.37%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.87 ms 13.78 ms -0.09 ms (-0.67%) 2.08%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.33 ms 1.32 ms -0.01 ms (-0.66%) 1.59%
transfer_no_resume_ring_1.3_rsa_chacha 13.47 ms 13.39 ms -0.08 ms (-0.56%) 2.34%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.97 ms 12.90 ms -0.07 ms (-0.55%) 2.18%
handshake_no_resume_ring_1.2_rsa_aes 952.95 µs 947.78 µs -5.17 µs (-0.54%) 1.14%
transfer_no_resume_ring_1.3_ecdsap384_chacha 16.08 ms 16.00 ms -0.07 ms (-0.45%) 1.69%
handshake_no_resume_ring_1.3_rsa_aes 956.37 µs 952.36 µs -4.01 µs (-0.42%) 1.59%
handshake_no_resume_ring_1.3_rsa_chacha 955.46 µs 951.47 µs -3.99 µs (-0.42%) 1.66%
handshake_session_id_ring_1.3_rsa_aes 6.01 ms 6.03 ms 0.02 ms (0.29%) 1.13%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.50 ms 5.49 ms -0.01 ms (-0.21%) 1.01%
handshake_tickets_ring_1.2_rsa_aes 1.60 ms 1.59 ms -0.00 ms (-0.18%) 1.66%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.57 ms 3.56 ms -0.01 ms (-0.16%) 1.00%
handshake_session_id_ring_1.2_rsa_aes 1.51 ms 1.51 ms 0.00 ms (0.13%) 1.23%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.56 ms 3.56 ms -0.00 ms (-0.12%) 1.00%
handshake_tickets_ring_1.3_rsa_aes 6.07 ms 6.07 ms 0.01 ms (0.10%) 1.04%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.55 ms 5.54 ms -0.00 ms (-0.08%) 1.27%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.59 ms 8.58 ms -0.00 ms (-0.06%) 1.00%
handshake_tickets_ring_1.3_rsa_chacha 6.04 ms 6.04 ms 0.00 ms (0.04%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_aes 5.58 ms 5.58 ms 0.00 ms (0.03%) 1.00%
handshake_session_id_ring_1.3_rsa_chacha 5.98 ms 5.98 ms -0.00 ms (-0.03%) 1.16%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.64 ms 8.64 ms -0.00 ms (-0.02%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_aes 8.67 ms 8.67 ms -0.00 ms (-0.02%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_aes 8.61 ms 8.61 ms 0.00 ms (0.01%) 1.00%
handshake_session_id_ring_1.3_ecdsap256_aes 5.52 ms 5.52 ms -0.00 ms (-0.00%) 1.32%

Additional information

Historical results

Checkout details:

@djc
Copy link
Member

djc commented May 30, 2025

(Please squash your commits.)

@Frando Frando force-pushed the feat/tls13-ticket-count branch from 412a054 to 0d8fd4d Compare May 30, 2025 11:47
Copy link
Member

@cpu cpu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@Frando Frando force-pushed the feat/tls13-ticket-count branch from 0d8fd4d to 2dfeb64 Compare May 30, 2025 21:34
@Frando Frando changed the title feat: expose the number of received TLS13 resumption tickets feat: expose the number of received TLS1.3 resumption tickets May 30, 2025
This adds a public function to get the count of TLS1.3 resumption
tickets that were received in a client-side rustls session.

Before, this information was not available outside of the session store.
Downstream users may want to access this, though, to keep a connection
open until tickets are received. When doing a 0RTT connection, it may
happen that the application-side logic is done before the tickets are
received. In that case, if expecting to do further 0rtt connections in
the future, it may be beneficial to keep the connection open until the
tickets are received. With this patch, this is possible without having
to wrap or hack around the session store.
@Frando Frando force-pushed the feat/tls13-ticket-count branch from 2dfeb64 to 5475803 Compare May 30, 2025 21:36
Copy link
Member

@ctz ctz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Just a note on the use case -- there's no guarantee that a server will send tickets, nor when it will do so. So be cautious keeping a connection up indefinitely waiting for this to happen. But using this API to keep the connection open an extra few RTTs seems like a good idea.

@ctz ctz added this pull request to the merge queue Jun 2, 2025
Merged via the queue into rustls:main with commit 01f14c1 Jun 2, 2025
34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants