AsymmetricKeyExchangeDeformatter クラス
アセンブリ: mscorlib (mscorlib.dll 内)


非共通キー交換の逆フォーマッタは、キー交換データを解読します。
キー交換を使用すると、送信者は、対称暗号化アルゴリズムでキーとして使用できるランダム データなどの秘密情報を作成し、それを暗号化して目的の受信者に送信できます。
![]() |
---|
キー交換を正常に行うには、細かな操作を慎重に実行する必要があるため、提供されている基本機能から独自のキー交換方法を作成することはお勧めできません。 |

AsymmetricKeyExchangeDeformatter クラスを拡張する方法を次のコード例に示します。
imports System imports System.Security.Cryptography Namespace Contoso Public Class ContosoDeformatter Inherits AsymmetricKeyExchangeDeformatter Private rsaKey As RSA ' Default constructor. Public Sub New() End Sub ' Constructor with the public key to use for decryption. Public Sub New(ByVal key As AsymmetricAlgorithm) SetKey(key) End Sub ' Set the public key for encyption operations. Public Overrides Sub SetKey(ByVal key As AsymmetricAlgorithm) If (Not key Is Nothing) Then rsaKey = CType(key, RSA) Else Throw New ArgumentNullException("key") End If End Sub ' Disallow access to the parameters of the formatter. Public Overrides Property Parameters() As String Get Return Nothing End Get Set(ByVal Value As String) End Set End Property ' Create the encrypted key exchange data from the specified input ' data. This method uses the RSACryptoServiceProvider only. To ' support additional providers or provide custom decryption logic, ' add logic to this member. Public Overrides Function DecryptKeyExchange( _ ByVal rgbData() As Byte) As Byte() Dim decryptedBytes() As Byte If (Not rsaKey Is Nothing) Then If (TypeOf (rsaKey) Is RSACryptoServiceProvider) Then Dim rsaProvider As RSACryptoServiceProvider rsaProvider = CType(rsaKey, RSACryptoServiceProvider) decryptedBytes = rsaProvider.Decrypt(rgbData, True) End If ' Add custom decryption logic here. Else Throw New CryptographicUnexpectedOperationException( _ "Cryptography_MissingKey") End If Return decryptedBytes End Function End Class End Namespace ' ' This code example produces the following output: ' ' Data to encrypt : Sample Contoso encryption application. ' Encrypted data: Kh34dfg-(*&834d+3 ' Data decrypted : Sample Contoso encryption application. ' ' This sample completed successfully; press Exit to continue.
using System; using System.Security.Cryptography; namespace Contoso { public class ContosoDeformatter : AsymmetricKeyExchangeDeformatter { private RSA rsaKey; // Default constructor. public ContosoDeformatter(){} // Constructor with the public key to use for decryption. public ContosoDeformatter(AsymmetricAlgorithm key) { SetKey(key); } // Set the public key for encyption operations. public override void SetKey(AsymmetricAlgorithm key) { if (key != null) { rsaKey = (RSA) key; } else { throw new ArgumentNullException("key"); } } // Disallow access to the parameters of the formatter. public override String Parameters { get { return null; } set { ; } } // Create the encrypted key exchange data from the specified input // data. This method uses the RSACryptoServiceProvider only. To // support additional providers or provide custom decryption logic, // add logic to this member. public override byte[] DecryptKeyExchange(byte[] rgbData) { byte[] decryptedBytes = null; if (rsaKey != null) { if (rsaKey is RSACryptoServiceProvider) { RSACryptoServiceProvider serviceProvder = (RSACryptoServiceProvider) rsaKey; decryptedBytes = serviceProvder.Decrypt(rgbData, true); } // Add custom decryption logic here. } else { throw new CryptographicUnexpectedOperationException( "Cryptography_MissingKey"); } return decryptedBytes; } } } // // This code example produces the following output: // // Data to encrypt : Sample Contoso encryption application. // Encrypted data: Khasdf-3248&$%23 // Data decrypted : Sample Contoso encryption application. // // This sample completed successfully; press Enter to exit.

System.Security.Cryptography.AsymmetricKeyExchangeDeformatter
System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter
System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- AsymmetricKeyExchangeDeformatter クラスのページへのリンク