SYSLIB0042: FromXmlString e ToXmlString em tipos ECC estão obsoletos
Os FromXmlString
métodos e ToXmlString
que estão nos tipos de criptografia de curva elíptica (ECC) são obsoletos, começando no .NET 7. Usá-los no código gera aviso SYSLIB0042
em tempo de compilação. Eles nunca foram implementados e sempre lançaram uma PlatformNotSupportedException exceção. A obsolescência afeta os seguintes métodos:
- ECDiffieHellmanCng.FromXmlString(String, ECKeyXmlFormat)
- ECDiffieHellmanCng.ToXmlString(ECKeyXmlFormat)
- ECDiffieHellmanCngPublicKey.FromXmlString(String)
- ECDiffieHellmanCngPublicKey.ToXmlString()
- ECDiffieHellmanPublicKey.ToXmlString()
- ECDsaCng.FromXmlString(String, ECKeyXmlFormat)
- ECDsaCng.ToXmlString(ECKeyXmlFormat)
Solução
Use um formato de dados padrão para trocar chaves de curva elíptica (EC).
Em vez de ToXmlString
, use ExportSubjectPublicKeyInfo
ou ExportPkcs8PrivateKey
dependendo se você deseja a chave pública ou privada.
Em vez de FromXmlString
, use ImportSubjectPublicKeyInfo
ou ImportPkcs8PrivateKey
dependendo se você deseja importar uma chave pública ou privada.
Suprimir um aviso
Se você precisar usar as APIs obsoletas, poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desativar e reativar o aviso.
// Disable the warning.
#pragma warning disable SYSLIB0042
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0042
Para suprimir todos os SYSLIB0042
avisos em seu projeto, adicione uma <NoWarn>
propriedade ao seu arquivo de projeto.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0042</NoWarn>
</PropertyGroup>
</Project>
Para obter mais informações, consulte Suprimir avisos.