Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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.
Rekommenderad åtgärd
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
- DSA.Create
- DSACryptoServiceProvider-konstruktorer
- DSACertificateExtensions.GetDSAPrivateKey(X509Certificate2)
- DSACertificateExtensions.GetDSAPublicKey(X509Certificate2)
- DSACertificateExtensions.CopyWithPrivateKey(X509Certificate2, DSA)
Dessutom påverkas alla API:er som interagerar med DSA-nycklar.