Partager via


RSAPKCS1KeyExchangeFormatter.CreateKeyExchange Méthode

Définition

Crée les données d'échange de clés chiffrées.

Surcharges

CreateKeyExchange(Byte[])

Crée les données d’échange de clés chiffrées à partir des données d’entrée spécifiées.

CreateKeyExchange(Byte[], Type)

Crée les données d’échange de clés chiffrées à partir des données d’entrée spécifiées.

CreateKeyExchange(Byte[])

Source:
RSAPKCS1KeyExchangeFormatter.cs
Source:
RSAPKCS1KeyExchangeFormatter.cs
Source:
RSAPKCS1KeyExchangeFormatter.cs

Crée les données d’échange de clés chiffrées à partir des données d’entrée spécifiées.

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

Paramètres

rgbData
Byte[]

Informations confidentielles à passer dans l’échange de clés.

Retours

Byte[]

Données d’échange de clés chiffrées à envoyer au destinataire prévu.

Exceptions

rgbData est trop volumineux.

Remarques

Ces données ne peuvent être interprétées que par le titulaire de la clé privée correspondant à la clé publique utilisée pour chiffrer les données. Cela permet de garantir que seul le destinataire prévu peut accéder aux informations secrètes.

Voir aussi

S’applique à

CreateKeyExchange(Byte[], Type)

Source:
RSAPKCS1KeyExchangeFormatter.cs
Source:
RSAPKCS1KeyExchangeFormatter.cs
Source:
RSAPKCS1KeyExchangeFormatter.cs

Crée les données d’échange de clés chiffrées à partir des données d’entrée spécifiées.

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

Paramètres

rgbData
Byte[]

Informations confidentielles à passer dans l’échange de clés.

symAlgType
Type

Ce paramètre n’est pas utilisé dans la version actuelle.

Retours

Byte[]

Données d’échange de clés chiffrées à envoyer au destinataire prévu.

Exemples

L’exemple suivant montre comment utiliser la RSAPKCS1KeyExchangeFormatter.CreateKeyExchange méthode pour créer une clé d’échange pour un destinataire de message. Cet exemple de code fait partie d’un exemple plus grand fourni pour la RSAPKCS1KeyExchangeFormatter classe .

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

Remarques

Ces données ne peuvent être interprétées que par le titulaire de la clé privée correspondant à la clé publique utilisée pour chiffrer les données. Cela permet de garantir que seul le destinataire prévu peut accéder aux informations secrètes.

Voir aussi

S’applique à