通过


从 macOS 中删除 DSA

从 .NET 11 开始,macOS 不再支持数字签名算法 (DSA)。 此删除仅影响“有限域”DSA。 椭圆曲线 DSA (EC-DSA) 不受影响。 尝试使用DSADSACryptoServiceProvider或其他与DSA交互的API会在macOS上抛出PlatformNotSupportedException

已引入的版本

.NET 11 预览版 1

以前的行为

以前,DSA 算法及其支持类型、DSADSACryptoServiceProvider和带有 DSA 密钥的 X.509 证书能够在 macOS 上运行。

新行为

DSA 在 macOS 上不再正常工作。 尝试使用DSADSACryptoServiceProvider或其他与 DSA 交互的 API 会引发PlatformNotSupportedException

破坏性变更的类型

此更改为行为更改

更改原因

macOS 上的 .NET 依赖于操作系统提供 DSA 的实现。 Apple 通过现已过时的名为 SecurityTransforms 的库执行此作,无需更换。 Apple 提供的实现在功能上也受到限制。 它仅支持使用 SHA-1 的 DSA-1024,该 DSA-1 被视为弱。 此外,它从未支持生成 DSA 密钥。

iOS、tvOS 和 MacCatalyst 从未支持 DSA。

从 DSA 算法迁移,并使用新式加密数字签名算法,例如 EC-DSA(椭圆曲线 DSA)。

受影响的 API

此外,任何与 DSA 密钥交互的 API 都会受到影响。