RSAOAEPKeyExchangeFormatter.CreateKeyExchange Metoda

Definice

Vytvoří šifrovaná data výměny klíčů.

Přetížení

CreateKeyExchange(Byte[])

Vytvoří šifrovaná data výměny klíčů ze zadaných vstupních dat.

CreateKeyExchange(Byte[], Type)

Vytvoří šifrovaná data výměny klíčů ze zadaných vstupních dat.

CreateKeyExchange(Byte[])

Vytvoří šifrovaná data výměny klíčů ze zadaných vstupních dat.

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

Parametry

rgbData
Byte[]

Tajné informace, které mají být předány v výměně klíčů.

Návraty

Byte[]

Šifrovaná data výměny klíčů, která se mají odeslat zamýšlenému příjemci.

Výjimky

Poznámky

Tato data lze interpretovat pouze vlastníkem privátního klíče odpovídajícímu veřejnému klíči použitému k šifrování dat. To pomáhá zajistit, aby k tajným informacím měl přístup jenom zamýšlený příjemce.

Viz také

Platí pro

CreateKeyExchange(Byte[], Type)

Vytvoří šifrovaná data výměny klíčů ze zadaných vstupních dat.

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

Parametry

rgbData
Byte[]

Tajné informace, které mají být předány v výměně klíčů.

symAlgType
Type

Tento parametr se v aktuální verzi nepoužívá.

Návraty

Byte[]

Šifrovaná data výměny klíčů, která se mají odeslat zamýšlenému příjemci.

Příklady

Následující příklad ukazuje, jak pomocí RSAOAEPKeyExchangeFormatter.CreateKeyExchange metody vytvořit klíč výměny pro příjemce zprávy. Tento příklad kódu je součástí většího příkladu zadaného RSAOAEPKeyExchangeFormatter pro třídu.

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

Poznámky

Tato data lze interpretovat pouze vlastníkem privátního klíče odpovídajícímu veřejnému klíči použitému k šifrování dat. To pomáhá zajistit, aby k tajným informacím měl přístup jenom zamýšlený příjemce.

Viz také

Platí pro