Edit

Share via


DSA removed from macOS

Starting in .NET 11, the Digital Signature Algorithm (DSA) is no longer supported on macOS. This removal only impacts "finite field" DSA. Elliptic Curve DSA (EC-DSA) isn't affected. Attempts to use DSA, DSACryptoServiceProvider, or other APIs that interact with DSA throw a PlatformNotSupportedException on macOS.

Version introduced

.NET 11 Preview 1

Previous behavior

Previously, the DSA algorithm and its supporting types, DSA, DSACryptoServiceProvider, and X.509 certificates with DSA keys functioned on macOS.

New behavior

DSA is no longer functional on macOS. Attempts to use DSA, DSACryptoServiceProvider, or other APIs that interact with DSA throw a PlatformNotSupportedException.

Type of breaking change

This change is a behavioral change.

Reason for change

.NET on macOS relies on the operating system to provide an implementation of DSA. Apple did this through a now obsolete library called SecurityTransforms, with no replacement. The implementation that Apple did offer was also limited in functionality. It only supported DSA-1024 with SHA-1, which is considered weak. Further, it never supported generating DSA keys.

iOS, tvOS, and MacCatalyst never supported DSA.

Migrate away from the DSA algorithm and use a modern cryptographic digital signature algorithm such as EC-DSA (Elliptic Curve DSA).

Affected APIs

Additionally, any APIs that interact with DSA keys are affected.