Pluggable Crypto / Update reqwest 0.13#707
Conversation
|
Ping? Would be nice to avoid having duplicate reqwest versions in downstream projects. |
|
I've given this another rebase, I think it's more blocked on review/maintainer capacity though? |
|
Maintainers, could someone take a look? Would be nice to avoid duplicate dependencies in downstream applications that are up to date with the rest of the ecosystem (and it's been 5 months since reqwest 0.13 was released). |
Tpt
left a comment
There was a problem hiding this comment.
Not a maintainer but I would love to see this MR get merged.
I allowed myself 3 suggestions.
| - name: Check no crypto crates | ||
| run: | ||
| cargo tree --features gcp-no-crypto,aws-no-crypto,azure-no-crypto,http-no-crypto \ | ||
| | grep -qE '\b(ring|openssl)\b' && { echo "❌ disallowed crate found"; exit 1; } || echo "✅ no disallowed crates" |
There was a problem hiding this comment.
I guess this test should also add aws-lc-rs?
| | grep -qE '\b(ring|openssl)\b' && { echo "❌ disallowed crate found"; exit 1; } || echo "✅ no disallowed crates" | |
| | grep -qE '\b(ring|openssl|aws-lc-rs)\b' && { echo "❌ disallowed crate found"; exit 1; } || echo "✅ no disallowed crates" |
| "user_agent" => Ok(Self::UserAgent), | ||
| _ => Err(super::Error::UnknownConfigurationKey { | ||
| store: "HTTP", | ||
| store: "http-no-crypto", |
There was a problem hiding this comment.
find/replace error?
| store: "http-no-crypto", | |
| store: "HTTP", |
| Ok(_) => Err(Error::MissingKey), | ||
| Err(source) => Err(Error::ReadPem { source }), | ||
| } | ||
| #[cfg(feature = "aws-lc-rs")] |
There was a problem hiding this comment.
hyper-nit (please ignore): moving the cfg switch inside of the function might help ensuring the signature does not diverge between aws-lc and rustls (same for the other functions)
NOTE: this is a rebased version of #585
Which issue does this PR close?
Closes #413.
Rationale for this change
What changes are included in this PR?
Adds the ability to compile object_store without a dependency on ring, and instead use aws-lc-rs or a user-provided crypto implementation. Also changes the default to aws-lc-rs, which the ecosystem seems to be moving toward as a default.
Also upgrades
reqwestto 0.13, and makes it possible to configure reqwest with any TLS backend by selecting a-no-cryptofeature.Are there any user-facing changes?