DSA удалена из macOS

Начиная с .NET 11 алгоритм цифровой подписи (DSA) больше не поддерживается в macOS. Это удаление влияет только на конечное поле DSA. Эллиптическая кривая DSA (EC-DSA) не затронута. Попытки использовать DSA, DSACryptoServiceProvider или другие API, взаимодействующие с DSA, выбрасывают PlatformNotSupportedException в macOS.

Представленная версия

.NET 11( предварительная версия 1)

Предыдущее поведение

Ранее алгоритм DSA и его вспомогательные типы, DSADSACryptoServiceProviderи сертификаты X.509 с ключами DSA функционировали в macOS.

Новое поведение

DSA больше не работает в macOS. Попытки использовать DSA, или другие API, такие как DSACryptoServiceProvider, которые взаимодействуют с DSA, вызывают исключение типа PlatformNotSupportedException.

Тип разрушающего изменения

Это изменение поведения.

Причина изменения

.NET в macOS использует операционную систему для предоставления реализации DSA. Apple сделала это с помощью устаревшей библиотеки под названием SecurityTransforms без замены. Реализация, предложенная Apple, также была ограничена по функциональности. Она поддерживает только DSA-1024 с SHA-1, которая считается слабой. Кроме того, он никогда не поддерживает создание ключей DSA.

IOS, tvOS и MacCatalyst никогда не поддерживает DSA.

Перейдите от алгоритма DSA и используйте современный алгоритм криптографической цифровой подписи, например EC-DSA (Elliptic Curve DSA).

Затронутые API

Кроме того, затрагиваются все API, взаимодействующие с ключами DSA.