Aracılığıyla paylaş


RSAOAEPKeyExchangeDeformatter.DecryptKeyExchange(Byte[]) Yöntem

Tanım

Şifrelenmiş anahtar değişimi verilerinden gizli dizi bilgilerini ayıklar.

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

Parametreler

rgbData
Byte[]

Gizli bilgilerin gizlendiği anahtar değişimi verileri.

Döndürülenler

Byte[]

Anahtar değişim verilerinden türetilen gizli dizi bilgileri.

Özel durumlar

Anahtar değişimi veri doğrulaması başarısız oldu.

Örnekler

Aşağıdaki örnekte, ileti gönderenden bir exchange anahtarını yeniden oluşturmak için yönteminin nasıl kullanılacağı DecryptKeyExchange gösterilmektedir. Bu kod örneği, sınıfı için RSAPKCS1KeyExchangeDeformatter sağlanan daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Bu yöntemi çağırmadan önce bir anahtar belirtmelisiniz.

Şunlara uygulanır

Ayrıca bkz.