Prevent resumption between "incompatible" clients#2361
Conversation
Benchmark resultsInstruction countsSignificant differencesClick to expand
Other differencesClick to expand
Wall-timeSignificant differencesClick to expand
Other differencesClick to expand
Additional informationCheckout details:
|
ac0df36 to
426d6bf
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2361 +/- ##
==========================================
- Coverage 94.90% 94.78% -0.12%
==========================================
Files 103 103
Lines 24551 24641 +90
==========================================
+ Hits 23299 23357 +58
- Misses 1252 1284 +32 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
What about the server? Is there something that prevents similar incompatible resumption issues across server configs? |
Yeah I'd probably do the same for |
"Compatible" here means they have ~interchangeable security, which means they have the same server certificate verifier and same potentially-offered client credentials. "Same" is defined by `Arc` equality, which means a rustls user wishing to arrange for multiple `ClientConfig`s to share a `resumption` _also_ now need to share the `client_auth_cert_resolver` and `verifier`. (The way to do this is to clone-and-edit the original config, or keep hold of the verifier and insert it using the `dangerous().set_certificate_verifier()`.)
426d6bf to
42c1d0a
Compare
|
(Plan to address the coverage gaps here shortly.) |
"Compatible" here means they have ~interchangeable security, which means they have the same server certificate verifier and same potentially-offered client credentials.
"Same" is defined by
Arcequality, which means a rustls user wishing to arrange for multipleClientConfigs to share aresumptionalso now need to share theclient_auth_cert_resolverandverifier. A non-dangerousfunction is provided which does this, and also provides a convenient place to document the problem we are solving here.If we think this is a reasonably-shaped solution to this problem, I will do similar for servers.
fixes #2284