macOS 上的 AesGcm 身份验证标记大小
在 .NET 8 及更高版本中使用 Encrypt 或 Decrypt 时,macOS 上的 AesGcm 仅支持 16 字节(128 位)身份验证标记。
旧行为
在 macOS 上,Encrypt 和 Decrypt 支持的身份验证标记大小从 12 到 16 个字节不等,前提是 OpenSSL 可用。
此外,AesGcm.TagByteSizes 属性报告它支持的大小范围为 12 到 16 个字节(含)。
新行为
在 macOS 上,Encrypt 和 Decrypt 仅支持 16 字节身份验证标记。 如果在 macOS 上使用较小的标记大小,则会在运行时引发 ArgumentException。
AesGcm.TagByteSizes 属性返回值 16 作为支持的标记大小。
引入的版本
.NET 8 预览版 1
中断性变更的类型
此更改为行为更改。
更改原因
macOS 上的 AesGcm 类以前依赖于 OpenSSL 来获得底层支持。 OpenSSL 是一个外部依赖项,需要独立于 .NET 进行安装和配置。 AesGcm 现在使用 Apple 的 CryptoKit 通过 Galois/Counter Mode (AES-GCM) 实现高级加密标准,以便 OpenSSL 不再是使用 AesGcm 的依赖项。
AES-GCM 的 CryptoKit 实现不支持 128 位(16 字节)以外的身份验证标记大小。
建议的操作
将 128 位身份验证标记与 AesGcm 配合使用,以获取 macOS 支持。
受影响的 API
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈