Skip to content

Things needing System.Net.Security.Native may not work on Bionic #87665

Closed

Description

@MichalStrehovsky

#87595 (comment)

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.

Cc @directhex

Activity

  1. ghost added
    untriagedNew issue has not been triaged by the area owner
    on Jun 16, 2023
  2. wfurt commented on Jun 16, 2023

    @wfurt
    Member

    Is this primarily about TLS? NegotiateStream will be probably partially fixed by #86948.

  3. filipnavara commented on Jun 16, 2023

    @filipnavara
    Member

    There's no GSSAPI on linux-bionic. We should get it to the same plan as Android (managed NTLM).

  4. self-assigned this
    on Jun 16, 2023
  5. filipnavara commented on Jun 16, 2023

    @filipnavara
    Member

    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.

  6. wfurt commented on Jun 16, 2023

    @wfurt
    Member

    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...?

  7. filipnavara commented on Jun 16, 2023

    @filipnavara
    Member

    Maybe handle legacy NTLM in managed code and leave Negotiate to GSSAPI...?

    There are the multiple possible combinations:

    1. Use GSSAPI for NTLM, Kerberos, and Negotiate
    2. Use managed NTLM and Negotiate, no Kerberos
    3. Use GSSAPI for Kerberos, managed for NTLM and Negotiate (wrapping both the Kerberos and NTLM)
    4. 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.

  8. removed
    untriagedNew issue has not been triaged by the area owner
    on Jun 16, 2023
  9. wfurt commented on Jun 19, 2023

    @wfurt
    Member

    Can we get 3) working? I was thinking originally about 4) as it would be simple split. And NTLM would work only for legacy.

  10. filipnavara commented on Jun 19, 2023

    @filipnavara
    Member

    Can we get 3) working?

    I think we can. I may have even done that in one the stale branches last year...

  11. filipnavara commented on Jul 18, 2023

    @filipnavara
    Member

    We likely still need to fix the P/Invokes in tests but product-wise this should be fixed.

  12. 2 remaining items

  13. ghost added
    untriagedNew issue has not been triaged by the area owner
    on Jul 20, 2023
  14. added this to the 8.0.0 milestone on Jul 20, 2023
  15. ghost removed
    untriagedNew issue has not been triaged by the area owner
    on Jul 20, 2023
  16. filipnavara commented on Jul 21, 2023

    @filipnavara
    Member

    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.

  17. MichalStrehovsky commented on Jul 21, 2023

    @MichalStrehovsky
    MemberAuthor

    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.

  18. modified the milestones: 8.0.0, 9.0.0 on Nov 28, 2023
  19. wfurt commented on Nov 28, 2023

    @wfurt
    Member

    would this be mostly fixed by #95274?

  20. rzikm commented on Nov 28, 2023

    @rzikm
    Member

    Should be. I added some tests which explicitly enable NTLM tests on bionic tfm

  21. ghost added
    in-prThere is an active PR which will close this issue when it is merged
    on Nov 28, 2023
  22. ghost removed
    in-prThere is an active PR which will close this issue when it is merged
    on Nov 29, 2023
  23. locked and limited conversation to collaborators on Dec 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions