AsymmetricAlgorithm.KeySize Właściwość

Definicja

Pobiera lub ustawia rozmiar w bitach modulo klucza używanego przez algorytm asymetryczny.

public:
 virtual property int KeySize { int get(); void set(int value); };
public virtual int KeySize { get; set; }
member this.KeySize : int with get, set
Public Overridable Property KeySize As Integer

Wartość właściwości

Rozmiar w bitach modułu klucza używanego przez algorytm asymetryczny.

Wyjątki

Rozmiar modulo klucza jest nieprawidłowy.

Przykłady

W poniższym przykładzie kodu pokazano, jak zastąpić KeySize właściwość, aby sprawdzić, czy mieści się ona w zakresie określonym w lokalnej keySizes zmiennej składowej. Ten przykład kodu jest częścią większego przykładu udostępnionego AsymmetricAlgorithm dla klasy .

public:
    property int KeySize
    {
        virtual int get() override
        {
            return KeySizeValue;
        }

        virtual void set(int value) override
        {
            for (int i = 0; i < customValidKeySizes->Length; i++)
            {
                if (customValidKeySizes[i]->SkipSize == 0)
                {
                    if (customValidKeySizes[i]->MinSize == value)
                    {
                        KeySizeValue = value;
                        return;
                    }
                }
                else
                {
                    for (int j = customValidKeySizes[i]->MinSize;
                        j <= customValidKeySizes[i]->MaxSize;
                        j += customValidKeySizes[i]->SkipSize)
                    {
                        if (j == value)
                        {
                            KeySizeValue = value;
                            return;
                        }
                    }
                }
            }

            // If the key does not fall within the range identified
            // in the keySizes member variable, throw an exception.
            throw gcnew CryptographicException("Invalid key size.");
        }
    }
public override int KeySize 
{
    get { return KeySizeValue; }
    set
    {
        for (int i=0; i < keySizes.Length; i++)
        {
            if (keySizes[i].SkipSize == 0) 
            {
                if (keySizes[i].MinSize == value)
                {
                    KeySizeValue = value;
                    return;
                }
            }
            else
            {
                for (int j = keySizes[i].MinSize;
                    j <= keySizes[i].MaxSize;
                    j += keySizes[i].SkipSize)
                {
                    if (j == value)
                    {
                        KeySizeValue = value;
                        return;
                    }
                }
            }
        }

        // If the key does not fall within the range identified 
        // in the keySizes member variable, throw an exception.
        throw new CryptographicException("Invalid key size.");
    }
}
Public Overrides Property KeySize() As Integer
    Get
        Return KeySizeValue
    End Get
    Set(ByVal Value As Integer)
        For i As Int16 = 0 To keySizes.Length - 1 Step i
            If (keySizes(i).SkipSize.Equals(0)) Then
                If (keySizes(i).MinSize.Equals(Value)) Then
                    KeySizeValue = Value
                    Return
                End If
            Else
                For j As Integer = keySizes(i).MinSize _
                    To keySizes(i).MaxSize _
                    Step keySizes(i).SkipSize
                    If (j.Equals(Value)) Then
                        KeySizeValue = Value
                        Return
                    End If
                Next
            End If
        Next
        ' If the key does not fall within the range identified 
        ' in the keySizes member variable, throw an exception.
        Throw New CryptographicException("Invalid key size.")
    End Set
End Property

Uwagi

Prawidłowe rozmiary kluczy są określane przez konkretną implementację algorytmu asymetrycznego i są wymienione we LegalKeySizes właściwości .

Dotyczy

Produkt Wersje
.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, 10
.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

Zobacz też