Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Implement post-quantum hybrid KX optimisation #2136

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 4 commits into from
Dec 2, 2024
Merged

Conversation

ctz
Copy link
Member

@ctz ctz commented Sep 26, 2024

This is towards #2056 -- it implements the second bullet, and the mentioned optimisation, in one API.

@ctz ctz changed the title Jbp hybrid kx optimisation Implement post-quantum hybrid KX optimisation Sep 26, 2024
Copy link

codecov bot commented Sep 26, 2024

Codecov Report

Attention: Patch coverage is 92.06349% with 5 lines in your changes missing coverage. Please review.

Project coverage is 94.64%. Comparing base (bf75664) to head (23de2f9).
Report is 6 commits behind head on main.

Files with missing lines Patch % Lines
rustls/src/crypto/mod.rs 37.50% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2136      +/-   ##
==========================================
- Coverage   94.65%   94.64%   -0.01%     
==========================================
  Files         102      102              
  Lines       23917    23974      +57     
==========================================
+ Hits        22638    22690      +52     
- Misses       1279     1284       +5     

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

Copy link

rustls-benchmarking bot commented Sep 26, 2024

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.2_rsa_aes_client 3873055 3864445 -8610 (-0.22%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4215289 4206349 -8940 (-0.21%) 0.20%

Other differences

Click to expand
Scenario Baseline Candidate Diff Threshold
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10417261 10462010 44749 (0.43%) 1.52%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 8600447 8579313 -21134 (-0.25%) 1.00%
handshake_session_id_ring_1.2_rsa_aes_client 4236939 4228689 -8250 (-0.19%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 4497603 4489023 -8580 (-0.19%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 10689918 10709503 19585 (0.18%) 0.81%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 8595887 8585289 -10598 (-0.12%) 0.82%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 5020724 5016254 -4470 (-0.09%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 10695058 10686355 -8703 (-0.08%) 1.02%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3624746 3622358 -2388 (-0.07%) 0.46%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 3079999 3078355 -1644 (-0.05%) 0.25%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3870543 3868533 -2010 (-0.05%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3619051 3620917 1866 (0.05%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 27794839 27781502 -13337 (-0.05%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 27854420 27841216 -13204 (-0.05%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 27801693 27788544 -13149 (-0.05%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 27797171 27784070 -13101 (-0.05%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 27861122 27848003 -13119 (-0.05%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 28225270 28212096 -13174 (-0.05%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 27856607 27843651 -12956 (-0.05%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 28191426 28178319 -13107 (-0.05%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 28218306 28205192 -13114 (-0.05%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 28188237 28175199 -13038 (-0.05%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 28195149 28182155 -12994 (-0.05%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 28221259 28208264 -12995 (-0.05%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 40195207 40177675 -17532 (-0.04%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 40198148 40180632 -17516 (-0.04%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 40202193 40184683 -17510 (-0.04%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 40289595 40272063 -17532 (-0.04%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 40292528 40275012 -17516 (-0.04%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 40296573 40279063 -17510 (-0.04%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 40512717 40495175 -17542 (-0.04%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 40515976 40498450 -17526 (-0.04%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 40519970 40502450 -17520 (-0.04%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 40586975 40569433 -17542 (-0.04%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 40590226 40572700 -17526 (-0.04%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 40594220 40576700 -17520 (-0.04%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 4230790 4229140 -1650 (-0.04%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 4695330 4693680 -1650 (-0.04%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 3082783 3081914 -869 (-0.03%) 0.26%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1174245 1174384 139 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 30421807 30418322 -3485 (-0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 28883068 28886224 3156 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 30375393 30372179 -3214 (-0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 30421203 30418007 -3196 (-0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 30378560 30375379 -3181 (-0.01%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 42062048 42057698 -4350 (-0.01%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 42064948 42060598 -4350 (-0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 30378771 30375664 -3107 (-0.01%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 42065138 42060848 -4290 (-0.01%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 41601128 41596898 -4230 (-0.01%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 41603721 41599491 -4230 (-0.01%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 41603799 41599569 -4230 (-0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 28883057 28885925 2868 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 28958816 28961635 2819 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 28961653 28964430 2777 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 28880407 28883112 2705 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 28961737 28964368 2631 (0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 30418007 30415275 -2732 (-0.01%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 41963018 41959388 -3630 (-0.01%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 41965918 41962288 -3630 (-0.01%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 41966108 41962538 -3570 (-0.01%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 41482178 41478668 -3510 (-0.01%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 41484771 41481261 -3510 (-0.01%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 41484849 41481339 -3510 (-0.01%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1611985 1611849 -136 (-0.01%) 1.06%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1613375 1613252 -123 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2073522 2073660 138 (0.01%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_client 2655903 2655793 -110 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2661768 2661658 -110 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1176542 1176588 46 (0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1717625 1717559 -66 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 1925569 1925615 46 (0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2076756 2076713 -43 (-0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_client 2563580 2563529 -51 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7564313 7564179 -134 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11424773 11424618 -155 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7566460 7566360 -100 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 1932333 1932357 24 (0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11430729 11430598 -131 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58191641 58192282 641 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 58235169 58235808 639 (0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 11292386 11292338 -48 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 35180637 35180521 -116 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 35182557 35182466 -91 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80661856 80661842 -14 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58352511 58352502 -9 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92682837 92682826 -11 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92714546 92714536 -10 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80641262 80641256 -6 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46477531 46477528 -3 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92716781 92716776 -5 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46423827 46423829 2 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46487101 46487099 -2 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80648882 80648885 3 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58250539 58250537 -2 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80554937 80554935 -2 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92684673 92684671 -2 (-0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 46389596 46389595 -1 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46456936 46456937 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46464558 46464557 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46467812 46467813 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58253415 58253416 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58255489 58255490 1 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58348746 58348747 1 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80540451 80540452 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92720775 92720774 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92673769 92673769 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 58341600 58341600 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 46470692 46470692 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80535650 80535650 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
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.43 ms 4.50 ms 0.07 ms (1.49%) 4.08%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.16 ms 5.23 ms 0.07 ms (1.36%) 3.68%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.02 ms 5.07 ms 0.05 ms (1.05%) 4.30%
transfer_no_resume_ring_1.3_ecdsap256_aes 6.30 ms 6.36 ms 0.06 ms (1.02%) 3.14%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 5.15 ms 5.10 ms -0.05 ms (-0.97%) 1.36%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.09 ms 5.14 ms 0.05 ms (0.93%) 3.66%
transfer_no_resume_ring_1.2_rsa_aes 6.72 ms 6.78 ms 0.06 ms (0.86%) 2.79%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.07 ms 1.06 ms -0.01 ms (-0.82%) 2.09%
transfer_no_resume_ring_1.3_rsa_aes 6.80 ms 6.85 ms 0.06 ms (0.82%) 3.07%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 456.27 µs 459.98 µs 3.71 µs (0.81%) 2.94%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 4.94 ms 4.91 ms -0.04 ms (-0.76%) 1.09%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.78 ms 1.77 ms -0.01 ms (-0.75%) 1.53%
handshake_no_resume_ring_1.3_ecdsap256_aes 504.35 µs 508.11 µs 3.76 µs (0.75%) 2.40%
handshake_session_id_aws_lc_rs_1.2_rsa_aes 1.61 ms 1.60 ms -0.01 ms (-0.69%) 1.73%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 4.29 ms 4.26 ms -0.03 ms (-0.68%) 1.01%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 4.48 ms 4.46 ms -0.03 ms (-0.64%) 1.34%
transfer_no_resume_ring_1.3_ecdsap384_aes 9.46 ms 9.52 ms 0.06 ms (0.62%) 2.25%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.10 ms 1.10 ms -0.01 ms (-0.61%) 2.34%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.11 ms 1.11 ms -0.01 ms (-0.60%) 3.07%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 4.97 ms 4.94 ms -0.03 ms (-0.59%) 1.24%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 5.16 ms 5.14 ms -0.03 ms (-0.57%) 1.19%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 454.83 µs 457.35 µs 2.51 µs (0.55%) 2.51%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.17 ms 1.18 ms 0.01 ms (0.54%) 1.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 5.19 ms 5.17 ms -0.03 ms (-0.50%) 1.13%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.63 ms 13.70 ms 0.07 ms (0.48%) 1.43%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 12.91 ms 12.97 ms 0.06 ms (0.47%) 1.62%
handshake_no_resume_ring_1.3_ecdsap256_chacha 501.25 µs 503.56 µs 2.32 µs (0.46%) 2.14%
transfer_no_resume_ring_1.3_rsa_chacha 13.44 ms 13.50 ms 0.06 ms (0.46%) 1.41%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.95 ms 13.00 ms 0.06 ms (0.43%) 1.51%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 4.30 ms 4.29 ms -0.02 ms (-0.41%) 1.19%
handshake_tickets_ring_1.2_rsa_aes 1.60 ms 1.60 ms -0.01 ms (-0.41%) 1.32%
handshake_tickets_ring_1.3_ecdsap256_chacha 6.48 ms 6.45 ms -0.03 ms (-0.40%) 1.00%
handshake_tickets_ring_1.3_rsa_chacha 6.97 ms 6.94 ms -0.03 ms (-0.40%) 1.00%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 4.50 ms 4.49 ms -0.02 ms (-0.39%) 1.23%
transfer_no_resume_ring_1.3_ecdsap384_chacha 16.10 ms 16.16 ms 0.06 ms (0.37%) 1.23%
handshake_session_id_ring_1.3_ecdsap256_chacha 6.41 ms 6.39 ms -0.02 ms (-0.37%) 1.00%
handshake_session_id_ring_1.3_rsa_chacha 6.91 ms 6.88 ms -0.02 ms (-0.36%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_aes 6.53 ms 6.50 ms -0.02 ms (-0.35%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.17 ms 1.18 ms 0.00 ms (0.33%) 1.21%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 4.99 ms 4.97 ms -0.02 ms (-0.33%) 1.17%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 5.22 ms 5.20 ms -0.02 ms (-0.32%) 1.20%
handshake_session_id_ring_1.3_ecdsap256_aes 6.46 ms 6.44 ms -0.02 ms (-0.32%) 1.00%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.58 ms 13.62 ms 0.04 ms (0.30%) 1.58%
handshake_no_resume_ring_1.2_rsa_aes 991.20 µs 994.09 µs 2.89 µs (0.29%) 1.16%
handshake_tickets_ring_1.3_rsa_aes 7.01 ms 6.99 ms -0.02 ms (-0.29%) 1.00%
handshake_session_id_ring_1.3_rsa_aes 6.95 ms 6.93 ms -0.02 ms (-0.28%) 1.00%
handshake_session_id_ring_1.2_rsa_aes 1.53 ms 1.52 ms -0.00 ms (-0.26%) 1.02%
handshake_tickets_ring_1.3_ecdsap384_chacha 9.62 ms 9.60 ms -0.02 ms (-0.22%) 1.00%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 5.02 ms 5.01 ms -0.01 ms (-0.21%) 1.22%
handshake_session_id_ring_1.3_ecdsap384_chacha 9.55 ms 9.53 ms -0.02 ms (-0.20%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_aes 9.67 ms 9.65 ms -0.02 ms (-0.19%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_aes 9.60 ms 9.58 ms -0.01 ms (-0.15%) 1.00%
handshake_no_resume_ring_1.3_rsa_aes 996.14 µs 997.18 µs 1.04 µs (0.10%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.66 ms 3.66 ms 0.00 ms (0.08%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.66 ms 3.66 ms 0.00 ms (0.04%) 1.00%
handshake_no_resume_ring_1.3_rsa_chacha 997.06 µs 996.83 µs -0.23 µs (-0.02%) 1.05%

Additional information

Historical results

Checkout details:

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.

Here's some initial feedback. I think the overall idea makes sense 👍

Comment on lines 102 to 104
let secondary = our_key_share
.into_hybrid_pair()
.expect("into_hybrid_pair() must by supported if hybrid_pair() is");
Copy link
Member

Choose a reason for hiding this comment

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

Thinking back to my not fully baked review comment, I think this expect() might fall away if the hybrid_pair() return was also sufficiently capable of being turned into the Box'd form we need.

@ctz ctz force-pushed the jbp-hybrid-kx-optimisation branch from 27d7857 to 4225aaf Compare September 30, 2024 15:59
@ctz ctz force-pushed the jbp-hybrid-kx-optimisation branch 2 times, most recently from 4a3532f to 3d76c68 Compare October 3, 2024 17:02
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.

I like the new names 👍 Here's another pass, mostly flagging nits/editorial suggestions related to the documentation.

@ctz ctz force-pushed the jbp-hybrid-kx-optimisation branch 2 times, most recently from 770ff13 to 3eda51e Compare October 22, 2024 15:54
@ctz ctz marked this pull request as ready for review October 23, 2024 18:05
@ctz ctz force-pushed the jbp-hybrid-kx-optimisation branch 2 times, most recently from f3e0678 to 5f7fde0 Compare October 28, 2024 15:23
@ctz ctz force-pushed the jbp-hybrid-kx-optimisation branch from 5f7fde0 to 23de2f9 Compare December 2, 2024 10:50
@ctz
Copy link
Member Author

ctz commented Dec 2, 2024

I'm minded to merge this -- @djc do you have strong objections to that?

I think once we take breaking changes, we should do (sketch):

pub enum ActiveKeyExchange {
  Single(Box<dyn ActiveSingleKeyExchange>),
  Hybrid(Box<dyn ActiveHybridKeyExchange>),
}

pub trait ActiveSingleKeyExchange {
  // something like ActiveKeyExchange prior to this PR
}

pub trait ActiveHybridKeyExchange {
  // something like ActiveKeyExchange after this PR, but with no Option on
  // hybrid_component()'s return type
}

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 sense to me. File an issue tagged with the appropriate label to follow up for the next breaking release?

@ctz
Copy link
Member Author

ctz commented Dec 2, 2024

Added to #2119

@ctz ctz added this pull request to the merge queue Dec 2, 2024
Merged via the queue into main with commit d5c4a8b Dec 2, 2024
59 of 60 checks passed
@ctz ctz deleted the jbp-hybrid-kx-optimisation branch December 2, 2024 13:28
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