Export (0) Print
Expand All

SymmetricAlgorithm.LegalKeySizes Property

Updated: August 2010

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

Namespace:  System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Overridable ReadOnly Property LegalKeySizes As KeySizes()
'Usage
Dim instance As SymmetricAlgorithm 
Dim value As KeySizes()

value = instance.LegalKeySizes

Property Value

Type: System.Security.Cryptography.KeySizes()
An array that contains the key sizes supported by the algorithm.

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

The following example shows the value of LegalKeySizes for the symmetric algorithms.

Imports System
Imports System.Security.Cryptography


Class Program

    Shared Sub Main(ByVal args() As String)
        Dim aes As New AesManaged()
        Console.WriteLine("AesManaged ")
        Dim ks As KeySizes() = aes.LegalKeySizes
        Dim k As KeySizes
        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = aes.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim des As New DESCryptoServiceProvider()
        Console.WriteLine("DESCryptoServiceProvider ")
        ks = des.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = des.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim rc2 As New RC2CryptoServiceProvider()
        Console.WriteLine("RC2CryptoServiceProvider ")
        ks = rc2.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = rc2.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim rij As New RijndaelManaged()
        Console.WriteLine("RijndaelManaged ")
        ks = rij.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = rij.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

        Dim tsp As New TripleDESCryptoServiceProvider()
        Console.WriteLine("TripleDESCryptoServiceProvider ")
        ks = tsp.LegalKeySizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min key size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max key size = " + k.MaxSize)
        Next k
        ks = tsp.LegalBlockSizes

        For Each k In ks
            Console.WriteLine(vbTab + "Legal min block size = " + k.MinSize)
            Console.WriteLine(vbTab + "Legal max block size = " + k.MaxSize)
        Next k

    End Sub 'Main 
End Class 'Program
'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 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0

Date

History

Reason

August 2010

Added example.

Customer feedback.

Community Additions

ADD
Show:
© 2014 Microsoft