SymmetricAlgorithm.LegalBlockSizes Property
.NET Framework 4.5
Gets the block sizes, in bits, that are supported by the symmetric algorithm.
Namespace: System.Security.Cryptography
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.Security.Cryptography.KeySizes[]An array that contains the block sizes supported by the algorithm.
The following example shows the value of LegalBlockSizes for the symmetric algorithms.
using System; using System.Security.Cryptography; namespace SymmetricAlgo { class Program { static void Main(string[] args) { AesManaged aes = new AesManaged(); Console.WriteLine("AesManaged "); 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); } DESCryptoServiceProvider des = new DESCryptoServiceProvider(); Console.WriteLine("DESCryptoServiceProvider "); ks = des.LegalKeySizes; foreach (KeySizes k in ks) { Console.WriteLine("\tLegal min key size = " + k.MinSize); Console.WriteLine("\tLegal max key size = " + k.MaxSize); } ks = des.LegalBlockSizes; foreach (KeySizes k in ks) { Console.WriteLine("\tLegal min block size = " + k.MinSize); Console.WriteLine("\tLegal max block size = " + k.MaxSize); } RC2CryptoServiceProvider rc2 = new RC2CryptoServiceProvider(); Console.WriteLine("RC2CryptoServiceProvider "); ks = rc2.LegalKeySizes; foreach (KeySizes k in ks) { Console.WriteLine("\tLegal min key size = " + k.MinSize); Console.WriteLine("\tLegal max key size = " + k.MaxSize); } ks = rc2.LegalBlockSizes; foreach (KeySizes k in ks) { Console.WriteLine("\tLegal min block size = " + k.MinSize); Console.WriteLine("\tLegal max block size = " + k.MaxSize); } RijndaelManaged rij = new RijndaelManaged(); Console.WriteLine("RijndaelManaged "); ks = rij.LegalKeySizes; foreach (KeySizes k in ks) { Console.WriteLine("\tLegal min key size = " + k.MinSize); Console.WriteLine("\tLegal max key size = " + k.MaxSize); } ks = rij.LegalBlockSizes; foreach (KeySizes k in ks) { Console.WriteLine("\tLegal min block size = " + k.MinSize); Console.WriteLine("\tLegal max block size = " + k.MaxSize); } TripleDESCryptoServiceProvider tsp = new TripleDESCryptoServiceProvider(); Console.WriteLine("TripleDESCryptoServiceProvider "); ks = tsp.LegalKeySizes; foreach (KeySizes k in ks) { Console.WriteLine("\tLegal min key size = " + k.MinSize); Console.WriteLine("\tLegal max key size = " + k.MaxSize); } ks = tsp.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: //AesManaged // Legal min key size = 128 // Legal max key size = 256 // Legal min block size = 128 // Legal max block size = 128 //DESCryptoServiceProvider // Legal min key size = 64 // Legal max key size = 64 // Legal min block size = 64 // Legal max block size = 64 //RC2CryptoServiceProvider // Legal min key size = 40 // Legal max key size = 128 // Legal min block size = 64 // Legal max block size = 64 //RijndaelManaged // Legal min key size = 128 // Legal max key size = 256 // Legal min block size = 128 // Legal max block size = 256 //TripleDESCryptoServiceProvider // Legal min key size = 128 // Legal max key size = 192 // Legal min block size = 64 // Legal max block size = 64
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.