-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Implement TLS1.3 delayed client cert requests on Linux #64268
Conversation
Tagging subscribers to this area: @dotnet/ncl, @vcsjones Issue DetailsFixes #55757 This PR adds the The changes in this PR depend on changes made in #63945, so this PR will need to stay in draft state until that one is merged. The changes also should contribute to #58927, I was able to reproduce the hang in
|
src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.OpenSsl.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
looks like good start. I left few early comments
src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.OpenSsl.cs
Outdated
Show resolved
Hide resolved
src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.OpenSsl.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs
Outdated
Show resolved
Hide resolved
src/native/libs/System.Security.Cryptography.Native/configure.cmake
Outdated
Show resolved
Hide resolved
src/native/libs/System.Security.Cryptography.Native/opensslshim.h
Outdated
Show resolved
Hide resolved
709984b
to
6f64c53
Compare
src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamNetworkStreamTest.cs
Outdated
Show resolved
Hide resolved
Looks like we have test failures on Ubuntu 18.04, possibly becuase we are calling CI Log
|
0698b85
to
0996fcd
Compare
/azp run runtime-libraries-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
CI failures are unrelated:
|
src/libraries/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs
Show resolved
Hide resolved
src/native/libs/System.Security.Cryptography.Native/opensslshim.h
Outdated
Show resolved
Hide resolved
src/libraries/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.OpenSsl.cs
Outdated
Show resolved
Hide resolved
int SSL_verify_client_post_handshake(SSL *s); | ||
void SSL_set_post_handshake_auth(SSL *s, int val); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If no special #if
is required for these prototypes, they should be sorted alphabetically in this block.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be fixed now
I think the code is ready now for (hopefully last) round of reviews |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The SslStream part look good to me. I'll deferrer final judgement on the PAL to @bartonjs.
Failing test is #64964
|
/azp run runtime-libraries-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
Fix native shims on older OpenSSL versions Remove unneeded hacks Remove redundant PlatformSpecificAttribute Merge CryptoNative_SslVerifyClientPostHandshake to CryptoNative_SslRenegotiate Reenable test on Windows 11 Revert unwanted changes Advertise post-handshake auth if client provided a cert Fix compilation against older OpenSSL versions Fix trailing whitespace Fix compilation on older versions Add missing define
5e2225d
to
72eb1bb
Compare
Fixes #55757
This PR adds the
NegotiateClientCertificateAsync
support for TLS1.3 on LinuxThe changes in this PR depend on changes made in #63945, so this PR will need to stay in draft state until that one is merged.
https://github.com/dotnet/runtime/pull/64268/files#diff-5d47fb42fd96c09e13b52482e126d7a282513646feb5f672108dbbd7dd0d5f4aR543-R545
The changes also should contribute to #58927, I was able to reproduce the hang in
SslStream_NegotiateClientCertificateAsyncTls13_Succeeds
when using OpenSSL and Linux.https://github.com/dotnet/runtime/pull/64268/files#diff-1d28e92dd65ace08e351f991ffd5da78f606a6bc4f212160df97d5012bd7cdc9R577-R579