Tamanho da marca de autenticação do AesGcm no macOS

AesGcm no macOS dá suporte apenas a marcas de autenticação de 16 bytes (128 bits) ao usar Encrypt ou Decrypt no .NET 8 e em versões posteriores.

Comportamento anterior

No macOS, Encrypt e Decrypt davam suporte a tamanhos de marca de autenticação que variavam de 12 a 16 bytes, desde que o OpenSSL estivesse disponível.

Além disso, a propriedade AesGcm.TagByteSizes informava que tinha suporte para tamanhos que variavam de 12 a 16 bytes, inclusive.

Novo comportamento

No macOS, Encrypt e Decrypt dão suporte apenas a marcas de autenticação de 16 bytes. Se você usar um tamanho de marca menor no macOS, um ArgumentException será gerado em tempo de execução.

A propriedade AesGcm.TagByteSizes retorna um valor de 16 como tamanho de marca com suporte.

Versão introduzida

.NET 8 versão prévia 1

Tipo de alteração interruptiva

Esta é uma alteração comportamental.

Motivo da alteração

A classe AesGcm no macOS dependia do OpenSSL para suporte subjacente. O OpenSSL é uma dependência externa que precisava ser instalada e configurada separadamente do .NET. Agora, AesGcm usa o CryptoKit da Apple para fornecer uma implementação do AES-GCM (AES com Modo Galois/Contador) para que o OpenSSL não seja mais uma dependência para usar o AesGcm.

A implementação do CryptoKit do AES-GCM não dá suporte a tamanhos de marca de autenticação diferentes de 128 bits (16 bytes).

Use marcas de autenticação de 128 bits com AesGcm para dar suporte ao macOS.

APIs afetadas