avoid some allocations during TLS handshake #97348
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.
this is follow-up #87874 and it contributes to #68951
The trivial change is SslStreamPal.Windows.cs. Somehow during the re-factoring I failed to notice that the flag is not set true by default any longer as it was when I started ;(
I found that when running final tests @davidfowl asked me to.
While running that I also found one more opportunity: When we query
RemoteCertificate
we always create safe handle and if there is no certificate (common for servers) then we set the handle to Invalid. This change shuffles the PAL code a little bit so we allocateSafeFreeCertContext
only if there is certificate to wrap.With that the allocations looks like this for 100 rounds on server: