SYSLIB0053: Az AesGcm a szükséges címkeméretet jelzi

A AesGcm címkeméretet nem elfogadó konstruktorok elavultak, a .NET 8-tól kezdve:

A kódban való meghívás figyelmeztetést SYSLIB0053 generál fordításkor.

A kényszer okának oka

Az AES-GCM a platformtól függően különböző hosszúságú címkéket támogat, 12 és 16 bájt között. Korábban az AesGcm osztály a címke méretétől függően határozza meg a kívánt címkeméretet. Ha például Decrypt egy 14 bájtos címkével lett meghívva, feltételezték, hogy a címke 14 bájt.

Az AES-GCM azonban csonkolással támogatja ezeket a különböző hosszokat. Az AES-GCM natív módon 16 bájtcímkét állít elő, a rövidebb címkék pedig a címke csonkolásával jönnek létre.

Ha a hívók Decrypt() lekérik a címkét a bemenetből, és átadják a címkét, az hatékonyan lehetővé teszi Decrypt() a lehető legrövidebb címkével való használatát, ami csökkenti a címke tényleges méretét.

Annak érdekében, hogy a fogyasztók meggyőződhessenek arról, hogy a megfelelő méretű címkéket használják, új konstruktorokat AesGcm vezettünk be, amelyekhez a várt címke méretének előre történő deklarálása szükséges. Decrypt()A Encrypt() megadott címkeparaméternek a konstruktorban deklarált méretnek kell megfelelnie.

Áthidaló megoldás

A címkeméretet elfogadó új konstruktorok a .NET 8-ban lettek hozzáadva. Használja inkább az alábbi konstruktorok egyikét:

Figyelmeztetés mellőzése

Ha az elavult API-kat kell használnia, letilthatja a figyelmeztetést a kódban vagy a projektfájlban.

Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz, hogy letiltsa, majd engedélyezze újra a figyelmeztetést.

// Disable the warning.
#pragma warning disable SYSLIB0053

// Code that uses obsolete API.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB0053

Ha el szeretné tiltani a SYSLIB0053 projekt összes figyelmeztetését, adjon hozzá egy tulajdonságot <NoWarn> a projektfájlhoz.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0053</NoWarn>
  </PropertyGroup>
</Project>

További információ: Figyelmeztetések mellőzése.