RSAPKCS1KeyExchangeFormatter.CreateKeyExchange Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea dati crittografati di scambio delle chiavi.
Overload
CreateKeyExchange(Byte[]) |
Crea i dati crittografati di scambio delle chiavi dai dati di input specificati. |
CreateKeyExchange(Byte[], Type) |
Crea i dati crittografati di scambio delle chiavi dai dati di input specificati. |
CreateKeyExchange(Byte[])
- Origine:
- RSAPKCS1KeyExchangeFormatter.cs
- Origine:
- RSAPKCS1KeyExchangeFormatter.cs
- Origine:
- RSAPKCS1KeyExchangeFormatter.cs
Crea i dati crittografati di scambio delle chiavi dai dati di input specificati.
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()
Parametri
- rgbData
- Byte[]
Informazioni segrete da passare nello scambio delle chiavi.
Restituisce
Dati crittografati di scambio delle chiavi da inviare al destinatario prescelto.
Eccezioni
rgbData
è troppo grande.
La chiave è null
.
Commenti
Questi dati possono essere interpretati solo dal titolare della chiave privata corrispondente alla chiave pubblica usata per crittografare i dati. Ciò consente di garantire che solo il destinatario desiderato possa accedere alle informazioni segrete.
Vedi anche
Si applica a
CreateKeyExchange(Byte[], Type)
- Origine:
- RSAPKCS1KeyExchangeFormatter.cs
- Origine:
- RSAPKCS1KeyExchangeFormatter.cs
- Origine:
- RSAPKCS1KeyExchangeFormatter.cs
Crea i dati crittografati di scambio delle chiavi dai dati di input specificati.
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()
Parametri
- rgbData
- Byte[]
Informazioni segrete da passare nello scambio delle chiavi.
- symAlgType
- Type
Questo parametro non viene usato nella versione corrente.
Restituisce
Dati crittografati di scambio delle chiavi da inviare al destinatario prescelto.
Esempio
Nell'esempio seguente viene illustrato come utilizzare il RSAPKCS1KeyExchangeFormatter.CreateKeyExchange metodo per creare una chiave di scambio per un destinatario del messaggio. Questo esempio di codice fa parte di un esempio più ampio fornito per 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
Commenti
Questi dati possono essere interpretati solo dal titolare della chiave privata corrispondente alla chiave pubblica usata per crittografare i dati. Ciò consente di garantire che solo il destinatario desiderato possa accedere alle informazioni segrete.