RSAOAEPKeyExchangeFormatter.CreateKeyExchange Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee worden de versleutelde sleuteluitwisselingsgegevens gemaakt.
Overloads
| Name | Description |
|---|---|
| CreateKeyExchange(Byte[]) |
Hiermee worden de versleutelde sleuteluitwisselingsgegevens gemaakt op basis van de opgegeven invoergegevens. |
| CreateKeyExchange(Byte[], Type) |
Hiermee worden de versleutelde sleuteluitwisselingsgegevens gemaakt op basis van de opgegeven invoergegevens. |
CreateKeyExchange(Byte[])
Hiermee worden de versleutelde sleuteluitwisselingsgegevens gemaakt op basis van de opgegeven invoergegevens.
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()
Parameters
- rgbData
- Byte[]
De geheime informatie die moet worden doorgegeven in de sleuteluitwisseling.
Retouren
De versleutelde sleuteluitwisselingsgegevens die naar de beoogde ontvanger moeten worden verzonden.
Uitzonderingen
De sleutel ontbreekt.
Opmerkingen
Deze gegevens kunnen alleen worden geïnterpreteerd door de houder van de persoonlijke sleutel die overeenkomt met de openbare sleutel die wordt gebruikt om de gegevens te versleutelen. Dit helpt ervoor te zorgen dat alleen de beoogde ontvanger toegang heeft tot de geheime informatie.
Zie ook
Van toepassing op
CreateKeyExchange(Byte[], Type)
Hiermee worden de versleutelde sleuteluitwisselingsgegevens gemaakt op basis van de opgegeven invoergegevens.
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()
Parameters
- rgbData
- Byte[]
De geheime informatie die moet worden doorgegeven in de sleuteluitwisseling.
- symAlgType
- Type
Deze parameter wordt niet gebruikt in de huidige versie.
Retouren
De versleutelde sleuteluitwisselingsgegevens die naar de beoogde ontvanger moeten worden verzonden.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de RSAOAEPKeyExchangeFormatter.CreateKeyExchange methode gebruikt om een exchange-sleutel te maken voor een geadresseerde van een bericht. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de RSAOAEPKeyExchangeFormatter klasse
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
Opmerkingen
Deze gegevens kunnen alleen worden geïnterpreteerd door de houder van de persoonlijke sleutel die overeenkomt met de openbare sleutel die wordt gebruikt om de gegevens te versleutelen. Dit helpt ervoor te zorgen dat alleen de beoogde ontvanger toegang heeft tot de geheime informatie.