RSAOAEPKeyExchangeFormatter.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ří zašifrovaná data výměny klíčů ze zadaných vstupních dat. |
CreateKeyExchange(Byte[], Type) |
Vytvoří zašifrovaná data výměny klíčů ze zadaných vstupních dat. |
CreateKeyExchange(Byte[])
Vytvoří zaš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é se mají předat při výměně klíčů.
Návraty
Zašifrovaná data výměny klíčů, která se mají odeslat zamýšlenému příjemci.
Výjimky
Klíč chybí.
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ří zaš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é se mají předat při výměně klíčů.
- symAlgType
- Type
Tento parametr se v aktuální verzi nepoužívá.
Návraty
Zašifrovaná data výměny klíčů, která se mají odeslat zamýšlenému příjemci.
Příklady
Následující příklad ukazuje, jak pomocí RSAOAEPKeyExchangeFormatter.CreateKeyExchange metody vytvořit klíč výměny pro příjemce zprávy. Tento příklad kódu je součástí většího příkladu, který je k dispozici pro třídu.RSAOAEPKeyExchangeFormatter
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.