RSAPKCS1KeyExchangeFormatter.CreateKeyExchange Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar krypterade nyckelutbytesdata.
Överlagringar
| Name | Description |
|---|---|
| CreateKeyExchange(Byte[]) |
Skapar krypterade nyckelutbytesdata från angivna indata. |
| CreateKeyExchange(Byte[], Type) |
Skapar krypterade nyckelutbytesdata från angivna indata. |
CreateKeyExchange(Byte[])
Skapar krypterade nyckelutbytesdata från angivna indata.
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()
Parametrar
- rgbData
- Byte[]
Den hemliga information som ska skickas i nyckelutbytet.
Returer
Den krypterade nyckeln utbyter data som ska skickas till den avsedda mottagaren.
Undantag
rgbData är för stor.
Nyckeln är null.
Kommentarer
Dessa data kan endast tolkas av innehavaren av den privata nyckel som motsvarar den offentliga nyckel som används för att kryptera data. Detta hjälper till att säkerställa att endast den avsedda mottagaren kan komma åt den hemliga informationen.
Se även
Gäller för
CreateKeyExchange(Byte[], Type)
Skapar krypterade nyckelutbytesdata från angivna indata.
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()
Parametrar
- rgbData
- Byte[]
Den hemliga information som ska skickas i nyckelutbytet.
- symAlgType
- Type
Den här parametern används inte i den aktuella versionen.
Returer
Den krypterade nyckeln utbyter data som ska skickas till den avsedda mottagaren.
Exempel
I följande exempel visas hur du använder RSAPKCS1KeyExchangeFormatter.CreateKeyExchange metoden för att skapa en exchange-nyckel för en meddelandemottagare. Det här kodexemplet är en del av ett större exempel för RSAPKCS1KeyExchangeFormatter klassen.
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
Kommentarer
Dessa data kan endast tolkas av innehavaren av den privata nyckel som motsvarar den offentliga nyckel som används för att kryptera data. Detta hjälper till att säkerställa att endast den avsedda mottagaren kan komma åt den hemliga informationen.