Skip to content

Generalise internals of handshake APIs over their transport - #3224

Open
ctz wants to merge 6 commits into
mainfrom
jbp-quic-generic
Open

ctz wants to merge 6 commits into
mainfrom
jbp-quic-generic

Conversation

@ctz

@ctz ctz commented Aug 24, 2026

Copy link
Copy Markdown
Member

This de-duplicates the internals of TCP/QUIC handshake types. Currently it's on top of #3218 but a different order would work.

@rustls-benchmarking

rustls-benchmarking Bot commented Aug 24, 2026

Copy link
Copy Markdown

Benchmark results

Instruction counts

Significant differences

There are no significant instruction count differences

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 10980906 10925224 -55682 (-0.51%) 1.19%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 42181077 42099059 -82018 (-0.19%) 0.23%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10435974 10418705 -17269 (-0.17%) 0.74%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 42469655 42531042 61387 (0.14%) 0.22%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 10939838 10926671 -13167 (-0.12%) 1.09%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 37015837 36978987 -36850 (-0.10%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 8792771 8784456 -8315 (-0.09%) 0.82%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 42497933 42460692 -37241 (-0.09%) 0.28%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 42119606 42156132 36526 (0.09%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 42483814 42518559 34745 (0.08%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 38446516 38477156 30640 (0.08%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3265022 3262896 -2126 (-0.07%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 3551546 3549613 -1933 (-0.05%) 0.49%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 36999566 37017893 18327 (0.05%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 8791418 8795766 4348 (0.05%) 0.82%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 38449666 38431160 -18506 (-0.05%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 42132018 42151000 18982 (0.05%) 0.21%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 38440976 38457914 16938 (0.04%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 42112405 42098047 -14358 (-0.03%) 0.26%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 36989358 37001940 12582 (0.03%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 38460065 38471345 11280 (0.03%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 42505486 42516171 10685 (0.03%) 0.22%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 42472094 42481154 9060 (0.02%) 0.28%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 36994715 36987522 -7193 (-0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 2377158 2377614 456 (0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 3555349 3555955 606 (0.02%) 0.37%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 42129010 42123144 -5866 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2273790 2274096 306 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 38457835 38462411 4576 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 38460048 38455813 -4235 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1346150 1346039 -111 (-0.01%) 0.63%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 42131407 42134562 3155 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 2384722 2384860 138 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1349262 1349331 69 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 42470134 42468710 -1424 (-0.00%) 0.31%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 36992889 36993877 988 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3263923 3264003 80 (0.00%) 0.24%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2270013 2269963 -50 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 36998649 36998354 -295 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1679546 1679554 8 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1230412 1230417 5 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1231585 1231590 5 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 47256650 47256487 -163 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 81703195 81703416 221 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11058586 11058586 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 47042541 47042541 0 (0.00%) 0.20%
handshake_tickets_1.3_no_crypto_server 1694495 1694495 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 31551216 31551216 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 70365684 70365684 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 31649650 31649650 0 (0.00%) 0.20%
handshake_session_id_1.2_no_crypto_client 890896 890896 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 47299265 47299265 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 30289225 30289225 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 81703195 81703195 0 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_client 2165809 2165809 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 30361744 30361744 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 31546450 31546450 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30183636 30183636 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 81778679 81778679 0 (0.00%) 0.20%
handshake_no_resume_1.2_no_crypto_server 35758 35758 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 79781585 79781585 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7178951 7178951 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 35286484 35286484 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 31555432 31555432 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 31382604 31382604 0 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 10899290 10899290 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7180893 7180893 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 31263069 31263069 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3620429 3620429 0 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 47094818 47094818 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 47056795 47056795 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2299481 2299481 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 81687581 81687581 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 3619097 3619097 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 47255727 47255727 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 45418156 45418156 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 3570296 3570296 0 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 45526240 45526240 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30275669 30275669 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_client 2293831 2293831 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3500887 3500887 0 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 4571293 4571293 0 (0.00%) 1.02%
handshake_tickets_ring_1.3_rsa_aes_client 30371472 30371472 0 (0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_client 3191200 3191200 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 35204658 35204658 0 (0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_client 106227619 106227619 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 31265928 31265928 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 45418185 45418185 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 31654559 31654559 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 79781644 79781644 0 (0.00%) 0.20%
handshake_session_id_1.2_no_crypto_server 770859 770859 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 47056795 47056795 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11064336 11064336 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34704600 34704600 0 (0.00%) 0.20%
handshake_tickets_1.2_no_crypto_client 959136 959136 0 (0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_server 104447396 104447396 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 70365273 70365273 0 (0.00%) 0.20%
handshake_no_resume_1.3_no_crypto_client 63478 63478 0 (0.00%) 0.20%
handshake_session_id_1.3_no_crypto_server 1726840 1726840 0 (0.00%) 0.20%
handshake_tickets_1.3_no_crypto_client 1917467 1917467 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 30288158 30288158 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 70365684 70365684 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34706309 34706309 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 30299922 30299922 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 79781556 79781556 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 31653752 31653752 0 (0.00%) 0.20%
handshake_tickets_1.2_no_crypto_server 908185 908185 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30193634 30193634 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 35286484 35286484 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 45418244 45418244 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 47230179 47230179 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 31260324 31260324 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 35286242 35286242 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 31385349 31385349 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30184649 30184649 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 81776447 81776447 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30284624 30284624 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 30360827 30360827 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 31388208 31388208 0 (0.00%) 0.20%
handshake_session_id_1.3_no_crypto_client 1909942 1909942 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 81776527 81776527 0 (0.00%) 0.20%
handshake_no_resume_1.3_no_crypto_server 55081 55081 0 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 3998878 3998878 0 (0.00%) 0.20%
handshake_no_resume_1.2_no_crypto_client 53780 53780 0 (0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_server 104438008 104438008 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30274656 30274656 0 (0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_client 106259840 106259840 0 (0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 3059637 3059637 0 (0.00%) 0.20%

Wall-time

Significant differences

There are no significant wall-time differences

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_1.2_no_crypto 47.37 µs 46.57 µs -0.79 µs (-1.68%) 9.14%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 3.94 ms 3.89 ms -0.05 ms (-1.39%) 4.67%
transfer_no_resume_ring_1.3_ecdsap256_aes 4.97 ms 4.91 ms -0.06 ms (-1.27%) 4.73%
handshake_session_id_1.3_no_crypto 519.90 µs 513.58 µs -6.32 µs (-1.22%) 3.91%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 4.58 ms 4.52 ms -0.05 ms (-1.20%) 3.77%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 4.62 ms 4.56 ms -0.05 ms (-1.17%) 3.94%
handshake_no_resume_1.3_no_crypto 44.22 µs 43.73 µs -0.50 µs (-1.12%) 9.29%
transfer_no_resume_ring_1.3_rsa_aes 5.45 ms 5.39 ms -0.06 ms (-1.03%) 4.35%
handshake_tickets_1.3_no_crypto 505.01 µs 500.39 µs -4.62 µs (-0.92%) 3.97%
transfer_no_resume_ring_1.2_rsa_aes 5.42 ms 5.37 ms -0.05 ms (-0.89%) 3.01%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 4.43 ms 4.40 ms -0.04 ms (-0.87%) 3.31%
handshake_no_resume_ring_1.3_ecdsap256_chacha 416.23 µs 412.87 µs -3.36 µs (-0.81%) 1.78%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 6.90 ms 6.85 ms -0.05 ms (-0.74%) 1.35%
transfer_no_resume_ring_1.3_ecdsap384_aes 8.06 ms 8.00 ms -0.06 ms (-0.74%) 2.95%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 6.26 ms 6.22 ms -0.05 ms (-0.72%) 2.14%
transfer_no_resume_1.3_no_crypto 11.49 ms 11.41 ms -0.08 ms (-0.70%) 2.41%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 6.22 ms 6.17 ms -0.04 ms (-0.69%) 1.70%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 6.90 ms 6.85 ms -0.05 ms (-0.65%) 1.18%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 7.13 ms 7.08 ms -0.04 ms (-0.62%) 1.73%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 6.88 ms 6.84 ms -0.04 ms (-0.62%) 1.79%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 6.91 ms 6.87 ms -0.04 ms (-0.61%) 1.84%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 7.10 ms 7.06 ms -0.04 ms (-0.61%) 1.53%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 463.90 µs 461.13 µs -2.77 µs (-0.60%) 2.25%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 6.46 ms 6.42 ms -0.04 ms (-0.59%) 1.88%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 7.10 ms 7.06 ms -0.04 ms (-0.59%) 1.59%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 6.43 ms 6.39 ms -0.04 ms (-0.58%) 1.55%
handshake_session_id_1.2_no_crypto 270.51 µs 268.99 µs -1.52 µs (-0.56%) 5.14%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 7.10 ms 7.06 ms -0.04 ms (-0.56%) 1.65%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.54 ms 12.47 ms -0.07 ms (-0.52%) 2.00%
transfer_no_resume_ring_1.3_rsa_chacha 13.03 ms 12.96 ms -0.07 ms (-0.50%) 1.78%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.22 ms 13.16 ms -0.06 ms (-0.49%) 1.83%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.13 ms 1.13 ms -0.01 ms (-0.46%) 1.77%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 479.95 µs 477.73 µs -2.22 µs (-0.46%) 2.41%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 12.57 ms 12.52 ms -0.06 ms (-0.45%) 1.60%
handshake_tickets_ring_1.3_ecdsap256_aes 5.33 ms 5.31 ms -0.02 ms (-0.44%) 1.11%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.24 ms 13.18 ms -0.06 ms (-0.43%) 1.52%
handshake_tickets_ring_1.3_rsa_aes 5.81 ms 5.79 ms -0.02 ms (-0.43%) 1.15%
handshake_no_resume_ring_1.3_ecdsap256_aes 424.52 µs 422.76 µs -1.76 µs (-0.41%) 1.81%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.29 ms 5.27 ms -0.02 ms (-0.41%) 1.03%
transfer_no_resume_ring_1.3_ecdsap384_chacha 15.64 ms 15.57 ms -0.06 ms (-0.41%) 1.57%
transfer_no_resume_1.2_no_crypto 11.30 ms 11.25 ms -0.04 ms (-0.39%) 2.10%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.66 ms 1.65 ms -0.01 ms (-0.38%) 1.94%
handshake_tickets_ring_1.3_rsa_chacha 5.78 ms 5.76 ms -0.02 ms (-0.36%) 1.00%
handshake_tickets_1.2_no_crypto 295.38 µs 294.43 µs -0.95 µs (-0.32%) 4.72%
handshake_session_id_ring_1.3_rsa_aes 5.75 ms 5.73 ms -0.02 ms (-0.31%) 1.15%
handshake_session_id_ring_1.3_rsa_chacha 5.72 ms 5.70 ms -0.02 ms (-0.31%) 1.07%
handshake_session_id_ring_1.3_ecdsap256_aes 5.27 ms 5.26 ms -0.02 ms (-0.30%) 1.03%
handshake_tickets_ring_1.2_rsa_aes 1.42 ms 1.41 ms -0.00 ms (-0.29%) 1.10%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.23 ms 5.21 ms -0.02 ms (-0.29%) 1.03%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.16 ms 1.16 ms -0.00 ms (-0.27%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.14 ms 1.14 ms -0.00 ms (-0.25%) 1.18%
handshake_no_resume_ring_1.3_rsa_chacha 899.72 µs 897.63 µs -2.09 µs (-0.23%) 1.00%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.52 ms 1.52 ms -0.00 ms (-0.23%) 2.42%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.11 ms 1.11 ms -0.00 ms (-0.22%) 3.36%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.33 ms 8.31 ms -0.02 ms (-0.21%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.38 ms 8.37 ms -0.02 ms (-0.20%) 1.00%
handshake_no_resume_ring_1.2_rsa_aes 905.72 µs 904.01 µs -1.71 µs (-0.19%) 1.00%
handshake_session_id_ring_1.2_rsa_aes 1.34 ms 1.34 ms -0.00 ms (-0.19%) 1.28%
handshake_no_resume_ring_1.3_rsa_aes 904.64 µs 903.07 µs -1.57 µs (-0.17%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_aes 8.42 ms 8.40 ms -0.01 ms (-0.16%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_aes 8.36 ms 8.35 ms -0.01 ms (-0.13%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.51 ms 3.51 ms 0.00 ms (0.08%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.52 ms 3.52 ms 0.00 ms (0.05%) 1.00%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.03 ms 1.03 ms -0.00 ms (-0.00%) 3.29%

Memory usage

Key:

  • ∑: sum usage for entire benchmark run
  • 🔝: peak usage
  • B: bytes
  • a: allocations

Significant differences

There are no significant memory usage differences

Additional information

Historical results

Checkout details:

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.13043% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.45%. Comparing base (2327244) to head (e2d44ba).

Files with missing lines Patch % Lines
rustls/src/conn/handshake.rs 99.09% 1 Missing ⚠️
rustls/src/quic.rs 98.70% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3224      +/-   ##
==========================================
+ Coverage   95.44%   95.45%   +0.01%     
==========================================
  Files          99      100       +1     
  Lines       23716    23765      +49     
  Branches      684      683       -1     
==========================================
+ Hits        22635    22685      +50     
+ Misses        925      924       -1     
  Partials      156      156              

☔ View full report in Codecov by Harness.
📢 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.

@ctz
ctz force-pushed the jbp-ext-server-cert-verify branch from e933abc to e7dff55 Compare August 26, 2026 08:07
@ctz
ctz force-pushed the jbp-quic-generic branch from d2b352b to 60f5039 Compare August 26, 2026 08:19
@ctz
ctz force-pushed the jbp-ext-server-cert-verify branch from e7dff55 to 2f93805 Compare August 26, 2026 10:49
@ctz
ctz force-pushed the jbp-quic-generic branch from 60f5039 to 25276ad Compare August 26, 2026 11:09

@djc djc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you think this could be split into smaller commits? The current version is pretty hard to review IMO.

Comment thread rustls/src/conn/handshake.rs Outdated
@ctz
ctz force-pushed the jbp-ext-server-cert-verify branch 2 times, most recently from 4a04523 to abafe21 Compare September 2, 2026 14:18
@ctz
ctz force-pushed the jbp-quic-generic branch 2 times, most recently from 62182e0 to 2285d27 Compare September 2, 2026 15:45
@ctz

ctz commented Sep 2, 2026

Copy link
Copy Markdown
Member Author

Do you think this could be split into smaller commits? The current version is pretty hard to review IMO.

I have tried this.

@djc djc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Here's some feedback on the first more substantive commit of the branch.

I think this is generally the right direction and I think it might be neat to end up with an API where we expose Connection<ClientSide, Tcp> to downstreams. I was thinking we might also attach things like whether a fake CCS needs to be emitted to the Transport trait (or private supertrait of it).

Actually, I was wondering if some sort of high-level state becomes another parameter to Connection such that we can distinguish Connection<ClientSide, Tcp, Traffic> from Connection<ClientSide, Udp, Handshaking> (or maybe that becomes more like Connection<S, T> and Handshaking<S, T>), and a way to distinguish between the phased handshake approach and the monolithic handshake API.

Comment thread rustls/src/quic.rs Outdated
Comment thread rustls/src/conn/handshake.rs Outdated
Comment thread rustls/src/quic.rs
@ctz
ctz force-pushed the jbp-ext-server-cert-verify branch from abafe21 to 35c67a0 Compare September 7, 2026 12:42
@ctz
ctz force-pushed the jbp-quic-generic branch from 2285d27 to ebd5d38 Compare September 7, 2026 15:57
@ctz
ctz force-pushed the jbp-ext-server-cert-verify branch 3 times, most recently from 5b7cdad to c5ce179 Compare September 15, 2026 15:08
@ctz
ctz removed this pull request from stack #3226 September 15, 2026 15:12
@ctz
ctz force-pushed the jbp-ext-server-cert-verify branch from c5ce179 to 69a9842 Compare September 15, 2026 15:17
Base automatically changed from jbp-ext-server-cert-verify to main September 15, 2026 15:35
@ctz
ctz force-pushed the jbp-quic-generic branch 2 times, most recently from 7bb74cd to 1aa5755 Compare September 15, 2026 16:10
ctz added 6 commits September 16, 2026 12:45
This introduces `conn::handshake`, which will hold the transport-generic
version of each handshake type, parameterised by the new `Transport`
trait: `Tcp` writes TLS records into a caller-supplied buffer, `Quic`
emits `QuicEvent`s instead.
`ServerNext` and `ClientNext` name the states a handshake can be in for
any transport, so each public `TryFrom` impl becomes a mapping from those
onto its own transport's handshake enum.
@ctz

ctz commented Sep 16, 2026

Copy link
Copy Markdown
Member Author

This is ready for a second look now.

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.

2 participants