Uh oh!
There was an error while loading. Please reload this page.
Implement ChaCha20Poly1305 with CryptoKit on macOS - #76317
Conversation
ghost
commented
Sep 28, 2022
Tagging subscribers to this area: @dotnet/area-system-security, @vcsjones Issue DetailsThis implements ChaCha20Poly1305 on macOS using CryptoKit instead of OpenSSL. Since .NET 7 raised the minimum target to macOS 10.15, we don't need to worry about the Swift runtime availability and can link against the system runtime, which makes this more feasible where before it was not. This currently does not add support for Apple platforms that are not macOS (i.e. iOS, tvOS) as there are additional linker challenges there that need to be solved. ChaCha20Poly1305 on macOS is the "easy" one as CryptoKit and OpenSSL have 1:1 functionality. AES-GCM will be done as a follow up, as that work is more complicated and will need to continue to fall back to OpenSSL for some circumstances. This is currently blocked on #75160. /cc @filipnavara
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
filipnavara
commented
Sep 28, 2022
Thanks for reviving this! |
Co-authored-by: Filip Navara <filip.navara@gmail.com>
Co-authored-by: Filip Navara <filip.navara@gmail.com>
5be9b3f to
5f578baComparevcsjones
commented
Sep 30, 2022
It's green, so, I think this is ready for review. |
bartonjs
commented
Sep 30, 2022
@akoeplinger You got volunteered to me as someone who might have opinions on the cmake portion of this change. |
akoeplinger
commented
Sep 30, 2022
akoeplinger
left a comment
There was a problem hiding this comment.
CMake parts look good to me.
Uh oh!
There was an error while loading. Please reload this page.

This implements ChaCha20Poly1305 on macOS using CryptoKit instead of OpenSSL. Since .NET 7 raised the minimum target to macOS 10.15, we don't need to worry about the Swift runtime availability and can link against the system runtime, which makes this more feasible where before it was not.
This currently does not add support for Apple platforms that are not macOS (i.e. iOS, tvOS) as there are additional linker challenges there that need to be solved.
ChaCha20Poly1305 on macOS is the "easy" one as CryptoKit and OpenSSL have 1:1 functionality. AES-GCM will be done as a follow up, as that work is more complicated and will need to continue to fall back to OpenSSL for some circumstances. But this intends to set the foundation for working with CryptoKit.
Contributes to #52482
/cc @filipnavara