RSAOAEPKeyExchangeFormatter.CreateKeyExchange Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy zaszyfrowane dane wymiany kluczy.
Przeciążenia
CreateKeyExchange(Byte[]) |
Tworzy zaszyfrowane dane wymiany kluczy na podstawie określonych danych wejściowych. |
CreateKeyExchange(Byte[], Type) |
Tworzy zaszyfrowane dane wymiany kluczy na podstawie określonych danych wejściowych. |
CreateKeyExchange(Byte[])
Tworzy zaszyfrowane dane wymiany kluczy na podstawie określonych danych wejściowych.
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[]
Informacje tajne do przekazania w ramach wymiany kluczy.
Zwraca
Zaszyfrowane dane wymiany kluczy, które mają być wysyłane do zamierzonego adresata.
Wyjątki
Brak klucza.
Uwagi
Te dane mogą być interpretowane tylko przez posiadacza klucza prywatnego odpowiadającego kluczowi publicznemu używanemu do szyfrowania danych. Pomaga to zapewnić, że tylko zamierzony odbiorca może uzyskać dostęp do informacji tajnych.
Zobacz też
Dotyczy
CreateKeyExchange(Byte[], Type)
Tworzy zaszyfrowane dane wymiany kluczy na podstawie określonych danych wejściowych.
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[]
Informacje tajne do przekazania w ramach wymiany kluczy.
- symAlgType
- Type
Ten parametr nie jest używany w bieżącej wersji.
Zwraca
Zaszyfrowane dane wymiany kluczy, które mają być wysyłane do zamierzonego adresata.
Przykłady
W poniższym przykładzie pokazano, jak za pomocą RSAOAEPKeyExchangeFormatter.CreateKeyExchange metody utworzyć klucz wymiany dla adresata wiadomości. Ten przykład kodu jest częścią większego przykładu podanego RSAOAEPKeyExchangeFormatter dla klasy
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
Uwagi
Te dane mogą być interpretowane tylko przez posiadacza klucza prywatnego odpowiadającego kluczowi publicznemu używanemu do szyfrowania danych. Pomaga to zapewnić, że tylko zamierzony odbiorca może uzyskać dostęp do informacji tajnych.