Share via


RSAPKCS1KeyExchangeDeformatter.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> ^ rgbIn);
public override byte[] DecryptKeyExchange (byte[] rgbIn);
override this.DecryptKeyExchange : byte[] -> byte[]
Public Overrides Function DecryptKeyExchange (rgbIn As Byte()) As Byte()

Parametreler

rgbIn
Byte[]

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

Döndürülenler

Byte[]

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

Özel durumlar

Ö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
        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

Açıklamalar

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

Şunlara uygulanır

Ayrıca bkz.