Skip to content

Default require_ems based on CryptoProvider FIPS status - #3034

Merged
ctz merged 1 commit into
rustls:rel-0.23from
janrueth:fips-require-ems-provider
Apr 28, 2026
Merged

ctz merged 1 commit into
rustls:rel-0.23from
janrueth:fips-require-ems-provider

Conversation

@janrueth

Copy link
Copy Markdown

Previously, require_ems was defaulted solely based on cfg!(feature = "fips"), which is a compile-time check tied to the fips cargo feature. The fips feature unconditionally pulls in aws-lc-rs as the cryptographic provider, making it impossible for third-party FIPS-compliant CryptoProvider implementations (e.g., those backed by BoringSSL) to get correct FIPS policy defaults without also pulling in aws-lc-rs — which may conflict with their own crypto backend.

This change also considers the runtime CryptoProvider::fips() status when defaulting require_ems in both ClientConfig and ServerConfig builders. If the configured provider reports itself as FIPS-compliant, require_ems is now automatically set to true, ensuring that ClientConfig::fips() and ServerConfig::fips() return the correct result without requiring the fips cargo feature.

This is backward-compatible: existing users of the fips feature see no behavior change, while third-party providers now work correctly out of the box.

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

I think this broadly makes sense. Fixed some pre-existing CI issues here:

Comment thread rustls/src/client/builder.rs Outdated
Comment thread rustls/src/manual/fips.rs Outdated
@janrueth
janrueth force-pushed the fips-require-ems-provider branch from 6209b49 to 32168e4 Compare April 21, 2026 09:45
Previously, require_ems was defaulted solely based on cfg!(feature = "fips"),
which is a compile-time check tied to the fips cargo feature. The fips feature
unconditionally pulls in aws-lc-rs as the cryptographic provider, making it
impossible for third-party FIPS-compliant CryptoProvider implementations
(e.g., those backed by BoringSSL) to get correct FIPS policy defaults without
also pulling in aws-lc-rs — which may conflict with their own crypto backend.

This change also considers the runtime CryptoProvider::fips() status when
defaulting require_ems in both ClientConfig and ServerConfig builders. If the
configured provider reports itself as FIPS-compliant, require_ems is now
automatically set to true, ensuring that ClientConfig::fips() and
ServerConfig::fips() return the correct result without requiring the fips
cargo feature.

This is backward-compatible: existing users of the fips feature see no
behavior change, while third-party providers now work correctly out of the
box.
@janrueth
janrueth force-pushed the fips-require-ems-provider branch from 32168e4 to 7361899 Compare April 21, 2026 09:48
@codecov

codecov Bot commented Apr 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 95.29%. Comparing base (7b37468) to head (7361899).
⚠️ Report is 11 commits behind head on rel-0.23.

Additional details and impacted files
@@            Coverage Diff            @@
##           rel-0.23    #3034   +/-   ##
=========================================
  Coverage     95.29%   95.29%           
=========================================
  Files            97       97           
  Lines         21852    21854    +2     
=========================================
+ Hits          20823    20825    +2     
  Misses         1029     1029           

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

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

Thanks!

@rustls-benchmarking

rustls-benchmarking Bot commented Apr 21, 2026

Copy link
Copy Markdown

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_chacha_client 2435436 2422442 -12994 (-0.53%) 0.20%
handshake_tickets_1.3_no_crypto_server 1964813 1970543 ⚠️ 5730 (0.29%) 0.20%
handshake_session_id_1.3_no_crypto_server 2000270 2006000 ⚠️ 5730 (0.29%) 0.20%
handshake_session_id_1.3_no_crypto_client 2109192 2113422 ⚠️ 4230 (0.20%) 0.20%

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 10921283 10993141 71858 (0.66%) 1.33%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1403834 1397227 -6607 (-0.47%) 5.30%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 3594730 3584120 -10610 (-0.30%) 4.13%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 8828469 8804946 -23523 (-0.27%) 1.19%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10468674 10444560 -24114 (-0.23%) 0.72%
handshake_tickets_1.3_no_crypto_client 2127742 2131972 4230 (0.20%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 10979239 10958836 -20403 (-0.19%) 0.77%
handshake_no_resume_1.3_no_crypto_server 91810 91962 152 (0.17%) 0.20%
handshake_no_resume_1.3_no_crypto_client 106277 106446 169 (0.16%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 8801011 8790209 -10802 (-0.12%) 1.08%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 42287726 42327087 39361 (0.09%) 0.46%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 42291348 42329362 38014 (0.09%) 0.66%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 38456928 38480003 23075 (0.06%) 0.33%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 38464792 38487219 22427 (0.06%) 0.41%
handshake_no_resume_1.2_no_crypto_client 92892 92945 53 (0.06%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 42040926 42063367 22441 (0.05%) 0.86%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 42043578 42065683 22105 (0.05%) 0.37%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 42306163 42324945 18782 (0.04%) 0.45%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 42268493 42286801 18308 (0.04%) 0.40%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 38420730 38436452 15722 (0.04%) 0.22%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 42109690 42093932 -15758 (-0.04%) 0.60%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 42141646 42127063 -14583 (-0.03%) 0.42%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 38471739 38484620 12881 (0.03%) 0.25%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 37023047 37035139 12092 (0.03%) 0.49%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 4920260 4921820 1560 (0.03%) 0.23%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 37032421 37044127 11706 (0.03%) 0.26%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 42303512 42316373 12861 (0.03%) 0.42%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 42051702 42039753 -11949 (-0.03%) 0.55%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 38432097 38442012 9915 (0.03%) 0.27%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 42257902 42267255 9353 (0.02%) 0.59%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 38415165 38422926 7761 (0.02%) 0.34%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 37118939 37111490 -7449 (-0.02%) 0.33%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 37136572 37129668 -6904 (-0.02%) 0.25%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 3582352 3581698 -654 (-0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1395411 1395197 -214 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 37038111 37032633 -5478 (-0.01%) 0.34%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2304106 2303801 -305 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2307120 2306897 -223 (-0.01%) 3.32%
handshake_no_resume_ring_1.3_rsa_aes_client 2328219 2328403 184 (0.01%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2333864 2334048 184 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 2416163 2416002 -161 (-0.01%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3301184 3301356 172 (0.01%) 0.24%
handshake_no_resume_ring_1.2_rsa_aes_client 2237944 2238054 110 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46147938 46149866 1928 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30255679 30254929 -750 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30258365 30257615 -750 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30262598 30261848 -750 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30347449 30346699 -750 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30350165 30349415 -750 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30354398 30353648 -750 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 30508011 30507261 -750 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 30511290 30510540 -750 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 30515459 30514709 -750 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 30579741 30578991 -750 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 30583058 30582308 -750 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 30587227 30586477 -750 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1718994 1719036 42 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 42123353 42122545 -808 (-0.00%) 0.74%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 37118455 37117941 -514 (-0.00%) 0.42%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46119763 46119128 -635 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1281439 1281451 12 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34736787 34736906 119 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1280271 1280275 4 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7209223 7209242 19 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34735091 34735179 88 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3302494 3302486 -8 (-0.00%) 0.24%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 45998272 45998262 -10 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46003234 46003225 -9 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46157177 46157185 8 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 58032447 58032437 -10 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58035074 58035065 -9 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58145258 58145265 7 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80234919 80234910 -9 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80312232 80312241 9 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92605489 92605497 8 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46132404 46132401 -3 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58073827 58073830 3 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58156506 58156509 3 (0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_client 117299546 117299540 -6 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92603507 92603511 4 (0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_server 104969808 104969804 -4 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80327783 80327786 3 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92559803 92559806 3 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92614742 92614745 3 (0.00%) 0.20%
transfer_no_resume_1.3_no_crypto_server 105016010 105016007 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 45921285 45921284 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46008954 46008955 1 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58043850 58043849 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58147258 58147257 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80229950 80229949 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80240650 80240649 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92561794 92561793 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92571218 92571217 -1 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 31463710 31463710 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 31463892 31463892 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 31918714 31918714 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 32023714 32023714 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3763525 3763525 0 (0.00%) 0.37%
handshake_tickets_ring_1.3_ecdsap256_aes_server 32023607 32023607 0 (0.00%) 0.20%
handshake_session_id_1.2_no_crypto_server 986421 986421 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11089640 11089640 0 (0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_client 4208828 4208828 0 (0.00%) 0.20%
handshake_tickets_1.2_no_crypto_server 1134761 1134761 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 31586292 31586292 0 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 57924822 57924822 0 (0.00%) 0.20%
handshake_tickets_1.2_no_crypto_client 1184425 1184425 0 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3849633 3849633 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 31583435 31583435 0 (0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4178107 4178107 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 4565432 4565432 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11095395 11095395 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 31920994 31920994 0 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 4459259 4459259 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 31461035 31461035 0 (0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 31586110 31586110 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 32021374 32021374 0 (0.00%) 0.20%
handshake_no_resume_1.2_no_crypto_server 69198 69198 0 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7207280 7207280 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80337023 80337023 0 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 10969073 10969073 0 (0.00%) 0.20%
transfer_no_resume_1.2_no_crypto_client 117257425 117257425 0 (0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 4123460 4123460 0 (0.00%) 0.20%
handshake_session_id_1.2_no_crypto_client 1100610 1100610 0 (0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 31920947 31920947 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 75.95 µs 79.46 µs 3.51 µs (4.62%) 9.29%
handshake_no_resume_1.3_no_crypto 83.68 µs 87.06 µs 3.38 µs (4.04%) 9.66%
handshake_tickets_1.2_no_crypto 386.57 µs 398.46 µs 11.89 µs (3.08%) 6.68%
handshake_session_id_1.2_no_crypto 357.20 µs 363.82 µs 6.62 µs (1.85%) 5.36%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.49 ms 4.58 ms 0.08 ms (1.82%) 4.62%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 511.17 µs 519.23 µs 8.07 µs (1.58%) 3.51%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.00 ms 5.08 ms 0.07 ms (1.49%) 5.17%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 509.61 µs 516.87 µs 7.26 µs (1.42%) 2.88%
transfer_no_resume_ring_1.3_ecdsap256_aes 5.35 ms 5.43 ms 0.08 ms (1.41%) 3.21%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.19 ms 5.26 ms 0.07 ms (1.39%) 4.30%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 6.67 ms 6.76 ms 0.08 ms (1.26%) 1.39%
transfer_no_resume_ring_1.2_rsa_aes 5.77 ms 5.84 ms 0.07 ms (1.23%) 4.04%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 6.49 ms 6.57 ms 0.08 ms (1.21%) 1.52%
handshake_no_resume_ring_1.3_ecdsap256_aes 458.20 µs 463.46 µs 5.26 µs (1.15%) 2.71%
transfer_no_resume_ring_1.3_rsa_aes 5.84 ms 5.90 ms 0.06 ms (1.11%) 2.87%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 7.33 ms 7.41 ms 0.08 ms (1.09%) 1.73%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 7.36 ms 7.44 ms 0.08 ms (1.08%) 1.43%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 7.18 ms 7.25 ms 0.08 ms (1.05%) 1.43%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.15 ms 5.21 ms 0.05 ms (1.05%) 5.18%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 6.65 ms 6.72 ms 0.07 ms (1.03%) 1.96%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 7.15 ms 7.22 ms 0.07 ms (1.01%) 1.52%
handshake_no_resume_ring_1.3_ecdsap256_chacha 455.41 µs 459.92 µs 4.51 µs (0.99%) 2.12%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 7.31 ms 7.38 ms 0.07 ms (0.96%) 2.08%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 7.11 ms 7.18 ms 0.07 ms (0.94%) 1.89%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 6.46 ms 6.52 ms 0.06 ms (0.93%) 1.81%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.62 ms 1.61 ms -0.01 ms (-0.88%) 2.38%
transfer_no_resume_ring_1.3_ecdsap384_aes 8.49 ms 8.56 ms 0.07 ms (0.87%) 2.30%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 7.14 ms 7.20 ms 0.06 ms (0.85%) 1.50%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 7.34 ms 7.40 ms 0.06 ms (0.79%) 1.66%
transfer_no_resume_1.2_no_crypto 11.73 ms 11.80 ms 0.08 ms (0.67%) 1.93%
transfer_no_resume_1.3_no_crypto 11.73 ms 11.81 ms 0.07 ms (0.62%) 2.28%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 12.98 ms 13.05 ms 0.07 ms (0.57%) 1.67%
handshake_no_resume_ring_1.2_rsa_aes 935.87 µs 940.76 µs 4.90 µs (0.52%) 1.21%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.90 ms 12.97 ms 0.07 ms (0.51%) 1.54%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.67 ms 13.74 ms 0.07 ms (0.49%) 1.49%
transfer_no_resume_ring_1.3_rsa_chacha 13.39 ms 13.45 ms 0.06 ms (0.48%) 1.42%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.63 ms 13.68 ms 0.05 ms (0.39%) 1.70%
transfer_no_resume_ring_1.3_ecdsap384_chacha 16.03 ms 16.09 ms 0.06 ms (0.37%) 1.18%
handshake_no_resume_ring_1.3_rsa_chacha 944.24 µs 947.36 µs 3.12 µs (0.33%) 1.21%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.20 ms 1.20 ms 0.00 ms (0.31%) 1.38%
handshake_no_resume_ring_1.3_rsa_aes 943.43 µs 946.24 µs 2.81 µs (0.30%) 1.05%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.79 ms 1.78 ms -0.01 ms (-0.30%) 1.81%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.05 ms 1.05 ms -0.00 ms (-0.29%) 1.34%
handshake_tickets_1.3_no_crypto 662.40 µs 664.27 µs 1.87 µs (0.28%) 4.39%
handshake_session_id_ring_1.3_rsa_aes 5.98 ms 5.96 ms -0.02 ms (-0.26%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.58 ms 3.59 ms 0.01 ms (0.25%) 1.00%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.44 ms 5.43 ms -0.01 ms (-0.24%) 1.27%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.16 ms 1.15 ms -0.00 ms (-0.23%) 2.09%
handshake_session_id_ring_1.3_ecdsap256_aes 5.48 ms 5.47 ms -0.01 ms (-0.18%) 1.25%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.15 ms 1.15 ms 0.00 ms (0.16%) 1.78%
handshake_session_id_1.3_no_crypto 681.28 µs 680.25 µs -1.03 µs (-0.15%) 3.19%
handshake_session_id_ring_1.3_rsa_chacha 5.93 ms 5.93 ms -0.01 ms (-0.12%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_aes 5.54 ms 5.53 ms -0.01 ms (-0.11%) 1.31%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.59 ms 3.59 ms 0.00 ms (0.11%) 1.00%
handshake_tickets_ring_1.3_rsa_aes 6.03 ms 6.02 ms -0.01 ms (-0.10%) 1.11%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.50 ms 5.49 ms -0.00 ms (-0.08%) 1.05%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.20 ms 1.20 ms 0.00 ms (0.08%) 1.20%
handshake_session_id_ring_1.3_ecdsap384_aes 8.61 ms 8.60 ms -0.01 ms (-0.07%) 1.00%
handshake_tickets_ring_1.3_rsa_chacha 5.98 ms 5.98 ms -0.00 ms (-0.07%) 1.00%
handshake_session_id_ring_1.2_rsa_aes 1.50 ms 1.50 ms 0.00 ms (0.06%) 2.06%
handshake_tickets_ring_1.2_rsa_aes 1.58 ms 1.58 ms 0.00 ms (0.04%) 2.13%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.56 ms 8.57 ms 0.00 ms (0.02%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.62 ms 8.62 ms 0.00 ms (0.02%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_aes 8.66 ms 8.66 ms -0.00 ms (-0.02%) 1.00%

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:

@ctz
ctz added this pull request to the merge queue Apr 28, 2026
Merged via the queue into rustls:rel-0.23 with commit a612901 Apr 28, 2026
34 checks passed
@ctz

ctz commented Apr 28, 2026

Copy link
Copy Markdown
Member

Published in 0.23.40 -- thanks!

@janrueth
janrueth deleted the fips-require-ems-provider branch April 29, 2026 10:29
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