-
Notifications
You must be signed in to change notification settings - Fork 249
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
Please support using aws-lc-rs in place of ring #1050
Comments
We plan to add this at some point in the future, but I don't have a timeline for when this will be supported with this sdk |
@jmklix Would that timeline be affected if I wrote and submitted a patch implementing this? (If so, which approach would you prefer? Switch over completely, or use a feature flag?) |
Hey Josh, We've talked about switching over to it as the default, but there has been some disagreement over that due to the requirement that cmake be installed for it to compile (and potentially even Go when FIPS is needed). The ideal path forward would be to remove these requirements and make it default, but that's probably a significant amount of work on the aws-lc-rs side of things. Our general stance is to not use cargo features for switching TLS implementations, so doing it that way is a no-go. You should be able to work around this for now by swapping out the |
I get that. It looks like aws/aws-lc-rs#297 tracks that for aws-lc-rs, though I don't see a corresponding issue tracking that for aws-lc itself. That does seem like the ideal solution, if possible.
I've found switching out Is that path (disabling those features) tested in CI these days? |
This limitation is being worked on: aws/aws-lc-rs#317 |
Yeah, there is a CI test for it. We also overhauled the way that HttpClients are configured, so I think that it is (mostly) a much improved experience. The one remaining issue is configuring a different HttpClient for credential providers. |
Another detail we'd probably want to iron out—I think we'd probably need to create some sort of |
Now that aws/aws-lc-rs#317 is merged and released, is it possible to reevaluate this issue please? Thanks. |
I'm working on a guide for this. Here's an early version: Developer Guide: Hyper 1.0The AWS SDKs for Rust were developed at a time before Our new client is a drop-in replacement for the old one and it comes in three variants based on the crypto implementation underlying TLS:
Once one of these implementations is chosen, you’re ready to go. Creating a Hyper 1.0 client and using it with the SDKClients with
If you encounter problems when using the Hyper 1.0 clientAdapting the SDKs to work with this new client has not been without issue, and we expect more bugs to be revealed as the new client enters wider use. As such, we do not currently recommend using the new client for critical workloads. However, the more people that try out the new client, the quicker we can identify and resolve those issues. To anyone that is willing to be an early adopter, the SDK team thanks you. If you experience issues or if you have other comments, please share them here. |
|
Hello @drauschenbach! Our team been been working on fixing When you have a chance, would you mind submitted an issue to our repo relating to which platforms you have trouble building for? https://github.com/aws/aws-lc-rs/issues Thanks for your feedback! |
Describe the feature
I'd like to be able to use aws-lc-rs in place of ring, throughout my dependency tree. I'd love to be able to do so with aws-sdk-rust as well.
Use Case
aws-lc-rs is faster. (EDIT: turns out it doesn't have a more compatible license, and still has code under the OpenSSL license.)
Proposed Solution
I'd propose either:
Switching to aws-lc-rs would be the simplest, and would be in line with the general aws-sdk-rust policy of not controlling functionality via feature flags.
Using a feature flag would allow people who prefer ring to continue using it.
I'd be happy to implement either solution.
Other Information
#966 requested support for the FIPS mode specifically, but that issue wasn't accepted because the FIPS mode requires Go to build.
However, the non-FIPS mode does not require Go. It does require cmake, but that seems somewhat less onerous. Nonetheless, if depending on cmake is a showstopper for this, I'd be happy to add a feature-flag-based solution, so that people who prefer to keep using ring can do so.
Acknowledgements
A note for the community
Community Note
The text was updated successfully, but these errors were encountered: