RSAOAEPKeyExchangeDeformatter.DecryptKeyExchange(Byte[]) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Estrae informazioni segrete dai dati di scambio di chiavi crittografate.
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()
Parametri
- rgbData
- Byte[]
Dati di scambio di chiavi all'interno dei quali sono nascoste le informazioni segrete.
Valori restituiti
Informazioni segrete derivate dai dati di scambio di chiavi.
Eccezioni
La verifica dei dati di scambio delle chiavi non è riuscita.
Chiave mancante.
Esempio
Nell'esempio seguente viene illustrato come utilizzare il DecryptKeyExchange metodo per ricreare una chiave di scambio da un mittente del messaggio. Questo esempio di codice fa parte di un esempio più ampio fornito per la RSAPKCS1KeyExchangeDeformatter classe .
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
Commenti
È necessario specificare una chiave prima di chiamare questo metodo.