You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Things needing System.Net.Security.Native may not work on Bionic #87665
We're not building System.Net.Security.Native when targeting Bionic, but it also looks like the managed part is not configured in a way that would avoid calling into this library.
Actually, this is a bit tricky since there's no linux-bionic TFM, so we cannot easily make a special version of System.Net.Security assembly. My current plan is to consolidate all the "offending" code into that single assembly (prerequisities: #86948, #86956). Then we can decide what to do next. One option is to disable the GSSAPI (/System.Net.Security.Native) code paths at runtime. In fact, I wanted to offer an option to use the managed NTLM on macOS, so this would be very similar change.
Maybe handle legacy NTLM in managed code and leave Negotiate to GSSAPI...?
There are the multiple possible combinations:
Use GSSAPI for NTLM, Kerberos, and Negotiate
Use managed NTLM and Negotiate, no Kerberos
Use GSSAPI for Kerberos, managed for NTLM and Negotiate (wrapping both the Kerberos and NTLM)
Use GSSAPI for Kerberos and Negotiate, managed NTLM only when asked specifically for NTLM
Today we use option 1) on all platforms except Android and tvOS, which are on option 2).
I'd like to add an implementation of 3) with a configuration switch, and runtime fallback to 2) if GSSAPI is not available. I don't have a use case for option 4) but it would be generally easier to implement than option 3) if there's a strong desire or preference.
Are there any instruction on how to run the NativeAOT tests on Linux Bionic? I found the scripts for the Mono legs but not NativeAOT.
I don't think anyone ever ran these on NativeAOT. This issue tracks the Mono test exclusion that has been there since the beginning. The problem was found during NativeAOT bringup, but not because we tried to execute the test. We don't have budget to set up regular NativeAOT testing in 8.0 since this is all experimental there.
Activity
wfurt commentedon Jun 16, 2023
Is this primarily about TLS? NegotiateStream will be probably partially fixed by #86948.
filipnavara commentedon Jun 16, 2023
There's no GSSAPI on linux-bionic. We should get it to the same plan as Android (managed NTLM).
filipnavara commentedon Jun 16, 2023
Actually, this is a bit tricky since there's no linux-bionic TFM, so we cannot easily make a special version of System.Net.Security assembly. My current plan is to consolidate all the "offending" code into that single assembly (prerequisities: #86948, #86956). Then we can decide what to do next. One option is to disable the GSSAPI (/System.Net.Security.Native) code paths at runtime. In fact, I wanted to offer an option to use the managed NTLM on macOS, so this would be very similar change.
wfurt commentedon Jun 16, 2023
May also help with #87568. GSSAPI exist for Kerberos but not for NTLM. Maybe handle legacy NTLM in managed code and leave Negotiate to GSSAPI...?
filipnavara commentedon Jun 16, 2023
There are the multiple possible combinations:
Today we use option 1) on all platforms except Android and tvOS, which are on option 2).
I'd like to add an implementation of 3) with a configuration switch, and runtime fallback to 2) if GSSAPI is not available. I don't have a use case for option 4) but it would be generally easier to implement than option 3) if there's a strong desire or preference.
wfurt commentedon Jun 19, 2023
Can we get 3) working? I was thinking originally about 4) as it would be simple split. And NTLM would work only for legacy.
filipnavara commentedon Jun 19, 2023
I think we can. I may have even done that in one the stale branches last year...
filipnavara commentedon Jul 18, 2023
We likely still need to fix the P/Invokes in tests but product-wise this should be fixed.
2 remaining items
filipnavara commentedon Jul 21, 2023
Are there any instruction on how to run the NativeAOT tests on Linux Bionic? I found the scripts for the Mono legs but not NativeAOT.
MichalStrehovsky commentedon Jul 21, 2023
I don't think anyone ever ran these on NativeAOT. This issue tracks the Mono test exclusion that has been there since the beginning. The problem was found during NativeAOT bringup, but not because we tried to execute the test. We don't have budget to set up regular NativeAOT testing in 8.0 since this is all experimental there.
wfurt commentedon Nov 28, 2023
would this be mostly fixed by #95274?
rzikm commentedon Nov 28, 2023
Should be. I added some tests which explicitly enable NTLM tests on bionic tfm