Skip to content

Allow AeadKey to be constructed outside crate #2369

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Conversation

ctz
Copy link
Member

@ctz ctz commented Mar 7, 2025

Previously this was constructable, but only for 256-bit keys via From<[u8; 32]>.

Instead of just publicising AeadKey::new, recast the type as an enum containing variants for the two usual symmetric key lengths (this prevents misuses like empty keys, one byte keys, etc). Unfortunately for semver reasons this needs to be wrapped in the original struct type.

The underlying rationale for this change is to support some changes I want to make in quinn; this is draft while I solidify those.

Copy link

rustls-benchmarking bot commented Mar 7, 2025

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_ecdsap384_chacha_client 8320306 8296605 -23701 (-0.28%) 1.56%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_server 10767563 10776385 8822 (0.08%) 2.03%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 3102357 3100020 -2337 (-0.08%) 0.59%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 8317021 8310992 -6029 (-0.07%) 1.37%
handshake_no_resume_ring_1.3_ecdsap256_aes_client 3302130 3303977 1847 (0.06%) 0.26%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_server 5019472 5022082 2610 (0.05%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_client 4302072 4300062 -2010 (-0.05%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_server 10479790 10484110 4320 (0.04%) 1.03%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_client 3870895 3869365 -1530 (-0.04%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_client 4564994 4563194 -1800 (-0.04%) 0.20%
handshake_tickets_aws_lc_rs_1.2_rsa_aes_client 4212889 4211569 -1320 (-0.03%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_client 28221540 28216442 -5098 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_client 27847612 27842582 -5030 (-0.02%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_client 28214670 28209658 -5012 (-0.02%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_client 28217496 28212487 -5009 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_client 27849935 27845006 -4929 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_client 27854426 27849515 -4911 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes_server 28827449 28822789 -4660 (-0.02%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_server 32564590 32559430 -5160 (-0.02%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_server 32567127 32561967 -5160 (-0.02%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_server 32567146 32561986 -5160 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes_server 28827404 28822893 -4511 (-0.02%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_server 10747422 10745748 -1674 (-0.02%) 1.18%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_server 30222375 30227073 4698 (0.02%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_server 32123250 32118360 -4890 (-0.02%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_server 32120650 32115790 -4860 (-0.02%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_server 32123149 32118289 -4860 (-0.02%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_aes_server 28824875 28820532 -4343 (-0.02%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_server 30219870 30224406 4536 (0.02%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_aes_client 30923563 30919063 -4500 (-0.01%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_aes_client 30926500 30922000 -4500 (-0.01%) 0.20%
handshake_session_id_ring_1.3_rsa_aes_client 30930553 30926053 -4500 (-0.01%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_aes_client 31221863 31217363 -4500 (-0.01%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_aes_client 31225139 31220639 -4500 (-0.01%) 0.20%
handshake_tickets_ring_1.3_rsa_aes_client 31229141 31224641 -4500 (-0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_server 30222491 30226694 4203 (0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes_client 1927636 1927425 -211 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 1149085 1148969 -116 (-0.01%) 1.56%
handshake_no_resume_ring_1.3_ecdsap256_aes_server 1296020 1295894 -126 (-0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_client 27790813 27788315 -2498 (-0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha_client 28184855 28182474 -2381 (-0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_client 27788192 27785855 -2337 (-0.01%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_client 2333813 2333622 -191 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 2061335 2061503 168 (0.01%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_client 27795015 27792754 -2261 (-0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha_client 28191652 28189447 -2205 (-0.01%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha_client 28187795 28185608 -2187 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha_client 1934378 1934267 -111 (-0.01%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 2064666 2064555 -111 (-0.01%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_client 30832333 30830833 -1500 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_client 30835270 30833770 -1500 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_client 30839323 30837823 -1500 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_client 31150673 31149173 -1500 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_client 31153928 31152428 -1500 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_client 31157930 31156430 -1500 (-0.00%) 0.20%
handshake_tickets_ring_1.3_rsa_chacha_server 32462665 32461255 -1410 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap256_chacha_server 32465202 32463792 -1410 (-0.00%) 0.20%
handshake_tickets_ring_1.3_ecdsap384_chacha_server 32465266 32463856 -1410 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_rsa_aes_server 30262451 30263696 1245 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha_server 28746607 28745431 -1176 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha_server 28749104 28747960 -1144 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_client 2339463 2339372 -91 (-0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.2_rsa_aes_server 3872175 3872025 -150 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes_client 1719379 1719317 -62 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap384_chacha_server 32001630 32000490 -1140 (-0.00%) 0.20%
handshake_session_id_ring_1.3_rsa_chacha_server 31999030 31997920 -1110 (-0.00%) 0.20%
handshake_session_id_ring_1.3_ecdsap256_chacha_server 32001529 32000419 -1110 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes_server 30265065 30266098 1033 (0.00%) 0.20%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha_server 28748985 28748025 -960 (-0.00%) 0.20%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes_server 30265095 30266058 963 (0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 1147206 1147178 -28 (-0.00%) 1.58%
handshake_no_resume_ring_1.2_rsa_aes_client 2245908 2245854 -54 (-0.00%) 0.20%
handshake_session_id_ring_1.2_rsa_aes_server 4304018 4304108 90 (0.00%) 0.20%
handshake_tickets_ring_1.2_rsa_aes_server 4768742 4768832 90 (0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_server 7227653 7227525 -128 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_aes_server 11128600 11128472 -128 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_aes_client 34741881 34741696 -185 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_server 1297195 1297190 -5 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_rsa_chacha_server 11134362 11134334 -28 (-0.00%) 0.20%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 3097153 3097158 5 (0.00%) 0.58%
handshake_no_resume_ring_1.3_ecdsap384_chacha_server 7229603 7229593 -10 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap384_chacha_client 34743571 34743534 -37 (-0.00%) 0.20%
handshake_no_resume_ring_1.2_rsa_aes_server 11000205 11000197 -8 (-0.00%) 0.20%
handshake_no_resume_ring_1.3_ecdsap256_chacha_client 3305204 3305203 -1 (-0.00%) 0.30%
transfer_no_resume_ring_1.3_ecdsap384_aes_server 46302456 46302465 9 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_server 46198583 46198576 -7 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_server 80645596 80645587 -9 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha_client 92706874 92706866 -8 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_client 58136979 58136984 5 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_server 80642626 80642632 6 (0.00%) 0.20%
transfer_no_resume_ring_1.2_rsa_aes_client 58038541 58038537 -4 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_client 58147884 58147880 -4 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_client 58241591 58241587 -4 (-0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha_client 92702866 92702872 6 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_server 46407677 46407680 3 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_server 80548537 80548542 5 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_client 92700630 92700635 5 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_aes_client 58144125 58144122 -3 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_server 80553337 80553341 4 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_aes_server 46298941 46298943 2 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes_client 58180292 58180294 2 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap256_chacha_client 92673936 92673939 3 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_aes_server 46292204 46292203 -1 (-0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_client 92684846 92684848 2 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_server 46458942 46458943 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_server 46465925 46465926 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes_client 58237267 58237268 1 (0.00%) 0.20%
transfer_no_resume_ring_1.3_rsa_chacha_server 80541809 80541810 1 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes_server 46461267 46461267 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha_server 80650254 80650254 0 (0.00%) 0.20%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes_client 58239503 58239503 0 (0.00%) 0.20%
transfer_no_resume_ring_1.3_ecdsap384_chacha_client 92683006 92683006 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_session_id_aws_lc_rs_1.2_rsa_aes 1.65 ms 1.62 ms -0.04 ms (-2.18%) 2.22%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_aes 4.47 ms 4.56 ms 0.09 ms (1.93%) 7.05%
transfer_no_resume_ring_1.2_rsa_aes 5.85 ms 5.95 ms 0.10 ms (1.68%) 4.43%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_aes 5.17 ms 5.25 ms 0.09 ms (1.67%) 6.33%
transfer_no_resume_ring_1.3_rsa_aes 5.93 ms 6.03 ms 0.10 ms (1.62%) 5.32%
transfer_no_resume_ring_1.3_ecdsap256_aes 5.44 ms 5.53 ms 0.09 ms (1.60%) 5.40%
transfer_no_resume_aws_lc_rs_1.3_rsa_aes 5.15 ms 5.23 ms 0.08 ms (1.51%) 5.61%
transfer_no_resume_aws_lc_rs_1.2_rsa_aes 5.08 ms 5.15 ms 0.07 ms (1.44%) 5.88%
handshake_tickets_aws_lc_rs_1.2_rsa_aes 1.83 ms 1.81 ms -0.02 ms (-1.15%) 2.80%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 453.68 µs 458.42 µs 4.74 µs (1.04%) 5.20%
transfer_no_resume_ring_1.3_ecdsap384_aes 8.56 ms 8.65 ms 0.09 ms (1.01%) 3.38%
handshake_no_resume_aws_lc_rs_1.3_rsa_aes 1.12 ms 1.11 ms -0.01 ms (-0.95%) 2.37%
handshake_no_resume_ring_1.3_ecdsap256_chacha 474.26 µs 478.69 µs 4.43 µs (0.93%) 4.55%
handshake_no_resume_aws_lc_rs_1.3_ecdsap256_aes 457.00 µs 461.08 µs 4.08 µs (0.89%) 4.12%
handshake_no_resume_ring_1.3_ecdsap256_aes 481.54 µs 485.62 µs 4.08 µs (0.85%) 4.01%
handshake_session_id_aws_lc_rs_1.3_rsa_aes 5.04 ms 5.00 ms -0.04 ms (-0.79%) 1.48%
transfer_no_resume_ring_1.3_rsa_chacha 13.43 ms 13.54 ms 0.11 ms (0.79%) 1.92%
transfer_no_resume_ring_1.3_ecdsap256_chacha 12.94 ms 13.04 ms 0.10 ms (0.77%) 2.19%
handshake_no_resume_aws_lc_rs_1.3_rsa_chacha 1.12 ms 1.11 ms -0.01 ms (-0.75%) 1.52%
handshake_no_resume_aws_lc_rs_1.2_rsa_aes 1.09 ms 1.08 ms -0.01 ms (-0.70%) 4.12%
transfer_no_resume_aws_lc_rs_1.3_ecdsap256_chacha 12.94 ms 13.03 ms 0.09 ms (0.70%) 2.40%
handshake_session_id_aws_lc_rs_1.3_rsa_chacha 5.01 ms 4.98 ms -0.03 ms (-0.63%) 1.00%
transfer_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 13.63 ms 13.71 ms 0.08 ms (0.62%) 2.01%
transfer_no_resume_aws_lc_rs_1.3_rsa_chacha 13.62 ms 13.70 ms 0.08 ms (0.60%) 1.97%
transfer_no_resume_ring_1.3_ecdsap384_chacha 16.07 ms 16.16 ms 0.09 ms (0.57%) 1.73%
handshake_tickets_aws_lc_rs_1.3_rsa_aes 5.23 ms 5.20 ms -0.03 ms (-0.56%) 1.37%
handshake_no_resume_ring_1.3_rsa_aes 975.51 µs 980.54 µs 5.02 µs (0.51%) 2.01%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_aes 4.36 ms 4.34 ms -0.02 ms (-0.51%) 2.26%
handshake_tickets_aws_lc_rs_1.3_rsa_chacha 5.23 ms 5.20 ms -0.03 ms (-0.50%) 1.31%
handshake_no_resume_ring_1.2_rsa_aes 964.67 µs 969.31 µs 4.63 µs (0.48%) 1.96%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_aes 5.05 ms 5.03 ms -0.02 ms (-0.47%) 1.72%
handshake_no_resume_ring_1.3_rsa_chacha 976.37 µs 980.83 µs 4.46 µs (0.46%) 2.08%
handshake_session_id_aws_lc_rs_1.3_ecdsap384_chacha 5.00 ms 4.98 ms -0.02 ms (-0.37%) 1.58%
handshake_session_id_aws_lc_rs_1.3_ecdsap256_chacha 4.33 ms 4.32 ms -0.01 ms (-0.34%) 1.84%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_aes 5.25 ms 5.23 ms -0.02 ms (-0.33%) 1.25%
handshake_tickets_aws_lc_rs_1.3_ecdsap384_chacha 5.21 ms 5.20 ms -0.01 ms (-0.25%) 1.57%
handshake_session_id_ring_1.3_rsa_chacha 6.04 ms 6.03 ms -0.01 ms (-0.23%) 1.00%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_aes 4.56 ms 4.55 ms -0.01 ms (-0.22%) 1.45%
handshake_session_id_ring_1.3_ecdsap256_chacha 5.55 ms 5.54 ms -0.01 ms (-0.22%) 1.00%
handshake_session_id_ring_1.3_rsa_aes 6.41 ms 6.39 ms -0.01 ms (-0.20%) 1.00%
handshake_tickets_ring_1.3_ecdsap256_aes 5.82 ms 5.80 ms -0.01 ms (-0.19%) 1.00%
handshake_session_id_ring_1.3_ecdsap384_aes 9.02 ms 9.01 ms -0.02 ms (-0.18%) 1.00%
handshake_tickets_ring_1.2_rsa_aes 1.65 ms 1.65 ms 0.00 ms (0.18%) 1.88%
handshake_session_id_ring_1.3_ecdsap256_aes 5.91 ms 5.90 ms -0.01 ms (-0.18%) 1.00%
handshake_tickets_ring_1.3_rsa_aes 6.32 ms 6.31 ms -0.01 ms (-0.15%) 1.00%
handshake_tickets_aws_lc_rs_1.3_ecdsap256_chacha 4.53 ms 4.52 ms -0.01 ms (-0.14%) 1.59%
handshake_session_id_ring_1.3_ecdsap384_chacha 8.66 ms 8.65 ms -0.01 ms (-0.13%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_aes 8.94 ms 8.92 ms -0.01 ms (-0.12%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_chacha 3.59 ms 3.60 ms 0.00 ms (0.09%) 1.00%
handshake_no_resume_ring_1.3_ecdsap384_aes 3.60 ms 3.60 ms 0.00 ms (0.08%) 1.00%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_chacha 1.14 ms 1.14 ms 0.00 ms (0.08%) 1.22%
handshake_no_resume_aws_lc_rs_1.3_ecdsap384_aes 1.15 ms 1.15 ms -0.00 ms (-0.08%) 1.78%
handshake_session_id_ring_1.2_rsa_aes 1.58 ms 1.58 ms 0.00 ms (0.05%) 1.28%
handshake_tickets_ring_1.3_ecdsap256_chacha 5.60 ms 5.60 ms 0.00 ms (0.03%) 1.00%
handshake_tickets_ring_1.3_ecdsap384_chacha 8.71 ms 8.71 ms 0.00 ms (0.01%) 1.00%
handshake_tickets_ring_1.3_rsa_chacha 6.09 ms 6.09 ms 0.00 ms (0.01%) 1.04%

Additional information

Historical results

Checkout details:

Copy link

codecov bot commented Mar 7, 2025

Codecov Report

Attention: Patch coverage is 91.66667% with 2 lines in your changes missing coverage. Please review.

Project coverage is 94.89%. Comparing base (5860d10) to head (24652d0).
Report is 25 commits behind head on main.

Files with missing lines Patch % Lines
rustls/src/crypto/cipher.rs 93.75% 1 Missing ⚠️
rustls/src/tls13/key_schedule.rs 75.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2369      +/-   ##
==========================================
- Coverage   94.90%   94.89%   -0.01%     
==========================================
  Files         103      103              
  Lines       24551    24548       -3     
==========================================
- Hits        23299    23294       -5     
- Misses       1252     1254       +2     

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

Previously this was constructable, but only for 256-bit keys
via `From<[u8; 32]>`.

Instead of just publicising `AeadKey::new`, recast the type
as an enum containing variants for the two usual symmetric key
lengths.  Unfortunately for semver reasons this needs to be
wrapped in the original struct type.
@ctz ctz force-pushed the jbp-aeadkey-ctor branch from ffefd4b to 24652d0 Compare March 10, 2025 09:00
@djc
Copy link
Member

djc commented Mar 10, 2025

In an experimental project I'm working on I included an Unreachable variant in my Error type so that I can yield those instead of calling unreachable!(). Do you think that would be a good strategy for this 1.2 key block splitting stuff? The unwrap() stuff is not ideal... (To be fair, fake Result types are also not great...)

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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy