SymmetricAlgorithm.LegalKeySizes Property

Definition

Gets the key sizes, in bits, that are supported by the symmetric algorithm.

C#
public virtual System.Security.Cryptography.KeySizes[] LegalKeySizes { get; }

Property Value

An array that contains the key sizes supported by the algorithm.

Examples

The following example shows the value of LegalKeySizes for the AES symmetric algorithm.

C#
using System;
using System.Security.Cryptography;
namespace SymmetricAlgo
{
    class Program
    {
        static void Main(string[] args)
        {
            Aes aes = Aes.Create();
            Console.WriteLine("Aes ");
            KeySizes[] ks = aes.LegalKeySizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min key size = " + k.MinSize);
                Console.WriteLine("\tLegal max key size = " + k.MaxSize);
            }
            ks = aes.LegalBlockSizes;
            foreach (KeySizes k in ks)
            {
                Console.WriteLine("\tLegal min block size = " + k.MinSize);
                Console.WriteLine("\tLegal max block size = " + k.MaxSize);
            }
        }
    }
}
//This sample produces the following output:
//Aes
//        Legal min key size = 128
//        Legal max key size = 256
//        Legal min block size = 128
//        Legal max block size = 128

Remarks

The symmetric algorithm supports only key sizes that match an entry in this array.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1

See also