AsymmetricAlgorithm.KeySize 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定非對稱演算法使用的金鑰模數大小,以位元為單位。
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
屬性值
非對稱演算法使用的金鑰模數大小,以位元為單位。
例外狀況
索引鍵模數大小不正確。
範例
下列程式代碼範例示範如何覆寫 KeySize 屬性,以確認它落在局部 keySizes
成員變數中所識別的範圍內。 此程式代碼範例是提供給 類別之較大範例的 AsymmetricAlgorithm 一部分。
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
備註
有效的密鑰大小是由非對稱演算法的特定實作所指定,並列在 屬性中 LegalKeySizes 。