RSAPKCS1KeyExchangeDeformatter.DecryptKeyExchange(Byte[]) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden geheime gegevens uit de versleutelde sleuteluitwisselingsgegevens geëxtraheerd.
public:
override cli::array <System::Byte> ^ DecryptKeyExchange(cli::array <System::Byte> ^ rgbIn);
public override byte[] DecryptKeyExchange(byte[] rgbIn);
override this.DecryptKeyExchange : byte[] -> byte[]
Public Overrides Function DecryptKeyExchange (rgbIn As Byte()) As Byte()
Parameters
- rgbIn
- Byte[]
De sleuteluitwisselingsgegevens waarin de geheime informatie is verborgen.
Retouren
De geheime informatie die is afgeleid van de sleuteluitwisselingsgegevens.
Uitzonderingen
De sleutel ontbreekt.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de DecryptKeyExchange methode gebruikt om een exchange-sleutel opnieuw te maken van een afzender van een bericht. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de RSAPKCS1KeyExchangeDeformatter klasse.
public void Receive(byte[] iv, byte[] encryptedSessionKey, byte[] encryptedMessage)
{
using (Aes aes = new AesCryptoServiceProvider())
{
aes.IV = iv;
// Decrypt the session key
RSAPKCS1KeyExchangeDeformatter keyDeformatter = new RSAPKCS1KeyExchangeDeformatter(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)
Dim aes = New AesCryptoServiceProvider()
Try
aes.IV = iv
' Decrypt the session key
Dim keyDeformatter As New RSAPKCS1KeyExchangeDeformatter(rsaKey)
aes.Key = keyDeformatter.DecryptKeyExchange(encryptedSessionKey)
' Decrypt the message
Dim plaintext As New MemoryStream()
Try
Dim cs As New CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write)
Try
cs.Write(encryptedMessage, 0, encryptedMessage.Length)
cs.Close()
Dim message As String = Encoding.UTF8.GetString(plaintext.ToArray())
Console.WriteLine(message)
Finally
cs.Dispose()
End Try
Finally
plaintext.Dispose()
End Try
Finally
aes.Dispose()
End Try
End Sub
Opmerkingen
U moet een sleutel opgeven voordat u deze methode aanroept.