RSAOAEPKeyExchangeDeformatter.DecryptKeyExchange(Byte[]) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wyodrębnia informacje tajne z zaszyfrowanych danych wymiany kluczy.
public:
override cli::array <System::Byte> ^ DecryptKeyExchange(cli::array <System::Byte> ^ rgbData);
public override byte[] DecryptKeyExchange (byte[] rgbData);
override this.DecryptKeyExchange : byte[] -> byte[]
Public Overrides Function DecryptKeyExchange (rgbData As Byte()) As Byte()
Parametry
- rgbData
- Byte[]
Dane wymiany kluczy, w których informacje tajne są ukryte.
Zwraca
Informacje tajne pochodzące z danych wymiany kluczy.
Wyjątki
Weryfikacja danych wymiany kluczy nie powiodła się.
Brak klucza.
Przykłady
W poniższym przykładzie pokazano, jak użyć DecryptKeyExchange metody do ponownego utworzenia klucza wymiany od nadawcy komunikatów. Ten przykład kodu jest częścią większego przykładu udostępnionego RSAPKCS1KeyExchangeDeformatter dla klasy .
public void Receive(byte[] iv, byte[] encryptedSessionKey, byte[] encryptedMessage)
{
using (Aes aes = new AesCryptoServiceProvider())
{
aes.IV = iv;
// Decrypt the session key
RSAOAEPKeyExchangeDeformatter keyDeformatter = new RSAOAEPKeyExchangeDeformatter(rsaKey);
aes.Key = keyDeformatter.DecryptKeyExchange(encryptedSessionKey);
// Decrypt the message
using (MemoryStream plaintext = new MemoryStream())
using (CryptoStream cs = new CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write))
{
cs.Write(encryptedMessage, 0, encryptedMessage.Length);
cs.Close();
string message = Encoding.UTF8.GetString(plaintext.ToArray());
Console.WriteLine(message);
}
}
}
Public Sub Receive(ByVal iv() As Byte, ByVal encryptedSessionKey() As Byte, ByVal encryptedMessage() As Byte)
Using aes = New AesCryptoServiceProvider()
aes.IV = iv
' Decrypt the session key
Dim keyDeformatter As New RSAOAEPKeyExchangeDeformatter(rsaKey)
aes.Key = keyDeformatter.DecryptKeyExchange(encryptedSessionKey)
' Decrypt the message
Using plaintext As New MemoryStream()
Using cs As New CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write)
cs.Write(encryptedMessage, 0, encryptedMessage.Length)
cs.Close()
Dim message As String = Encoding.UTF8.GetString(plaintext.ToArray())
Console.WriteLine(message)
End Using
End Using
End Using
End Sub
Uwagi
Przed wywołaniem tej metody należy określić klucz.