Skip to content

ChaCha20Poly1305.IsSupported always returns false on non-Windows #52482

Closed

Description

@GrabYourPitchforks

Follow-up to #45130. We checked in an implementation of ChaCha20Poly1305 for Windows, but we don't have one for Mac / Linux scenarios.

This work item tracks calling in to the existing CryptoKit / OpenSSL implementation for Mac / Linux scenarios so that we don't forget to do this work.

Implementations needed for:

Marked up for grabs.

Activity

  1. ghost added
    untriagedNew issue has not been triaged by the area owner
    on May 7, 2021
  2. added this to the 6.0.0 milestone on May 7, 2021
  3. jkoritzinsky commented on May 7, 2021

    @jkoritzinsky
    Member

    It looks like ChaCha20Poly1305 is also available on Android for newer API levels, so it might be worth considering conditionally providing an implementation there as well.

  4. vcsjones commented on May 8, 2021

    @vcsjones
    Member

    @bartonjs what is your feeling on waiting for OpenSSL 3.0 work to be done? Do you think much or any work in this area would be impacted by it?

  5. bartonjs commented on May 9, 2021

    @bartonjs
    Member

    what is your feeling on waiting for OpenSSL 3.0 work to be done? Do you think much or any work in this area would be impacted by it?

    No concerns. Since we now work with OSSL3 using both direct and portable builds everything else is just preemptive cleanup (e.g. get wholly onto EVP_PKEY), which is why the effort got slightly backburnered.

  6. filipnavara commented on May 9, 2021

    @filipnavara
    Member

    I started a proof of concept of the CryptoKit part (https://github.com/dotnet/runtime/compare/main...filipnavara:cryptokit?expand=1) but it's huge fight with CMake and Apple tools so far.

    image

  7. jkoritzinsky commented on May 9, 2021

    @jkoritzinsky
    Member

    @filipnavara instead of discovering the Swift toolchain on your own, you can try adding an enable_language(Swift) line in the CMakeLists.txt file. I think we use a new enough CMake on Mac that Swift support is built-in.

  8. filipnavara commented on May 9, 2021

    @filipnavara
    Member

    @jkoritzinsky Unfortunately it's only supported on Ninja and Xcode, not on Unix makefiles. Even on Ninja it doesn't quite mix well with other languages.

    I am still evaluating how to improve the situation for static libraries consumed by apphost and Xamarin.

  9. jkoritzinsky commented on May 9, 2021

    @jkoritzinsky
    Member

    That sucks. Can you make sure to include a comment in the file that discovers the Swift tool chain explaining that so we know when looking back why we manually discover?

  10. filipnavara commented on May 9, 2021

    @filipnavara
    Member

    Sure. I don't even know if I will be able to make it work reliably for all use cases yet. I am trying different approaches and this was just first one that got far enough to produce some visible results.

  11. GrabYourPitchforks commented on May 9, 2021

    @GrabYourPitchforks
    MemberAuthor

    I updated the issue text with a bunch of check boxes for the various OSes. That way we can do the PRs piecemeal if that'd be easier.

    If I missed any OS please feel free to update the issue text directly.

  12. vcsjones commented on May 9, 2021

    @vcsjones
    Member

    @filipnavara you've gotten much further than I have, I think you found my branch (there are a couple) so feel free to take any scraps of code there that are helpful.

    OpenSSL seems straight forward, so I will tackle that this afternoon.

  13. 4 remaining items

  14. vcsjones commented on May 14, 2021

    @vcsjones
    Member

    In an effort to learn something new, I thought I would give the Android implementation a shot. Looks like there are at least some existing patterns I can follow for lighting-up functionality depending on the API Level (28+ for ChaCha20Poly1305).

  15. jkoritzinsky commented on May 14, 2021

    @jkoritzinsky
    Member

    If you have any questions on it, let me know and I can probably help out.

  16. modified the milestones: 6.0.0, Future on Jul 2, 2021
  17. removed
    untriagedNew issue has not been triaged by the area owner
    on Jul 2, 2021
  18. iSazonov commented on Oct 25, 2022

    @iSazonov
    Contributor

    It seems the issue can be closed.

  19. vcsjones commented on Oct 25, 2022

    @vcsjones
    Member

    This is still tracking iOS/tvOS support for ChaCha20Poly1305 which currently has some blockers in to implement.

  20. PiotrKowalski93 commented on Jun 19, 2023

    @PiotrKowalski93

    I have this problem on Window 10.
    Using VisualStudio 2022, .Net 6

    Below are details:

    image

    image

    image

    @jkoritzinsky

  21. akoeplinger commented on Jun 19, 2023

    @akoeplinger
    Member

    @PiotrKowalski93 your Windows version is too old, the algorithm is only supported in 10.0.20142 and later (see #45130)

  22. modified the milestones: Future, 9.0.0 on Dec 12, 2023
  23. removed
    help wanted[up-for-grabs] Good issue for external contributors
    on Dec 12, 2023
  24. added
    in-prThere is an active PR which will close this issue when it is merged
    on Jul 31, 2024
  25. locked and limited conversation to collaborators on Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-System.Securityin-prThere is an active PR which will close this issue when it is merged

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions