Freigeben über


RSAOAEPKeyExchangeFormatter.CreateKeyExchange Methode

Definition

Erstellt die verschlüsselten Schlüsselaustauschdaten.

Überlädt

CreateKeyExchange(Byte[])

Erstellt anhand der angegebenen Eingabedaten die verschlüsselten Schlüsselaustauschdaten.

CreateKeyExchange(Byte[], Type)

Erstellt anhand der angegebenen Eingabedaten die verschlüsselten Schlüsselaustauschdaten.

CreateKeyExchange(Byte[])

Quelle:
RSAOAEPKeyExchangeFormatter.cs
Quelle:
RSAOAEPKeyExchangeFormatter.cs
Quelle:
RSAOAEPKeyExchangeFormatter.cs

Erstellt anhand der angegebenen Eingabedaten die verschlüsselten Schlüsselaustauschdaten.

public:
 override cli::array <System::Byte> ^ CreateKeyExchange(cli::array <System::Byte> ^ rgbData);
public override byte[] CreateKeyExchange (byte[] rgbData);
override this.CreateKeyExchange : byte[] -> byte[]
Public Overrides Function CreateKeyExchange (rgbData As Byte()) As Byte()

Parameter

rgbData
Byte[]

Die beim Schlüsselaustausch zu übergebenden geheimen Informationen.

Gibt zurück

Byte[]

Die an den beabsichtigten Empfänger zu sendenden verschlüsselten Schlüsselaustauschdaten.

Ausnahmen

Hinweise

Diese Daten können nur vom Inhaber des privaten Schlüssels interpretiert werden, der dem öffentlichen Schlüssel entspricht, der zum Verschlüsseln der Daten verwendet wird. Dadurch wird sichergestellt, dass nur der beabsichtigte Empfänger auf die Geheiminformationen zugreifen kann.

Weitere Informationen

Gilt für:

CreateKeyExchange(Byte[], Type)

Quelle:
RSAOAEPKeyExchangeFormatter.cs
Quelle:
RSAOAEPKeyExchangeFormatter.cs
Quelle:
RSAOAEPKeyExchangeFormatter.cs

Erstellt anhand der angegebenen Eingabedaten die verschlüsselten Schlüsselaustauschdaten.

public:
 override cli::array <System::Byte> ^ CreateKeyExchange(cli::array <System::Byte> ^ rgbData, Type ^ symAlgType);
public override byte[] CreateKeyExchange (byte[] rgbData, Type? symAlgType);
public override byte[] CreateKeyExchange (byte[] rgbData, Type symAlgType);
override this.CreateKeyExchange : byte[] * Type -> byte[]
Public Overrides Function CreateKeyExchange (rgbData As Byte(), symAlgType As Type) As Byte()

Parameter

rgbData
Byte[]

Die beim Schlüsselaustausch zu übergebenden geheimen Informationen.

symAlgType
Type

Dieser Parameter wird in der aktuellen Version nicht verwendet.

Gibt zurück

Byte[]

Die an den beabsichtigten Empfänger zu sendenden verschlüsselten Schlüsselaustauschdaten.

Beispiele

Das folgende Beispiel zeigt, wie Sie mithilfe der RSAOAEPKeyExchangeFormatter.CreateKeyExchange -Methode einen Exchange-Schlüssel für einen Nachrichtenempfänger erstellen. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die RSAOAEPKeyExchangeFormatter -Klasse bereitgestellt wird.

private static void Send(RSA key, string secretMessage, out byte[] iv, out byte[] encryptedSessionKey, out byte[] encryptedMessage)
{
    using (Aes aes = new AesCryptoServiceProvider())
    {
        iv = aes.IV;

        // Encrypt the session key
        RSAPKCS1KeyExchangeFormatter keyFormatter = new RSAPKCS1KeyExchangeFormatter(key);
        encryptedSessionKey = keyFormatter.CreateKeyExchange(aes.Key, typeof(Aes));

        // Encrypt the message
        using (MemoryStream ciphertext = new MemoryStream())
        using (CryptoStream cs = new CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write))
        {
            byte[] plaintextMessage = Encoding.UTF8.GetBytes(secretMessage);
            cs.Write(plaintextMessage, 0, plaintextMessage.Length);
            cs.Close();

            encryptedMessage = ciphertext.ToArray();
        }
    }
}
Private Shared Sub Send(ByVal key As RSA, ByVal secretMessage As String, ByRef iv() As Byte, ByRef encryptedSessionKey() As Byte, ByRef encryptedMessage() As Byte)
    Dim aes = New AesCryptoServiceProvider()
    Try
        iv = aes.IV

        ' Encrypt the session key
        Dim keyFormatter As New RSAPKCS1KeyExchangeFormatter(key)
        encryptedSessionKey = keyFormatter.CreateKeyExchange(aes.Key, GetType(Aes))

        ' Encrypt the message
        Dim ciphertext As New MemoryStream()
        Try
            Dim cs As New CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write)
            Try
                Dim plaintextMessage As Byte() = Encoding.UTF8.GetBytes(secretMessage)
                cs.Write(plaintextMessage, 0, plaintextMessage.Length)
                cs.Close()

                encryptedMessage = ciphertext.ToArray()
            Finally
                cs.Dispose()
            End Try
        Finally
            ciphertext.Dispose()
        End Try
    Finally
        aes.Dispose()
    End Try

End Sub

Hinweise

Diese Daten können nur vom Inhaber des privaten Schlüssels interpretiert werden, der dem öffentlichen Schlüssel entspricht, der zum Verschlüsseln der Daten verwendet wird. Dadurch wird sichergestellt, dass nur der beabsichtigte Empfänger auf die Geheiminformationen zugreifen kann.

Weitere Informationen

Gilt für: