Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начиная с .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
- DSA.Create
- Конструкторы DSACryptoServiceProvider
- DSACertificateExtensions.GetDSAPrivateKey(X509Certificate2)
- DSACertificateExtensions.GetDSAPublicKey(X509Certificate2)
- DSACertificateExtensions.CopyWithPrivateKey(X509Certificate2, DSA)
Кроме того, затрагиваются все API, взаимодействующие с ключами DSA.