Dela via


DSA har tagits bort från macOS

Från och med .NET 11 stöds inte längre DSA (Digital Signature Algorithm) på macOS. Den här borttagningen påverkar endast DSA för "ändliga fält". Elliptisk kurva DSA (EC-DSA) påverkas inte. Försöker använda DSA, DSACryptoServiceProvidereller andra API:er som interagerar med DSA och genererar en PlatformNotSupportedException på macOS.

Version lanserad

.NET 11 Förhandsversion 1

Tidigare beteende

Tidigare fungerade DSA-algoritmen och dess stödtyper, DSA, DSACryptoServiceProvideroch X.509-certifikat med DSA-nycklar på macOS.

Nytt beteende

DSA fungerar inte längre på macOS. Försök att använda DSA, DSACryptoServiceProvidereller andra API:er som interagerar med DSA genererar en PlatformNotSupportedException.

Typ av brytande ändring

Den här ändringen är en beteendeförändring.

Orsak till ändring

.NET på macOS förlitar sig på operativsystemet för att tillhandahålla en implementering av DSA. Apple gjorde detta genom ett nu föråldrat bibliotek som heter SecurityTransforms, utan ersättning. Den implementering som Apple erbjöd var också begränsad i funktionalitet. Det stödde endast DSA-1024 med SHA-1, vilket anses vara svagt. Dessutom stöds aldrig generering av DSA-nycklar.

IOS, tvOS och MacCatalyst har aldrig stöd för DSA.

Migrera bort från DSA-algoritmen och använd en modern algoritm för kryptografisk digital signatur, till exempel EC-DSA (Elliptic Curve DSA).

Berörda API:er

Dessutom påverkas alla API:er som interagerar med DSA-nycklar.