RSAPKCS1KeyExchangeFormatter.CreateKeyExchange Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 při výměně klíčů.
Návraty
Šifrovaný klíč si vyměňuje data, která se mají odeslat zamýšlenému příjemci.
Výjimky
rgbData
je příliš velký.
Klíč je null
.
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)
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
Š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.