Skip to content

Do not retain master secret during terminal key schedule state #2540

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 6 commits into from
Jul 9, 2025

Conversation

ctz
Copy link
Member

@ctz ctz commented Jul 2, 2025

This PR is a step toward #945, but for now arranges that the TLS1.3 "master secret" is erased in the terminal state. Doing that means that secrets derived from that are impossible to rederive later.

Unconditionally deriving the resumption secret has some performance consequences:

  • for clients connected to servers that won't offer resumption, it is wasted work.
  • for clients that receive several tickets, it is a saving for subsequent tickets.
  • for servers this doesn't alter anything (see the optimisation landed in 17518c3 previously)

Copy link

rustls-benchmarking bot commented Jul 2, 2025

Benchmark results

Instruction counts

Significant differences

⚠️ There are significant instruction count differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 64142779 63353778 -789001 (-1.23%) 0.69%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 64286351 63503632 -782719 (-1.22%) 0.70%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 64183130 63443234 -739896 (-1.15%) 0.62%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 64119797 63381067 -738730 (-1.15%) 0.25%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 64177407 63441032 -736375 (-1.15%) 0.60%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 64430657 6369252 -738132 (-1.15%) 0.58%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 64317535 63582742 -734793 (-1.14%) 0.64%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 64447383 63755274 -692109 (-1.07%) 0.69%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 64246041 63613576 -632465 (-0.98%) 0.58%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 64339291 63718931 -620360 (-0.96%) 0.50%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 64311784 63704994 -606790 (-0.94%) 0.82%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 30855864 30572092 -283772 (-0.92%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 30859972 30576204 -283768 (-0.92%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 30852545 30568853 -283692 (-0.92%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 30927519 30643747 -283772 (-0.92%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 30931627 30647859 -283768 (-0.92%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 30924155 30640463 -283692 (-0.92%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 64409214 63869935 -539279 (-0.84%) 0.68%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 3100115 3124586 ⚠️ 24471 (0.79%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 3106981 3129686 ⚠️ 22705 (0.73%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30536005 30318055 -217950 (-0.71%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30540127 30322177 -217950 (-0.71%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30533121 30315281 -217840 (-0.71%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30627685 30409735 -217950 (-0.71%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30631807 30413857 -217950 (-0.71%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30624771 30406931 -217840 (-0.71%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 4271458 4295979 ⚠️ 24521 (0.57%) 0.32%
handshake_no_resume_ring_1.3_rsa_aes_client 2325254 2333268 ⚠️ 8014 (0.34%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2330905 2338919 ⚠️ 8014 (0.34%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3295873 3306327 ⚠️ 10454 (0.32%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3299320 3307415 ⚠️ 8095 (0.25%) 0.23%

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10395422 10467369 71947 (0.69%) 1.00%
handshake_session_id_1.2_no_crypto_client 1154032 1161112 7080 (0.61%) 0.74%
handshake_tickets_1.2_no_crypto_client 1241714 1248794 7080 (0.57%) 1.92%
handshake_no_resume_1.3_no_crypto_client 111481 112111 630 (0.57%) 1.23%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 11356150 11293303 -62847 (-0.55%) 1.50%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 9470549 9518525 47976 (0.51%) 1.02%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 4274461 4296028 21567 (0.50%) 1.19%
handshake_session_id_1.2_no_crypto_server 1047471 1052661 5190 (0.50%) 0.62%
handshake_session_id_1.3_no_crypto_server 2100894 2111210 10316 (0.49%) 1.51%
handshake_tickets_1.3_no_crypto_server 2064924 2074583 9659 (0.47%) 1.54%
handshake_tickets_1.2_no_crypto_server 1207931 1212971 5040 (0.42%) 0.65%
handshake_no_resume_1.3_no_crypto_server 98037 98360 323 (0.33%) 0.92%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 9506089 9533124 27035 (0.28%) 0.94%
handshake_no_resume_1.2_no_crypto_server 74751 74920 169 (0.23%) 0.41%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3833267 3840347 7080 (0.18%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 49170751 49255354 84603 (0.17%) 0.47%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4165591 4172671 7080 (0.17%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_client 4240296 4247376 7080 (0.17%) 0.20%
handshake_session_id_1.3_no_crypto_client 2214002 2217512 3510 (0.16%) 1.81%
handshake_tickets_ring_1.2_rsa_aes_client 4493621 4500701 7080 (0.16%) 0.20%
handshake_tickets_1.3_no_crypto_client 2232548 2236058 3510 (0.16%) 1.80%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3752661 3757851 5190 (0.14%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 4160360 4165550 5190 (0.12%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 4614664 4619744 5080 (0.11%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 11314831 11326550 11719 (0.10%) 0.87%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 4886998 4892038 5040 (0.10%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 49105852 49155284 49432 (0.10%) 0.59%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 49147080 49190009 42929 (0.09%) 0.37%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 47795215 47755422 -39793 (-0.08%) 0.50%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 47924129 47886061 -38068 (-0.08%) 0.51%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 47896952 47932389 35437 (0.07%) 0.39%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 47876286 47859093 -17193 (-0.04%) 0.53%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 47796027 47779562 -16465 (-0.03%) 0.26%
handshake_session_id_ring_1.3_rsa_chacha_server 31507383 31517923 10540 (0.03%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 31629363 31639903 10540 (0.03%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 31510572 31521054 10482 (0.03%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 31632552 31643034 10482 (0.03%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 31510264 31520672 10408 (0.03%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 31632244 31642652 10408 (0.03%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1755906 1756471 565 (0.03%) 0.58%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 31967828 31977968 10140 (0.03%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 31967841 31977977 10136 (0.03%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 31965040 31975172 10132 (0.03%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 32070068 32080208 10140 (0.03%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 32070081 32080217 10136 (0.03%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 32067280 32077412 10132 (0.03%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 47820973 47806027 -14946 (-0.03%) 0.54%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 49153600 49138643 -14957 (-0.03%) 0.49%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1758516 1757987 -529 (-0.03%) 1.38%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 49106261 49092551 -13710 (-0.03%) 0.51%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1285058 1285381 323 (0.03%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1286254 1286555 301 (0.02%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34727962 34735983 8021 (0.02%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34729678 34737689 8011 (0.02%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46010590 46019298 8708 (0.02%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46003292 46011149 7857 (0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2664781 2664359 -422 (-0.02%) 0.27%
handshake_no_resume_1.2_no_crypto_client 98600 98615 15 (0.02%) 0.25%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 49199170 49206521 7351 (0.01%) 0.35%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58115022 58122326 7304 (0.01%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80245480 80254177 8697 (0.01%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80238178 80246028 7850 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2661154 2661390 236 (0.01%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92576460 92583762 7302 (0.01%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7208725 7209046 321 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7210684 7210998 314 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58120281 58122309 2028 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58110315 58112308 1993 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46176181 46174704 -1477 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11108604 11108927 323 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11114365 11114688 323 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46186560 46187611 1051 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92580435 92582467 2032 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92570473 92572474 2001 (0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1717594 1717628 34 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58003238 58004376 1138 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58006217 58007290 1073 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80356019 80354544 -1475 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 46013168 46012417 -751 (-0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 10987644 10987813 169 (0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_server 105032246 105030684 -1562 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80367038 80368085 1047 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92530597 92531732 1135 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92532300 92533368 1068 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 57901367 57900718 -649 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58057389 58056748 -641 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80249968 80249212 -756 (-0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_client 2243169 2243188 19 (0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_client 117295307 117294664 -643 (-0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_client 117342502 117341919 -583 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 57995387 57995662 275 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46176463 46176670 207 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92521466 92521741 275 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80356945 80357149 204 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 45917935 45917925 -10 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46124483 46124479 -4 (-0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_server 104985037 104985030 -7 (-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 79.54 µs 77.74 µs -1.80 µs (-2.26%) 9.70%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.24 ms 1.22 ms -0.02 ms (-1.64%) 7.45%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.08 ms 1.06 ms -0.02 ms (-1.61%) 8.62%
handshake_no_resume_1.3_no_crypto 88.56 µs 87.29 µs -1.27 µs (-1.43%) 11.32%
handshake_session_id_1.2_no_crypto 347.12 µs 342.84 µs -4.27 µs (-1.23%) 4.10%
transfer_no_resume_1.2_no_crypto 11.74 ms 11.88 ms 0.14 ms (1.16%) 2.04%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.60 ms 1.59 ms -0.02 ms (-1.13%) 6.45%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.25 ms 1.24 ms -0.01 ms (-0.95%) 9.16%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 9.36 ms 9.28 ms -0.08 ms (-0.81%) 1.56%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 9.32 ms 9.25 ms -0.07 ms (-0.77%) 1.02%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.76 ms 1.75 ms -0.01 ms (-0.73%) 5.68%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 8.68 ms 8.63 ms -0.05 ms (-0.63%) 1.00%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 8.64 ms 8.59 ms -0.05 ms (-0.61%) 1.18%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 9.19 ms 9.14 ms -0.05 ms (-0.57%) 1.47%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 9.32 ms 9.27 ms -0.05 ms (-0.54%) 1.05%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.28 ms 5.25 ms -0.03 ms (-0.54%) 3.63%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 9.36 ms 9.31 ms -0.05 ms (-0.53%) 1.00%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.07 ms 5.04 ms -0.02 ms (-0.49%) 3.48%
handshake_tickets_1.2_no_crypto 375.18 µs 373.37 µs -1.81 µs (-0.48%) 4.04%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 9.14 ms 9.10 ms -0.04 ms (-0.47%) 1.24%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 8.50 ms 8.46 ms -0.04 ms (-0.44%) 1.19%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 9.18 ms 9.14 ms -0.04 ms (-0.43%) 1.00%
handshake_no_resume_ring_1.3_ecdsap256_aes 462.91 µs 460.95 µs -1.96 µs (-0.42%) 2.44%
handshake_session_id_ring_1.2_rsa_aes 1.48 ms 1.47 ms -0.01 ms (-0.42%) 1.20%
handshake_tickets_ring_1.3_ecdsap256_aes 5.50 ms 5.48 ms -0.02 ms (-0.39%) 1.08%
handshake_tickets_ring_1.3_rsa_aes 5.99 ms 5.97 ms -0.02 ms (-0.38%) 1.00%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 8.45 ms 8.42 ms -0.03 ms (-0.38%) 1.00%
handshake_session_id_1.3_no_crypto 653.63 µs 656.05 µs 2.41 µs (0.37%) 5.16%
handshake_session_id_ring_1.3_rsa_chacha 5.90 ms 5.88 ms -0.02 ms (-0.36%) 1.08%
handshake_tickets_ring_1.3_rsa_chacha 5.96 ms 5.94 ms -0.02 ms (-0.36%) 1.00%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.41 ms 5.39 ms -0.02 ms (-0.36%) 1.35%
handshake_no_resume_ring_1.3_ecdsap256_chacha 459.35 µs 457.83 µs -1.52 µs (-0.33%) 2.64%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.30 ms 5.29 ms -0.02 ms (-0.30%) 3.27%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.75 ms 13.71 ms -0.04 ms (-0.28%) 1.26%
handshake_no_resume_ring_1.2_rsa_aes 945.00 µs 942.52 µs -2.48 µs (-0.26%) 1.00%
handshake_tickets_1.3_no_crypto 632.96 µs 634.63 µs 1.66 µs (0.26%) 4.29%
transfer_no_resume_1.3_no_crypto 11.80 ms 11.76 ms -0.03 ms (-0.26%) 3.11%
handshake_session_id_ring_1.3_rsa_aes 5.93 ms 5.92 ms -0.02 ms (-0.26%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.47 ms 5.45 ms -0.01 ms (-0.25%) 1.10%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.56 ms 8.54 ms -0.02 ms (-0.25%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.26 ms 1.26 ms -0.00 ms (-0.24%) 1.00%
handshake_session_id_ring_1.3_ecdsap256_aes 5.43 ms 5.42 ms -0.01 ms (-0.24%) 1.15%
transfer_no_resume_ring_1.3_ecdsap384_aes 8.47 ms 8.45 ms -0.02 ms (-0.22%) 2.42%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 9.11 ms 9.09 ms -0.02 ms (-0.21%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.50 ms 8.48 ms -0.02 ms (-0.20%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.27 ms 1.27 ms -0.00 ms (-0.19%) 1.10%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.61 ms 4.60 ms -0.01 ms (-0.19%) 4.36%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 584.20 µs 583.11 µs -1.09 µs (-0.19%) 2.45%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.76 ms 13.74 ms -0.02 ms (-0.18%) 1.15%
handshake_tickets_ring_1.2_rsa_aes 1.55 ms 1.55 ms -0.00 ms (-0.18%) 2.16%
handshake_tickets_ring_1.3_ecdsap384_aes 8.59 ms 8.58 ms -0.02 ms (-0.18%) 1.00%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 13.08 ms 13.06 ms -0.02 ms (-0.16%) 1.29%
transfer_no_resume_ring_1.3_ecdsap256_aes 5.37 ms 5.38 ms 0.01 ms (0.15%) 3.71%
transfer_no_resume_ring_1.2_rsa_aes 5.80 ms 5.79 ms -0.01 ms (-0.15%) 3.02%
transfer_no_resume_ring_1.3_rsa_chacha 13.42 ms 13.40 ms -0.02 ms (-0.15%) 1.36%
transfer_no_resume_ring_1.3_rsa_aes 5.86 ms 5.85 ms -0.01 ms (-0.14%) 3.80%
handshake_no_resume_ring_1.3_rsa_aes 950.69 µs 949.61 µs -1.09 µs (-0.11%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_aes 8.53 ms 8.52 ms -0.01 ms (-0.11%) 1.00%
handshake_no_resume_ring_1.3_rsa_chacha 950.68 µs 949.93 µs -0.75 µs (-0.08%) 1.00%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.92 ms 12.92 ms -0.01 ms (-0.07%) 1.85%
transfer_no_resume_ring_1.3_ecdsap384_chacha 16.02 ms 16.01 ms -0.01 ms (-0.06%) 1.24%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.56 ms 3.55 ms -0.00 ms (-0.04%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 582.71 µs 582.48 µs -0.22 µs (-0.04%) 2.43%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.56 ms 3.56 ms -0.00 ms (-0.01%) 1.00%

Additional information

Historical results

Checkout details:

Copy link

codecov bot commented Jul 2, 2025

Codecov Report

Attention: Patch coverage is 99.48454% with 1 line in your changes missing coverage. Please review.

Project coverage is 95.32%. Comparing base (f3b75e3) to head (db404af).

Files with missing lines Patch % Lines
rustls/src/tls13/key_schedule.rs 99.44% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2540      +/-   ##
==========================================
+ Coverage   95.31%   95.32%   +0.01%     
==========================================
  Files          97       97              
  Lines       21565    21614      +49     
==========================================
+ Hits        20555    20604      +49     
  Misses       1010     1010              

☔ 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.

Makes me wonder (again): should we have a separate types for an in-handshake connection, vs the long-term traffic connection, or would that affect the ergonomics too much? Maybe there should be an inner TrafficConnection type that you can turn a ClientConnection or ServerConnection into that has minimal state?

ctz added 6 commits July 7, 2025 10:29
`KeyScheduleBeforeFinished` encapsulates the first tranche
of final derivations that do not include the client's finished
message in the transcript.

`KeyScheduleTraffic` contains all such final derivations,
which means the client does not need to hang on to the transcript
or rederive the resumption secret.
For servers, we can be sure we don't require this once we have
sent all tickets.  That means we can erase `KeyScheduleResumption`
once that happens.

For clients there's no ability to know a server has sent all possible
tickets, so we have to keep this hanging around.
@ctz ctz force-pushed the jbp-terminal-key-schedule branch 2 times, most recently from db404af to 12a4188 Compare July 7, 2025 10:11
@ctz ctz added this pull request to the merge queue Jul 9, 2025
Merged via the queue into main with commit c84675e Jul 9, 2025
34 checks passed
@ctz ctz deleted the jbp-terminal-key-schedule branch July 9, 2025 08:04
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