Skip to content

Memoise computation of empty hash #2538

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
Jul 1, 2025
Merged

Memoise computation of empty hash #2538

merged 1 commit into from
Jul 1, 2025

Conversation

ctz
Copy link
Member

@ctz ctz commented Jul 1, 2025

For a small, common set of HashAlgorithms, we now just inherently know their hash::Output for the empty input. This value is used in the TLS1.3 key schedule.

Copy link

rustls-benchmarking bot commented Jul 1, 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 64645919 64087148 -558771 (-0.86%) 0.51%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 48177677 47768648 -409029 (-0.85%) 0.38%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2669221 2689721 ⚠️ 20500 (0.77%) 0.23%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30761070 30536005 -225065 (-0.73%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30757951 30533107 -224844 (-0.73%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30764928 30540127 -224801 (-0.73%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30852750 30627685 -225065 (-0.73%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30849601 30624757 -224844 (-0.73%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30856608 30631807 -224801 (-0.73%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 31077681 30852531 -225150 (-0.72%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 31080572 30855832 -224740 (-0.72%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 31084675 30859940 -224735 (-0.72%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 31149291 30924141 -225150 (-0.72%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 31152227 30927487 -224740 (-0.72%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 31156330 30931595 -224735 (-0.72%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 31732777 31507773 -225004 (-0.71%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 31735402 31510654 -224748 (-0.71%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 31735636 31510962 -224674 (-0.71%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 31854757 31629753 -225004 (-0.71%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 31857382 31632634 -224748 (-0.71%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 31857616 31632942 -224674 (-0.71%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 32190567 31965310 -225257 (-0.70%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 32192921 31968098 -224823 (-0.70%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 32192906 31968111 -224795 (-0.70%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 32292807 32067550 -225257 (-0.70%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 32295161 32070338 -224823 (-0.70%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 32295146 32070351 -224795 (-0.70%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 48181940 47847448 -334492 (-0.69%) 0.40%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 48161705 47847177 -314528 (-0.65%) 0.44%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 64557223 64150076 -407147 (-0.63%) 0.56%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 64493251 64125037 -368214 (-0.57%) 0.46%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 48056640 47793805 -262835 (-0.55%) 0.51%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 49431624 49172873 -258751 (-0.52%) 0.49%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 48071283 47822307 -248976 (-0.52%) 0.28%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 48109436 47872898 -236538 (-0.49%) 0.48%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 49436284 49199959 -236325 (-0.48%) 0.41%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 49381594 49148569 -233025 (-0.47%) 0.40%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1290049 1285067 -4982 (-0.39%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1291241 1286263 -4978 (-0.39%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 64410425 64172626 -237799 (-0.37%) 0.29%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2666448 2660646 -5802 (-0.22%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_client 2330277 2325299 -4978 (-0.21%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2335928 2330950 -4978 (-0.21%) 0.20%

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 9482536 9543370 60834 (0.64%) 0.91%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 49369733 49106009 -263724 (-0.53%) 0.56%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 49361914 49136577 -225337 (-0.46%) 0.53%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10429489 10475615 46126 (0.44%) 1.24%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 49396844 49181665 -215179 (-0.44%) 0.47%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 64578653 64312658 -265995 (-0.41%) 0.77%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 64387812 64122997 -264815 (-0.41%) 0.54%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 64669655 64416522 -253133 (-0.39%) 0.78%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 64656604 64420150 -236454 (-0.37%) 0.59%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1763479 1757433 -6046 (-0.34%) 1.26%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 64395700 64184247 -211453 (-0.33%) 0.76%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 64550359 64346881 -203478 (-0.32%) 0.76%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 64588513 64396883 -191630 (-0.30%) 0.61%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 11330493 11300058 -30435 (-0.27%) 1.69%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 64636407 64468695 -167712 (-0.26%) 0.54%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 4278546 4271012 -7534 (-0.18%) 1.10%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 3106605 3101233 -5372 (-0.17%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 3112814 3107734 -5080 (-0.16%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3304457 3299441 -5016 (-0.15%) 0.23%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3303155 3298285 -4870 (-0.15%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 4276834 4283124 6290 (0.15%) 0.23%
handshake_tickets_1.3_no_crypto_server 2068224 2071164 2940 (0.14%) 2.28%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 11339540 11323464 -16076 (-0.14%) 0.94%
handshake_session_id_1.3_no_crypto_server 2104314 2107254 2940 (0.14%) 2.26%
handshake_session_id_1.3_no_crypto_client 2216462 2219372 2910 (0.13%) 2.75%
handshake_tickets_1.3_no_crypto_client 2235008 2237918 2910 (0.13%) 2.72%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 9469922 9478942 9020 (0.10%) 1.05%
handshake_no_resume_1.3_no_crypto_server 98122 98204 82 (0.08%) 1.55%
handshake_no_resume_1.3_no_crypto_client 111581 111663 82 (0.07%) 1.32%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7215671 7210693 -4978 (-0.07%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7213710 7208734 -4976 (-0.07%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11113591 11108613 -4978 (-0.04%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11119352 11114374 -4978 (-0.04%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1761128 1761885 757 (0.04%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34734699 34729721 -4978 (-0.01%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34732980 34728005 -4975 (-0.01%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 45917925 45917934 9 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46003296 46003288 -8 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46186567 46186560 -7 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80245477 80245469 -8 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80249967 80249974 7 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80356026 80356019 -7 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46176183 46176180 -3 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92579805 92579799 -6 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92569841 92569836 -5 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58005574 58005577 3 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58109678 58109675 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46010592 46010590 -2 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46124479 46124481 2 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46176460 46176462 2 (0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_server 104985032 104985036 4 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80356945 80356948 3 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80367045 80367042 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 57900718 57900720 2 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 57994745 57994747 2 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58056745 58056747 2 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58114383 58114381 -2 (-0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_client 117341860 117341864 4 (0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_server 105032245 105032248 3 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80238176 80238174 -2 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 46013172 46013173 1 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92520832 92520834 2 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92531661 92531659 -2 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58002604 58002603 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58119642 58119643 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92575823 92575822 -1 (-0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_client 117294666 117294665 -1 (-0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_client 4238976 4238976 0 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4164181 4164181 0 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_client 2243095 2243095 0 (0.00%) 0.20%
handshake_tickets_1.2_no_crypto_server 1205861 1205861 0 (0.00%) 0.65%
handshake_tickets_ring_1.2_rsa_aes_server 4613444 4613444 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 4492301 4492301 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92529967 92529967 0 (0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1717570 1717570 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3751431 3751431 0 (0.00%) 0.20%
handshake_session_id_1.2_no_crypto_server 1045521 1045521 0 (0.00%) 0.62%
handshake_no_resume_1.2_no_crypto_client 98547 98547 0 (0.00%) 0.37%
handshake_no_resume_1.2_no_crypto_server 74674 74674 0 (0.00%) 1.28%
handshake_session_id_1.2_no_crypto_client 1151902 1151902 0 (0.00%) 2.08%
handshake_session_id_ring_1.2_rsa_aes_server 4159220 4159220 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3831857 3831857 0 (0.00%) 0.20%
handshake_tickets_1.2_no_crypto_client 1239584 1239584 0 (0.00%) 2.08%
handshake_no_resume_ring_1.2_rsa_aes_server 10987546 10987546 0 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 4885648 4885648 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_aws_lc_rs_1.3_rsa_aes 1.24 ms 1.28 ms 0.04 ms (3.50%) 8.53%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.23 ms 1.27 ms 0.04 ms (2.95%) 6.41%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.74 ms 1.79 ms 0.05 ms (2.76%) 4.85%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.07 ms 1.10 ms 0.03 ms (2.74%) 7.73%
handshake_tickets_1.3_no_crypto 624.57 µs 639.26 µs 14.69 µs (2.35%) 4.29%
handshake_session_id_1.3_no_crypto 645.69 µs 658.91 µs 13.22 µs (2.05%) 5.16%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.59 ms 1.62 ms 0.03 ms (1.63%) 6.20%
handshake_no_resume_1.3_no_crypto 86.74 µs 88.02 µs 1.27 µs (1.47%) 11.33%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.02 ms 5.09 ms 0.07 ms (1.46%) 3.56%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.23 ms 5.30 ms 0.06 ms (1.23%) 3.80%
handshake_session_id_1.2_no_crypto 341.89 µs 345.56 µs 3.66 µs (1.07%) 4.37%
handshake_no_resume_1.2_no_crypto 77.61 µs 78.38 µs 0.77 µs (0.99%) 10.28%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.57 ms 4.61 ms 0.03 ms (0.76%) 4.48%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.26 ms 5.30 ms 0.03 ms (0.66%) 3.92%
transfer_no_resume_ring_1.3_ecdsap256_aes 5.33 ms 5.37 ms 0.03 ms (0.65%) 4.00%
transfer_no_resume_ring_1.2_rsa_aes 5.75 ms 5.79 ms 0.04 ms (0.62%) 3.05%
transfer_no_resume_ring_1.3_ecdsap384_aes 8.43 ms 8.48 ms 0.05 ms (0.57%) 2.64%
transfer_no_resume_ring_1.3_rsa_aes 5.83 ms 5.86 ms 0.03 ms (0.55%) 3.80%
handshake_tickets_1.2_no_crypto 373.73 µs 375.62 µs 1.90 µs (0.51%) 4.09%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.70 ms 13.77 ms 0.07 ms (0.48%) 1.40%
handshake_session_id_ring_1.3_rsa_aes 5.93 ms 5.90 ms -0.03 ms (-0.43%) 1.00%
handshake_tickets_ring_1.3_rsa_chacha 5.95 ms 5.92 ms -0.03 ms (-0.43%) 1.00%
transfer_no_resume_1.3_no_crypto 11.88 ms 11.93 ms 0.05 ms (0.42%) 2.74%
handshake_session_id_ring_1.3_ecdsap256_aes 5.43 ms 5.41 ms -0.02 ms (-0.40%) 1.23%
handshake_tickets_ring_1.3_rsa_aes 5.98 ms 5.96 ms -0.02 ms (-0.39%) 1.07%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.46 ms 5.44 ms -0.02 ms (-0.39%) 1.27%
handshake_session_id_ring_1.3_rsa_chacha 5.89 ms 5.87 ms -0.02 ms (-0.37%) 1.08%
handshake_tickets_ring_1.3_ecdsap256_aes 5.49 ms 5.47 ms -0.02 ms (-0.36%) 1.15%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.40 ms 5.38 ms -0.02 ms (-0.36%) 1.31%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 8.49 ms 8.46 ms -0.03 ms (-0.34%) 1.50%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 9.30 ms 9.27 ms -0.03 ms (-0.32%) 1.38%
transfer_no_resume_ring_1.3_ecdsap384_chacha 15.98 ms 16.04 ms 0.05 ms (0.32%) 1.43%
handshake_tickets_ring_1.2_rsa_aes 1.55 ms 1.55 ms -0.00 ms (-0.31%) 1.27%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 8.66 ms 8.63 ms -0.03 ms (-0.30%) 1.00%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 9.17 ms 9.14 ms -0.03 ms (-0.30%) 1.09%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 9.11 ms 9.08 ms -0.03 ms (-0.28%) 1.84%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.89 ms 12.93 ms 0.04 ms (0.28%) 1.86%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.55 ms 3.56 ms 0.01 ms (0.27%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.55 ms 3.56 ms 0.01 ms (0.27%) 1.00%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 9.34 ms 9.32 ms -0.03 ms (-0.27%) 1.23%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 13.04 ms 13.08 ms 0.03 ms (0.25%) 1.56%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.72 ms 13.76 ms 0.03 ms (0.25%) 1.44%
transfer_no_resume_1.2_no_crypto 11.71 ms 11.73 ms 0.03 ms (0.25%) 2.04%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 8.61 ms 8.59 ms -0.02 ms (-0.24%) 1.33%
transfer_no_resume_ring_1.3_rsa_chacha 13.39 ms 13.42 ms 0.03 ms (0.23%) 1.36%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 9.11 ms 9.13 ms 0.02 ms (0.22%) 2.47%
handshake_session_id_ring_1.3_ecdsap384_aes 8.52 ms 8.51 ms -0.02 ms (-0.21%) 1.02%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 9.16 ms 9.18 ms 0.02 ms (0.20%) 2.34%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.55 ms 8.54 ms -0.02 ms (-0.18%) 1.00%
handshake_no_resume_ring_1.3_ecdsap256_aes 460.80 µs 459.98 µs -0.82 µs (-0.18%) 2.45%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 8.43 ms 8.41 ms -0.01 ms (-0.17%) 1.96%
handshake_tickets_ring_1.3_ecdsap384_aes 8.58 ms 8.57 ms -0.01 ms (-0.16%) 1.00%
handshake_no_resume_ring_1.2_rsa_aes 942.18 µs 943.54 µs 1.36 µs (0.14%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.49 ms 8.48 ms -0.01 ms (-0.13%) 1.00%
handshake_no_resume_ring_1.3_rsa_chacha 948.94 µs 950.07 µs 1.13 µs (0.12%) 1.05%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.26 ms 1.26 ms 0.00 ms (0.11%) 1.00%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 9.29 ms 9.30 ms 0.01 ms (0.10%) 2.47%
handshake_session_id_ring_1.2_rsa_aes 1.47 ms 1.47 ms -0.00 ms (-0.10%) 1.52%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 581.90 µs 581.35 µs -0.56 µs (-0.10%) 3.05%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 579.69 µs 580.19 µs 0.50 µs (0.09%) 3.16%
handshake_no_resume_ring_1.3_ecdsap256_chacha 456.81 µs 456.99 µs 0.18 µs (0.04%) 2.69%
handshake_no_resume_ring_1.3_rsa_aes 949.98 µs 949.76 µs -0.22 µs (-0.02%) 1.00%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 9.33 ms 9.33 ms 0.00 ms (0.02%) 2.52%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.27 ms 1.27 ms -0.00 ms (-0.01%) 1.27%

Additional information

Historical results

Checkout details:

Copy link

codecov bot commented Jul 1, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.31%. Comparing base (f2bbec6) to head (55c3125).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2538   +/-   ##
=======================================
  Coverage   95.30%   95.31%           
=======================================
  Files          97       97           
  Lines       21520    21565   +45     
=======================================
+ Hits        20510    20555   +45     
  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

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

Would it be overkill to write a test to check each supported algorithm's hash_for_empty_input() either returns None, or bytes matching those produced from calling hp.start().finish() directly?

I spot-checked the values here and the chance of regression seems pretty low, but simultaneously it seems like the test would be easy to write. No strong pref either way.

@ctz ctz force-pushed the jbp-empty-hash-optimisation branch from c694219 to 55c3125 Compare July 1, 2025 13:26
@ctz ctz added this pull request to the merge queue Jul 1, 2025
Merged via the queue into main with commit 0878444 Jul 1, 2025
34 checks passed
@ctz ctz deleted the jbp-empty-hash-optimisation branch July 1, 2025 14:01
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.

3 participants