Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Od verze .NET 10 se kryptografické primitivy založené na OpenSSL už v macOS nepodporují. System.Security.Cryptography.AesCcm a třídy, které jsou specifické pro OpenSSL, jako například System.Security.Cryptography.RSAOpenSsl, nyní na macOS vyvolávají PlatformNotSupportedException.
Verze byla představena
.NET 10
Předchozí chování
Dříve třídy specifické pro OpenSSL, například System.Security.Cryptography.RSAOpenSsl, fungovaly v systému macOS, pokud byl OpenSSL k dispozici.
System.Security.Cryptography.AesCcm pracoval(a) v systému macOS, pokud je k dispozici OpenSSL.
Nové chování
Počínaje rozhraním .NET 10 nefungují třídy specifické pro OpenSSL, jako je RSAOpenSsl, na systému macOS, i když je OpenSSL k dispozici, a je vyvolána výjimka PlatformNotSupportedException.
AesCcm PlatformNotSupportedException vyvolává výjimku.
Typ zásadní změny
Jedná se o změnu chování.
Důvod změny
Podpora primitiv založených na OpenSSL pochází z .NET Core 1.0, kde byla kryptografie v systému macOS implementována pomocí OpenSSL. To nebylo ideální, protože nedávná verze OpenSSL nepřichází v macOS a získání a konfigurace OpenSSL v macOS byla problematickou. V časovém rámci .NET Core 2.0 byla kryptografie přesunuta do integrované funkce Společnosti Apple, takže kryptografické funkce "právě fungovaly", aniž by bylo nutné získat další komponenty.
Typy s příponou OpenSsl byly ponechány jako implementované OpenSSL a AesCcm nemají implementaci v kryptografických knihovnách společnosti Apple.
Podpora těchto primitiv založených na OpenSSL v systému macOS je obtížnější, protože Apple ztěžuje načítání knihoven z určitých cest a komplikuje distribuci softwaru v systému macOS.
Doporučená akce
Pokud používáte primitivy založené na OpenSSL bez konkrétního záměru využití OpenSSL, doporučujeme použít nástroje, které poskytují implementaci pro macOS:
-
new DSAOpenSsl(...)–>DSA.Create(...) -
new ECDiffieHellmanOpenSsl(...)–>ECDiffieHellman.Create(...) -
new ECDsaOpenSsl(...)–>ECDsa.Create(...) -
new RSAOpenSsl(...)–>RSA.Create(...)
System.Security.Cryptography.AesCcm nemá žádný funkční ekvivalent v systému macOS. Zvažte použití jiného kryptografického primitiva, například System.Security.Cryptography.AesGcmmísto toho.
Ovlivněná rozhraní API
- System.Security.Cryptography.AesCcm (všechny konstruktory)
- System.Security.Cryptography.DSAOpenSsl (všechny konstruktory)
- System.Security.Cryptography.ECDiffieHellmanOpenSsl (všechny konstruktory)
- System.Security.Cryptography.ECDsaOpenSsl (všechny konstruktory)
- System.Security.Cryptography.RSAOpenSsl (všechny konstruktory)
- System.Security.Cryptography.SafeEvpPKeyHandle (celá třída)