Sdílet prostřednictvím


RSAPKCS1KeyExchangeFormatter.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[])

Zdroj:
RSAPKCS1KeyExchangeFormatter.cs
Zdroj:
RSAPKCS1KeyExchangeFormatter.cs
Zdroj:
RSAPKCS1KeyExchangeFormatter.cs

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 při výměně klíčů.

Návraty

Byte[]

Šifrovaný klíč si vyměňuje data, která se mají odeslat zamýšlenému příjemci.

Výjimky

rgbData je příliš velký.

Poznámky

Tato data může interpretovat pouze držitel privátního klíče odpovídajícího 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)

Zdroj:
RSAPKCS1KeyExchangeFormatter.cs
Zdroj:
RSAPKCS1KeyExchangeFormatter.cs
Zdroj:
RSAPKCS1KeyExchangeFormatter.cs

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 při výměně klíčů.

symAlgType
Type

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

Návraty

Byte[]

Šifrovaný klíč si vyměňuje data, která se mají odeslat zamýšlenému příjemci.

Příklady

Následující příklad ukazuje, jak použít metodu RSAPKCS1KeyExchangeFormatter.CreateKeyExchange k vytvoření klíče Exchange pro příjemce zprávy. Tento příklad kódu je součástí většího příkladu RSAPKCS1KeyExchangeFormatter 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 může interpretovat pouze držitel privátního klíče odpovídajícího 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