Improve interoperability with Conscrypt #2624
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The updated tests fail without the compatability changes to SslSocketFactories. See google/conscrypt#1033 for context.
==COMMIT_MSG==
Improve interoperability with Conscrypt
==COMMIT_MSG==
Q: Why don't we overload the methods which take a trustmanager to also take a provider?
A: That would fix this specific issue, however there's no guarantee that all Providers (even Conscrypt in some configurations) do in fact provide a TrustManager implementation. We would have to try the given provider, then fall back, which may or may not be what is expected. This approach should be more generally compatible because some public methods take an existing array of TrustManagers.
There is some risk that Conscrypt is used with Conscrypt trustmanagers, but those are already wrapped in a way that we don't understand. It's unlikely, but worth noting.