RSAOAEPKeyExchangeDeformatter.DecryptKeyExchange Method (Byte[])


Extracts secret information from the encrypted key exchange data.

Namespace:   System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

public override byte[] DecryptKeyExchange(
	byte[] rgbData


Type: System.Byte[]

The key exchange data within which the secret information is hidden.

Return Value

Type: System.Byte[]

The secret information derived from the key exchange data.

Exception Condition

The key exchange data verification has failed.


The key is missing.

You must specify a key before calling this method.

The following example shows how to use the DecryptKeyExchange method to recreate an exchange key from a message sender. This code example is part of a larger example provided for the RSAPKCS1KeyExchangeDeformatter class.

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);

            string message = Encoding.UTF8.GetString(plaintext.ToArray());

.NET Framework
Available since 1.1
Windows Phone Silverlight
Available since 7.1
Return to top