Skip to content

Conversation

@sfleen
Copy link
Collaborator

@sfleen sfleen commented Jul 29, 2025

The broader ecosystem has mostly moved to aws-lc-rs as the primary rustls backend, and we should follow suit. This will also simplify the maintenance of the proxy's TLS implementation in the long term.

Child to #4043, which changed the default backend to aws-lc-rs.

There will need to be some refactoring to clean up the rustls provider interfaces, but that will come in follow-ups.

@sfleen sfleen requested a review from a team as a code owner July 29, 2025 16:12
@sfleen sfleen force-pushed the sfleen/no-ring branch 3 times, most recently from 35575bf to 4c7a8ba Compare August 1, 2025 19:18
@cratelyn cratelyn self-requested a review August 4, 2025 15:10
Copy link
Member

@cratelyn cratelyn left a comment

Choose a reason for hiding this comment

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

✔️ it seems that builds aren't working right now, likely related to the conditional compilation changes made to our meshtls crates in this diff.

i'm content with this change, broadly speaking, though! ✔️

Copy link
Member

@olix0r olix0r left a comment

Choose a reason for hiding this comment

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

This PR description is a little misleading: it does more than remove ring, it changes the default crypto backend. This is probably: chore(meshtls-rustls): use aws-lc as the default crypto backend (not a user-facing feature... etc)

To that end, is it difficult to split this PR into two discrete steps:

  1. Enable aws-lc by default
  2. Remove ring

In general this would be a preferable path. I can see how that might make for some intermediate complexity, though; so this is just a question...

@sfleen sfleen changed the title feat(tls): Remove ring as crypto backend chore(tls): Remove ring as crypto backend Aug 5, 2025
@sfleen
Copy link
Collaborator Author

sfleen commented Aug 5, 2025

It's not as bad as I originally thought to split out the default change to aws-lc-rs from the removal of ring, I've done the default change in #4043 and I'll update this to be purely a removal of ring (that we can decide to defer to late if need be).

@sfleen sfleen requested a review from olix0r August 5, 2025 19:08
@sfleen sfleen changed the title chore(tls): Remove ring as crypto backend chore(tls): Remove ring as rustls crypto backend Aug 5, 2025
olix0r pushed a commit that referenced this pull request Aug 5, 2025
The broader ecosystem has mostly moved to `aws-lc-rs` as the primary `rustls` backend, and we should follow suit. This will also simplify the maintenance of the proxy's TLS implementation in the long term.

This requires some extra configuration for successful cross-compilation, ideally we can remove this extra configuration once linkerd/dev v48 is available.

This doesn't remove `ring` as a crypto backend, that can come in a follow-up at #4029
@sfleen sfleen force-pushed the sfleen/no-ring branch 2 times, most recently from 8083851 to d160678 Compare August 7, 2025 14:08
The broader ecosystem has mostly moved to aws-lc-rs as the primary rustls backend, and we should follow suit. This will also simplify the maintenance of the proxy's TLS implementation in the long term.

There will need to be some refactoring to clean up the rustls provider interfaces, but that will come in follow-ups.

Signed-off-by: Scott Fleener <[email protected]>
@sfleen sfleen merged commit 2156c3d into main Aug 13, 2025
17 checks passed
@sfleen sfleen deleted the sfleen/no-ring branch August 13, 2025 17:13
@cratelyn
Copy link
Member

🎉 so excited to see this land!

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.

4 participants