Aracılığıyla paylaş


SYSLIB0053: AesGcm gerekli etiket boyutunu göstermelidir

AesGcm.NET 8'den başlayarak etiket boyutunu kabul etmeyen oluşturucular kullanımdan kaldırılmış durumdadır:

Bunları kodda çağırmak, derleme zamanında uyarı SYSLIB0053 oluşturur.

Kullanımdan kaldırılmış olma nedeni

AES-GCM, platforma bağlı olarak 12 ile 16 bayt arasındaki çeşitli uzunluklarda etiketleri destekler. Daha önce sınıfı, etiketin AesGcm boyutuna göre istenen etiket boyutunu belirlerdi. Örneğin, 14 bayt etiketiyle çağrıldıysa Decrypt , etiketin 14 bayt olması gerektiği varsayılır.

Ancak, AES-GCM kesme yoluyla bu çeşitli uzunlukları destekler. AES-GCM yerel olarak 16 bayt etiket üretir ve etiketi kesilerek daha kısa etiketler üretilir.

çağıranları Decrypt() girişten etiketi alır ve etiketi olduğu gibi geçirirse, etiketin etkili boyutunu azaltan mümkün olan en kısa etiketle etkili bir şekilde kullanılmasına izin verir Decrypt() .

Tüketicilerin doğru boyutta etiketler kullandığından emin olmalarına yardımcı olmak için AesGcm , için beklenen etiketin boyutunun öne bildirilmesini gerektiren yeni oluşturucular kullanıma sunulmuştur. veya Decrypt()sırasındaEncrypt(), sağlanan etiket parametresi oluşturucuda bildirilen boyutla eşleşmelidir.

Geçici çözüm

.NET 8'de etiket boyutunu kabul eden yeni oluşturucular eklendi. Bunun yerine şu oluşturuculardan birini kullanın:

Uyarıyı gizleme

Eski API'leri kullanmanız gerekiyorsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.

Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.

// Disable the warning.
#pragma warning disable SYSLIB0053

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

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

Projenizdeki tüm SYSLIB0053 uyarıları engellemek için proje dosyanıza bir <NoWarn> özellik ekleyin.

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

Daha fazla bilgi için bkz . Uyarıları gizleme.