RSAOAEPKeyExchangeFormatter.CreateKeyExchange Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает зашифрованные данные обмена ключами.
Перегрузки
| Имя | Описание |
|---|---|
| CreateKeyExchange(Byte[]) |
Создает зашифрованные данные обмена ключами из указанных входных данных. |
| CreateKeyExchange(Byte[], Type) |
Создает зашифрованные данные обмена ключами из указанных входных данных. |
CreateKeyExchange(Byte[])
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
Создает зашифрованные данные обмена ключами из указанных входных данных.
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()
Параметры
- rgbData
- Byte[]
Секретная информация, передаваемая в обмене ключами.
Возвращаемое значение
Зашифрованные данные обмена ключами, отправляемые целевому получателю.
Исключения
Ключ отсутствует.
Комментарии
Эти данные могут интерпретироваться только владельцем закрытого ключа, соответствующего открытому ключу, используемому для шифрования данных. Это помогает гарантировать, что только предполагаемый получатель может получить доступ к секретной информации.
См. также раздел
Применяется к
CreateKeyExchange(Byte[], Type)
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
- Исходный код:
- RSAOAEPKeyExchangeFormatter.cs
Создает зашифрованные данные обмена ключами из указанных входных данных.
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()
Параметры
- rgbData
- Byte[]
Секретная информация, передаваемая в обмене ключами.
- symAlgType
- Type
Этот параметр не используется в текущей версии.
Возвращаемое значение
Зашифрованные данные обмена ключами, отправляемые целевому получателю.
Примеры
В следующем примере показано, как использовать RSAOAEPKeyExchangeFormatter.CreateKeyExchange метод для создания ключа exchange для получателя сообщения. Этот пример кода является частью более крупного примера, предоставленного для 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
Комментарии
Эти данные могут интерпретироваться только владельцем закрытого ключа, соответствующего открытому ключу, используемому для шифрования данных. Это помогает гарантировать, что только предполагаемый получатель может получить доступ к секретной информации.