macOS での AesGcm 認証タグのサイズ

.NET 8 以降のバージョンで Encrypt または Decrypt を使う場合、macOS での AesGcm では、16 バイト (128 ビット) の認証タグのみがサポートされます。

以前の動作

macOS では、OpenSSL が使用可能な場合、EncryptDecrypt では 12 バイトから 16 バイトまでの認証タグのサイズがサポートされていました。

さらに、AesGcm.TagByteSizes プロパティでは、12 バイトから 16 バイト (両端を含む) までのサイズがサポートされていることが報告されていました。

新しい動作

macOS では、EncryptDecrypt では 16 バイトの認証タグのみがサポートされます。 macOS でより小さいタグ サイズを使用すると、実行時に ArgumentException がスローされます。

AesGcm.TagByteSizes プロパティは、サポートされているタグ サイズとして 16 という値を返します。

導入されたバージョン

.NET 8 Preview 1

破壊的変更の種類

この変更は、動作変更です。

変更理由

macOS の AesGcm クラスは、以前は基になるサポートのために OpenSSL に依存していました。 OpenSSL は外部依存関係であり、.NET とは別にインストールして構成する必要がありました。 AesGcm では、Apple の CryptoKit を使って Galois/Counter Mode の Advanced Encryption Standard (AES-GCM) の実装が提供されるようになりました。そのため、OpenSSL は AesGcm を使うための依存関係ではなくなりました。

AES-GCM の CryptoKit 実装では、128 ビット (16 バイト) 以外の認証タグ サイズはサポートされていません。

macOS サポートの AesGcm では 128 ビットの認証タグを使用してください。

影響を受ける API