RSAOAEPKeyExchangeFormatter.CreateKeyExchange RSAOAEPKeyExchangeFormatter.CreateKeyExchange RSAOAEPKeyExchangeFormatter.CreateKeyExchange RSAOAEPKeyExchangeFormatter.CreateKeyExchange Method

Definice

Vytvoří data výměny šifrovaných klíčů.Creates the encrypted key exchange data.

Přetížení

CreateKeyExchange(Byte[]) CreateKeyExchange(Byte[]) CreateKeyExchange(Byte[]) CreateKeyExchange(Byte[])

Vytvoří data výměny šifrovacího klíče ze zadaných vstupních dat.Creates the encrypted key exchange data from the specified input data.

CreateKeyExchange(Byte[], Type) CreateKeyExchange(Byte[], Type) CreateKeyExchange(Byte[], Type) CreateKeyExchange(Byte[], Type)

Vytvoří data výměny šifrovacího klíče ze zadaných vstupních dat.Creates the encrypted key exchange data from the specified input data.

CreateKeyExchange(Byte[]) CreateKeyExchange(Byte[]) CreateKeyExchange(Byte[]) CreateKeyExchange(Byte[])

Vytvoří data výměny šifrovacího klíče ze zadaných vstupních dat.Creates the encrypted key exchange data from the specified input data.

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íčů.The secret information to be passed in the key exchange.

Návraty

Byte[]

Data výměny šifrovaných klíčů, která se mají odeslat zamýšlenému příjemci.The encrypted key exchange data to be sent to the intended recipient.

Výjimky

Poznámky

Tato data může interpretovat jenom držitel privátního klíče, který odpovídá veřejnému klíči, který se používá k šifrování dat.This data can be interpreted only by the holder of the private key corresponding to the public key used to encrypt the data. To pomáhá zajistit, že přístup k tajným informacím má pouze zamýšlený příjemce.This helps to ensure that only the intended recipient can access the secret information.

Viz také

CreateKeyExchange(Byte[], Type) CreateKeyExchange(Byte[], Type) CreateKeyExchange(Byte[], Type) CreateKeyExchange(Byte[], Type)

Vytvoří data výměny šifrovacího klíče ze zadaných vstupních dat.Creates the encrypted key exchange data from the specified input data.

public:
 override cli::array <System::Byte> ^ CreateKeyExchange(cli::array <System::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íčů.The secret information to be passed in the key exchange.

symAlgType
Type Type Type Type

Tento parametr se v aktuální verzi nepoužívá.This parameter is not used in the current version.

Návraty

Byte[]

Data výměny šifrovaných klíčů, která se mají odeslat zamýšlenému příjemci.The encrypted key exchange data to be sent to the intended recipient.

Příklady

Následující příklad ukazuje, jak použít RSAOAEPKeyExchangeFormatter.CreateKeyExchange metodu k vytvoření klíče Exchange pro příjemce zprávy.The following example shows how to use the RSAOAEPKeyExchangeFormatter.CreateKeyExchange method to create an exchange key for a message recipient. Tento příklad kódu je součástí většího příkladu, který RSAOAEPKeyExchangeFormatter je k dispozici pro třídu.This code example is part of a larger example provided for the RSAOAEPKeyExchangeFormatter class

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 'Send 

Poznámky

Tato data může interpretovat jenom držitel privátního klíče, který odpovídá veřejnému klíči, který se používá k šifrování dat.This data can be interpreted only by the holder of the private key corresponding to the public key used to encrypt the data. To pomáhá zajistit, že přístup k tajným informacím má pouze zamýšlený příjemce.This helps to ensure that only the intended recipient can access the secret information.

Viz také

Platí pro