RSAOAEPKeyExchangeDeformatter クラスとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > RSAOAEPKeyExchangeDeformatter クラスの意味・解説 

RSAOAEPKeyExchangeDeformatter クラス

OAEP (Optimal Asymmetric Encryption Padding) キー交換データ復号化ます。

名前空間: System.Security.Cryptography
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public Class RSAOAEPKeyExchangeDeformatter
    Inherits AsymmetricKeyExchangeDeformatter
Dim instance As RSAOAEPKeyExchangeDeformatter
[ComVisibleAttribute(true)] 
public class RSAOAEPKeyExchangeDeformatter
 : AsymmetricKeyExchangeDeformatter
[ComVisibleAttribute(true)] 
public ref class RSAOAEPKeyExchangeDeformatter
 : public AsymmetricKeyExchangeDeformatter
/** @attribute ComVisibleAttribute(true) */ 
public class RSAOAEPKeyExchangeDeformatter
 extends AsymmetricKeyExchangeDeformatter
ComVisibleAttribute(true) 
public class RSAOAEPKeyExchangeDeformatter
 extends AsymmetricKeyExchangeDeformatter
解説解説
使用例使用例

RSAOAEPKeyExchangeDeformatter クラスメンバ使用する方法次のコード例示します

Imports System
Imports System.Security.Cryptography
Imports System.Text

Public Class Form1
    Inherits System.Windows.Forms.Form

    ' Use a member variable to hold the RSA key for encoding and decoding.
    Private rsaKey As RSA

    ' Event handler for Run button.
    Private Sub Button1_Click( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles
 Button1.Click

        tbxOutput.Cursor = Cursors.WaitCursor
        tbxOutput.Text = ""

        Dim message As String
 = "A phrase to be encoded."

        InitializeKey(RSA.Create())

        WriteLine("Encoding the following message:")
        WriteLine(message)
        Dim encodedMessage() As Byte
 = EncodeMessage(message)
        WriteLine("Resulting message encoded:")
        WriteLine(Encoding.ASCII.GetString(encodedMessage))

        Dim decodedMessage As String
 = DecodeMessage(encodedMessage)
        WriteLine("Resulting message decoded:")
        WriteLine(decodedMessage)

        ' Construct a formatter to demonstrate how to set each property.
        ConstructFormatter()

        ' Construct a deformatter to demonstrate how to set each property.
        ConstructDeformatter()

        ' Align interface and conclude application.
        tbxOutput.AppendText(vbCrLf + "This sample completed "
 + _
            "successfully; press Exit to continue.")

        ' Reset the cursor.
        tbxOutput.Cursor = Cursors.Default
    End Sub
    ' Initialize an rsaKey member variable with the specified RSA key.
    private sub InitializeKey(byval
 key as RSA)
        rsaKey = key
    End Sub
    ' Use the RSAOAEPKeyExchangeDeformatter class to decode the 
    ' specified message.
    Private Function EncodeMessage(ByVal
 message As String) As
 Byte()
        Dim encodedMessage() As Byte
 = Nothing

        Try
            ' Construct a formatter with the specified RSA key.
            Dim keyEncryptor As New
 RSAOAEPKeyExchangeFormatter(rsaKey)

            ' Convert the message to bytes to create the encrypted data.
            Dim byteMessage() As Byte
            byteMessage = Encoding.ASCII.GetBytes(message)
            encodedMessage = keyEncryptor.CreateKeyExchange(byteMessage)

        Catch ex As Exception
            WriteLine("Unexpected exception caught:"
 + ex.ToString())
        End Try

        Return encodedMessage

    End Function
    ' Use the RSAOAEPKeyExchangeDeformatter class to decode the
    ' specified message.
    Private Function DecodeMessage(ByVal
 encodedMessage() As Byte) As
 String
        Dim decodedMessage As String
 = Nothing

        Try
            ' Construct a deformatter with the specified RSA key.
            Dim keyDecryptor As New
 RSAOAEPKeyExchangeDeformatter(rsaKey)

            ' Decrypt the encoded message.
            Dim decodedBytes() As Byte
            decodedBytes = keyDecryptor.DecryptKeyExchange(encodedMessage)

            ' Retrieve a string representation of the decoded message.
            decodedMessage = Encoding.ASCII.GetString(decodedBytes)
        Catch ex As Exception
            WriteLine("Unexpected exception caught:"
 + ex.ToString())
        End Try

        Return decodedMessage

    End Function
    ' Create an RSAOAEPKeyExchangeFormatter object with a new RSA key.
    ' Display its properties to the console.
    Private Sub ConstructFormatter()
        ' Construct an empty Optimal Asymmetric Encryption Padding (OAEP)
        ' key exchange.
        Dim rsaFormatter = New RSAOAEPKeyExchangeFormatter

        ' Create an RSA and set it into the specified 
        ' RSAOAEPKeyExchangeFormatter.
        Dim key As RSA = RSA.Create()
        rsaFormatter.SetKey(key)

        ' Create a random number using the RNGCryptoServiceProvider
 provider.
        Dim ring As New
 RNGCryptoServiceProvider
        rsaFormatter.Rng = ring

        ' Export InverseQ and set it into RSAOAEPKeyExchangeFormatter.
        rsaFormatter.Parameter = key.ExportParameters(True).InverseQ

        WriteLine(vbCrLf + "**" + rsaFormatter.ToString()
 + "**")
        WriteLine("The following random number was generated for
 the class:")
        WriteLine(rsaFormatter.Rng.ToString())

        WriteLine(vbCrLf + "The RSA formatter contains the following
 " + _
            "InverseQ parameter:")
        WriteLine(Encoding.ASCII.GetString(rsaFormatter.Parameter))

        Dim xmlParameters as string
 = rsaFormatter.Parameters

        WriteLine(vbCrLf + "The RSA formatter has the following
 parameters:")
        WriteLine(xmlParameters )
    End Sub

    ' Create an RSAOAEPKeyExchangeDeformatter object with a new RSA
 key.
    ' Display its properties to the console.
    Private Sub ConstructDeformatter()
        ' Construct an empty OAEP key exchange.
        Dim rsaDeformatter As New
 RSAOAEPKeyExchangeDeformatter

        ' Create an RSAKey and set it into the specified 
        ' RSAOAEPKeyExchangeDeformatter.
        Dim key As RSA = RSA.Create()
        rsaDeformatter.SetKey(key)

        Dim xmlParameters as string
 = rsaDeformatter.Parameters

        WriteLine(vbCrLf + "**" + rsaDeformatter.ToString()
 + "**")
        WriteLine(vbCrLf + "The RSA deformatter has the following
 ")
        WriteLine("parameters:" + xmlParameters)
    End Sub
    ' Write message with carriage return to output textbox.
    Private Sub WriteLine(ByVal
 message As String)
        tbxOutput.AppendText(message + vbCrLf)
    End Sub
    ' Event handler for Exit button.
    Private Sub Button2_Click( _
        ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles
 Button2.Click

        Application.Exit()
    End Sub
#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides
 Sub Dispose(ByVal disposing As
 Boolean)
        If disposing Then
            If Not (components Is
 Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.  
    'Do not modify it using the code editor.
    Friend WithEvents Panel2 As
 System.Windows.Forms.Panel
    Friend WithEvents Panel1 As
 System.Windows.Forms.Panel
    Friend WithEvents Button1 As
 System.Windows.Forms.Button
    Friend WithEvents Button2 As
 System.Windows.Forms.Button
    Friend WithEvents tbxOutput As
 System.Windows.Forms.RichTextBox
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.Panel2 = New System.Windows.Forms.Panel
        Me.Button1 = New System.Windows.Forms.Button
        Me.Button2 = New System.Windows.Forms.Button
        Me.Panel1 = New System.Windows.Forms.Panel
        Me.tbxOutput = New System.Windows.Forms.RichTextBox
        Me.Panel2.SuspendLayout()
        Me.Panel1.SuspendLayout()
        Me.SuspendLayout()
        '
        'Panel2
        '
        Me.Panel2.Controls.Add(Me.Button1)
        Me.Panel2.Controls.Add(Me.Button2)
        Me.Panel2.Dock = System.Windows.Forms.DockStyle.Bottom
        Me.Panel2.DockPadding.All = 20
        Me.Panel2.Location = New System.Drawing.Point(0,
 320)
        Me.Panel2.Name = "Panel2"
        Me.Panel2.Size = New System.Drawing.Size(616,
 64)
        Me.Panel2.TabIndex = 1
        '
        'Button1
        '
        Me.Button1.Dock = System.Windows.Forms.DockStyle.Right
        Me.Button1.Font = New System.Drawing.Font("Microsoft
 Sans Serif", _
            9.0!, _
            System.Drawing.FontStyle.Regular, _
            System.Drawing.GraphicsUnit.Point, _
            CType(0, Byte))
        Me.Button1.Location = New System.Drawing.Point(446,
 20)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(75,
 24)
        Me.Button1.TabIndex = 2
        Me.Button1.Text = "&Run"
        '
        'Button2
        '
        Me.Button2.Dock = System.Windows.Forms.DockStyle.Right
        Me.Button2.Font = New System.Drawing.Font(
 _
            "Microsoft Sans Serif", 9.0!, _
            System.Drawing.FontStyle.Regular, _
            System.Drawing.GraphicsUnit.Point, _
            CType(0, Byte))
        Me.Button2.Location = New System.Drawing.Point(521,
 20)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(75,
 24)
        Me.Button2.TabIndex = 3
        Me.Button2.Text = "E&xit"
        '
        'Panel1
        '
        Me.Panel1.Controls.Add(Me.tbxOutput)
        Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
        Me.Panel1.DockPadding.All = 20
        Me.Panel1.Location = New System.Drawing.Point(0,
 0)
        Me.Panel1.Name = "Panel1"
        Me.Panel1.Size = New System.Drawing.Size(616,
 320)
        Me.Panel1.TabIndex = 2
        '
        'tbxOutput
        '
        Me.tbxOutput.AccessibleDescription = _
            "Displays output from application."
        Me.tbxOutput.AccessibleName = "Output
 textbox."
        Me.tbxOutput.Dock = System.Windows.Forms.DockStyle.Fill
        Me.tbxOutput.Location = New System.Drawing.Point(20,
 20)
        Me.tbxOutput.Name = "tbxOutput"
        Me.tbxOutput.Size = New System.Drawing.Size(576,
 280)
        Me.tbxOutput.TabIndex = 1
        Me.tbxOutput.Text = "Click the Run
 button to run the application."
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6,
 15)
        Me.ClientSize = New System.Drawing.Size(616,
 384)
        Me.Controls.Add(Me.Panel1)
        Me.Controls.Add(Me.Panel2)
        Me.Name = "Form1"
        Me.Text = "RSAOAEPKeyExchangeFormatter"
        Me.Panel2.ResumeLayout(False)
        Me.Panel1.ResumeLayout(False)
        Me.ResumeLayout(False)

    End Sub

#End Region
End Class
'
' This sample produces the following output:
'
' Encoding the following message:
' A phrase to be encoded.
' Resulting message encoded:k90)DU890fus8d9u*D_(8
' Resulting message decoded:
' A phrase to be encoded.
' 
' **System.Security.Cryptography.RSAOAEPKeyExchangeFormatter**
' The following random number was generated for the class:
' System.Security.Cryptography.RNGCryptoServiceProvider
' 
' The RSA formatter contains the following InverseQ parameter:
' J*Df89uDZ*(*F09
' The RSA formatter has the following parameters:
' 
' 
' **System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter**
' 
' The RSA deformatter has the following 
' parameters:
' 
' This sample completed successfully; press Exit to continue.
using System;
using System.Security.Cryptography;
using System.Text;

class RSAEncoder
{
    // Use a member variable to hold the RSA key for encoding and decoding.
    private RSA rsaKey;

    [STAThread]
    static void Main(string[]
 args)
    {
        string message = "A phrase to be encoded.";

        RSAEncoder rsaEncoder = new RSAEncoder();
        rsaEncoder.InitializeKey(RSA.Create());

        Console.WriteLine("Encoding the following message:");
        Console.WriteLine(message);
        byte[] encodedMessage = rsaEncoder.EncodeMessage(message);
        Console.WriteLine("Resulting message encoded:");
        Console.WriteLine(Encoding.ASCII.GetString(encodedMessage));

        string decodedMessage = rsaEncoder.DecodeMessage(encodedMessage);
        Console.WriteLine("Resulting message decoded:");
        Console.WriteLine(decodedMessage);

        // Construct a formatter to demonstrate how to set each property.
        rsaEncoder.ConstructFormatter();

        // Construct a deformatter to demonstrate how to set each property.
        rsaEncoder.ConstructDeformatter();

        Console.WriteLine("This sample completed successfully, " +
            " press enter to continue.");
        Console.ReadLine();
    }

    // Initialize an rsaKey member variable with the specified RSA key.
    private void InitializeKey(RSA key)
    {
        rsaKey = key;
    }

    // Use the RSAOAEPKeyExchangeDeformatter class to decode the 
    // specified message.
    private byte[] EncodeMessage(string message)
    {
        byte[] encodedMessage = null;

        try
        {
            // Construct a formatter with the specified RSA key.
            RSAOAEPKeyExchangeFormatter keyEncryptor =
                new RSAOAEPKeyExchangeFormatter(rsaKey);

            // Convert the message to bytes to create the encrypted
 data.
            byte[] byteMessage = Encoding.ASCII.GetBytes(message);
            encodedMessage = keyEncryptor.CreateKeyExchange(byteMessage);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Unexpected exception caught:" + ex.ToString());
        }

        return encodedMessage;
    }

    // Use the RSAOAEPKeyExchangeDeformatter class to decode the
    // specified message.
    private string DecodeMessage(byte[] encodedMessage)
    {
        string decodedMessage = null;

        try
        {
            // Construct a deformatter with the specified RSA key.
            RSAOAEPKeyExchangeDeformatter keyDecryptor =
                new RSAOAEPKeyExchangeDeformatter(rsaKey);

            // Decrypt the encoded message.
            byte[] decodedBytes =
                keyDecryptor.DecryptKeyExchange(encodedMessage);

            // Retrieve a string representation of the decoded message.
            decodedMessage = Encoding.ASCII.GetString(decodedBytes);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Unexpected exception caught:" + ex.ToString());
        }

        return decodedMessage;
    }

    // Create an RSAOAEPKeyExchangeFormatter object with a new RSA key.
    // Display its properties to the console.
    private void ConstructFormatter()
    {
        // Construct an empty Optimal Asymmetric Encryption Padding
 (OAEP)
        // key exchange.
        RSAOAEPKeyExchangeFormatter rsaFormatter =
            new RSAOAEPKeyExchangeFormatter();

        // Create an RSA and set it into the specified 
        // RSAOAEPKeyExchangeFormatter.
        RSA key = RSA.Create();
        rsaFormatter.SetKey(key);

        // Create a random number using the RNGCryptoServiceProvider
 provider.
        RNGCryptoServiceProvider ring = new RNGCryptoServiceProvider();
 
        rsaFormatter.Rng = ring;

        // Export InverseQ and set it into the RSAOAEPKeyExchangeFormatter.
        rsaFormatter.Parameter = key.ExportParameters(true).InverseQ;

        Console.WriteLine();
        Console.WriteLine("**" + rsaFormatter.ToString() + "**");
        Console.Write("The following random number was generated using
 the ");
        Console.WriteLine("class:");
        Console.WriteLine(rsaFormatter.Rng);

        Console.WriteLine();
        Console.Write("The RSA formatter contains the following InverseQ");
        Console.WriteLine(" parameter:");
        Console.WriteLine(Encoding.ASCII.GetString(rsaFormatter.Parameter));

        Console.WriteLine();
        string xmlParameters = rsaFormatter.Parameters;

        Console.WriteLine("The RSA formatter has the following parameters:");
        Console.WriteLine(xmlParameters);
    }

    // Create an RSAOAEPKeyExchangeDeformatter object with a new RSA
 key.
    // Display its properties to the console.
    private void ConstructDeformatter()
    {
        // Construct an empty OAEP key exchange.
        RSAOAEPKeyExchangeDeformatter rsaDeformatter = 
            new RSAOAEPKeyExchangeDeformatter();

        // Create an RSAKey and set it into the specified 
        // RSAOAEPKeyExchangeFormatter.
        RSA key = RSA.Create();
        rsaDeformatter.SetKey(key);

        Console.WriteLine();
        Console.WriteLine("**" + rsaDeformatter.ToString() + "**");

        string xmlParameters = rsaDeformatter.Parameters;

        Console.WriteLine();
        Console.WriteLine("The RSA deformatter has the following ");
        Console.WriteLine("parameters:" + xmlParameters);
    }
}
//
// This sample produces the following output:
//
// Encoding the following message:
// A phrase to be encoded.
// Resulting message encoded: %?}T:v??xu?eD)YucItjwuALH HB,Uj??2xq?.?s45
// ?f?L2?=X?CPzWx???"q5?6&N"AE,Z+T?(]S?_7~,?G{?VV!:S?df?
// Resulting message decoded:
// A phrase to be encoded.
//
// **System.Security.Cryptography.RSAOAEPKeyExchangeFormatter**
// The following random number was generated using the class:
// System.Security.Cryptography.RNGCryptoServiceProvider
//
// The RSA formatter contains the following InverseQ parameter:
// 3MM??]D#?mBq_;:ws^1?ko??,_ ??A[hyWcP$?`v.>@?^!dU%\?H0N'??Ca?Ns
//
// The RSA formatter has the following parameters:
//
//
// **System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter**
//
// The RSA deformatter has the following
// parameters:
// This sample completed successfully,  press enter to continue.

using namespace System;
using namespace System::Security::Cryptography;
using namespace System::Text;

ref class RSAEncoder
{
private:
   // Use a member variable to hold the RSA key for encoding and decoding.
   RSA^ rsaKey;

public:
   [STAThread]
   static void Main()
   {
      String^ message = L"A phrase to be encoded.";
      RSAEncoder^ rsaEncoder = gcnew RSAEncoder;
      rsaEncoder->InitializeKey( RSA::Create() );
      Console::WriteLine( L"Encoding the following message:" );
      Console::WriteLine( message );
      array<Byte>^encodedMessage = rsaEncoder->EncodeMessage( message );
      Console::WriteLine( L"Resulting message encoded:" );
      Console::WriteLine( Encoding::ASCII->GetString( encodedMessage ) );
      String^ decodedMessage = rsaEncoder->DecodeMessage( encodedMessage );
      Console::WriteLine( L"Resulting message decoded:" );
      Console::WriteLine( decodedMessage );
      
      // Construct a formatter to demonstrate how to set each property.
      rsaEncoder->ConstructFormatter();
      
      // Construct a deformatter to demonstrate how to set each property.
      rsaEncoder->ConstructDeformatter();
      Console::WriteLine( L"This sample completed successfully, "
         L" press enter to continue." );
      Console::ReadLine();
   }


private:
   // Initialize an rsaKey member variable with the specified RSA key.
   void InitializeKey( RSA^ key )
   {
      rsaKey = key;
   }

   // Use the RSAOAEPKeyExchangeDeformatter class to decode the
   // specified message.
   array<Byte>^ EncodeMessage( String^ message )
   {
      array<Byte>^encodedMessage = nullptr;
      try
      {
         
         // Construct a formatter with the specified RSA key.
         RSAOAEPKeyExchangeFormatter^ keyEncryptor =
            gcnew RSAOAEPKeyExchangeFormatter( rsaKey );

         // Convert the message to bytes to create the encrypted data.
         array<Byte>^byteMessage = Encoding::ASCII->GetBytes( message );
         encodedMessage = keyEncryptor->CreateKeyExchange( byteMessage );
      }
      catch ( Exception^ ex ) 
      {
         Console::WriteLine( L"Unexpected exception caught:{0}", ex );
      }

      return encodedMessage;
   }

   // Use the RSAOAEPKeyExchangeDeformatter class to decode the
   // specified message.
   String^ DecodeMessage( array<Byte>^encodedMessage )
   {
      String^ decodedMessage = nullptr;
      try
      {
         // Construct a deformatter with the specified RSA key.
         RSAOAEPKeyExchangeDeformatter^ keyDecryptor =
            gcnew RSAOAEPKeyExchangeDeformatter( rsaKey );

         // Decrypt the encoded message.
         array<Byte>^decodedBytes = keyDecryptor->DecryptKeyExchange( encodedMessage
 );

         // Retrieve a string representation of the decoded message.
         decodedMessage = Encoding::ASCII->GetString( decodedBytes );
      }
      catch ( Exception^ ex ) 
      {
         Console::WriteLine( L"Unexpected exception caught:{0}", ex );
      }

      return decodedMessage;
   }


   // Create an RSAOAEPKeyExchangeFormatter object with a new RSA key.
   // Display its properties to the console.
   void ConstructFormatter()
   {
      // Construct an empty Optimal Asymmetric Encryption Padding (OAEP)
      // key exchange.
      RSAOAEPKeyExchangeFormatter^ rsaFormatter = gcnew RSAOAEPKeyExchangeFormatter;

      // Create an RSA and set it into the specified
      // RSAOAEPKeyExchangeFormatter.
      RSA^ key = RSA::Create();
      rsaFormatter->SetKey( key );

      // Create a random number using the RNGCryptoServiceProvider provider.
      RNGCryptoServiceProvider^ ring = gcnew RNGCryptoServiceProvider;
      rsaFormatter->Rng = ring;

      // Export InverseQ and set it into the RSAOAEPKeyExchangeFormatter.
      rsaFormatter->Parameter = key->ExportParameters( true
 ).InverseQ;

      Console::WriteLine();
      Console::WriteLine( L"**{0}**", rsaFormatter );
      Console::Write( L"The following random number was generated using
 the " );
      Console::WriteLine( L"class:" );
      Console::WriteLine( rsaFormatter->Rng );
      Console::WriteLine();
      Console::Write( L"The RSA formatter contains the following InverseQ"
 );
      Console::WriteLine( L" parameter:" );
      Console::WriteLine( Encoding::ASCII->GetString( rsaFormatter->Parameter
 ) );
      Console::WriteLine();
      
      String^ xmlParameters = rsaFormatter->Parameters;

      Console::WriteLine( L"The RSA formatter has the following parameters:"
 );
      Console::WriteLine( xmlParameters );
   }

   // Create an RSAOAEPKeyExchangeDeformatter object with a new RSA
 key.
   // Display its properties to the console.
   void ConstructDeformatter()
   {
      // Construct an empty OAEP key exchange.
      RSAOAEPKeyExchangeDeformatter^ rsaDeformatter =
         gcnew RSAOAEPKeyExchangeDeformatter;

      // Create an RSAKey and set it into the specified
      // RSAOAEPKeyExchangeFormatter.
      RSA^ key = RSA::Create();
      rsaDeformatter->SetKey( key );

      Console::WriteLine();
      Console::WriteLine( L"**{0}**", rsaDeformatter );
      
      String^ xmlParameters = rsaDeformatter->Parameters;

      Console::WriteLine();
      Console::WriteLine( L"The RSA deformatter has the following " );
      Console::WriteLine( L"parameters:{0}", xmlParameters );
   }
};

int main()
{
   RSAEncoder::Main();
}

//
// This sample produces the following output:
//
// Encoding the following message:
// A phrase to be encoded.
// Resulting message encoded: %?}T:v??xu?eD)YucItjwuALH HB,Uj??2xq?.?s45
// ?f?L2?=X?CPzWx???"q5?6&N"AE,Z+T?(]S?_7~,?G{?VV!:S?df?
// Resulting message decoded:
// A phrase to be encoded.
//
// **System.Security.Cryptography.RSAOAEPKeyExchangeFormatter**
// The following random number was generated using the class:
// System.Security.Cryptography.RNGCryptoServiceProvider
//
// The RSA formatter contains the following InverseQ parameter:
// 3MM??]D#?mBq_;:ws^1?ko??,_ ??A[hyWcP$?`v.>@?^!dU%\?H0N'??Ca?Ns
//
// The RSA formatter has the following parameters:
//
//
// **System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter**
//
// The RSA deformatter has the following
// parameters:
// This sample completed successfully,  press enter to continue.
import System.*;
import System.Security.Cryptography.*;
import System.Text.*;

class RSAEncoder
{
    // Use a member variable to hold the RSA key for encoding and decoding.
    private RSA rsaKey;

    /** @attribute STAThread()
     */
    public static void main(String[]
 args)
    {
        String message = "A phrase to be encoded.";
        RSAEncoder rsaEncoder = new RSAEncoder();
        rsaEncoder.InitializeKey(RSA.Create());
        Console.WriteLine("Encoding the following message:");
        Console.WriteLine(message);
        ubyte encodedMessage[] = rsaEncoder.EncodeMessage(message);
        Console.WriteLine("Resulting message encoded:");
        Console.WriteLine(Encoding.get_ASCII().GetString(encodedMessage));
        String decodedMessage = rsaEncoder.DecodeMessage(encodedMessage);
        Console.WriteLine("Resulting message decoded:");
        Console.WriteLine(decodedMessage);
        // Construct a formatter to demonstrate how to set each property.
        rsaEncoder.ConstructFormatter();
        // Construct a deformatter to demonstrate how to set each property.
        rsaEncoder.ConstructDeformatter();

        Console.WriteLine("This sample completed successfully, " 
            + " press enter to continue.");
        Console.ReadLine();
    } //main

    // Initialize an rsaKey member variable with the specified RSA key.
    private void InitializeKey(RSA key)
    {
        rsaKey = key;
    } //InitializeKey

    // Use the RSAOAEPKeyExchangeDeformatter class to decode the 
    // specified message.
    private ubyte[] EncodeMessage(String message)
    {
        ubyte encodedMessage[] = null;
        try {
            // Construct a formatter with the specified RSA key.
            RSAOAEPKeyExchangeFormatter keyEncryptor 
                = new RSAOAEPKeyExchangeFormatter(rsaKey);

            // Convert the message to bytes to create the encrypted
 data.
            ubyte byteMessage[] = Encoding.get_ASCII().GetBytes(message);
            encodedMessage = keyEncryptor.CreateKeyExchange(byteMessage);
        } 
        catch (System.Exception ex) {
            Console.WriteLine("Unexpected exception caught:" + ex.ToString());
        }
        return encodedMessage;
    } //EncodeMessage

    // Use the RSAOAEPKeyExchangeDeformatter class to decode the
    // specified message.
    private String DecodeMessage(ubyte encodedMessage[])
    {
        String decodedMessage = null;
        try {
            // Construct a deformatter with the specified RSA key.
            RSAOAEPKeyExchangeDeformatter keyDecryptor 
                = new RSAOAEPKeyExchangeDeformatter(rsaKey);

            // Decrypt the encoded message.
            ubyte decodedBytes[] = keyDecryptor.
                DecryptKeyExchange(encodedMessage);

            // Retrieve a string representation of the decoded message.
            decodedMessage = Encoding.get_ASCII().GetString(decodedBytes);
        }
        catch (System.Exception ex) {
            Console.WriteLine("Unexpected exception caught:" + ex.ToString());
        }
        return decodedMessage;
    } //DecodeMessage

    // Create an RSAOAEPKeyExchangeFormatter object with a new RSA key.
    // Display its properties to the console.
    private void ConstructFormatter()
    {
        // Construct an empty Optimal Asymmetric Encryption Padding
 (OAEP)
        // key exchange.
        RSAOAEPKeyExchangeFormatter rsaFormatter 
            = new RSAOAEPKeyExchangeFormatter();

        // Create an RSA and set it into the specified 
        // RSAOAEPKeyExchangeFormatter.
        RSA key = RSA.Create();
        rsaFormatter.SetKey(key);

        // Create a random number using the RNGCryptoServiceProvider
 provider.
        RNGCryptoServiceProvider ring = new RNGCryptoServiceProvider();
        rsaFormatter.set_Rng(ring);

        // Export InverseQ and set it into the RSAOAEPKeyExchangeFormatter.
        rsaFormatter.set_Parameter(key.ExportParameters(true).InverseQ);

        Console.WriteLine();
        Console.WriteLine("**" + rsaFormatter.ToString() + "**");
        Console.Write("The following random number was generated using
 the ");
        Console.WriteLine("class:");
        Console.WriteLine(rsaFormatter.get_Rng());

        Console.WriteLine();
        Console.Write("The RSA formatter contains the following InverseQ");
        Console.WriteLine(" parameter:");
        Console.WriteLine(Encoding.get_ASCII().GetString(rsaFormatter.
            get_Parameter()));

        Console.WriteLine();
        String xmlParameters = rsaFormatter.get_Parameters();

        Console.WriteLine("The RSA formatter has the following parameters:");
        Console.WriteLine(xmlParameters);
    } //ConstructFormatter

    // Create an RSAOAEPKeyExchangeDeformatter object with a new RSA
 key.
    // Display its properties to the console.
    private void ConstructDeformatter()
    {
        // Construct an empty OAEP key exchange.
        RSAOAEPKeyExchangeDeformatter rsaDeformatter 
            = new RSAOAEPKeyExchangeDeformatter();
        // Create an RSAKey and set it into the specified 
        // RSAOAEPKeyExchangeFormatter.
        RSA key = RSA.Create();
        rsaDeformatter.SetKey(key);
        Console.WriteLine();
        Console.WriteLine("**" + rsaDeformatter.ToString() + "**");
        String xmlParameters = rsaDeformatter.get_Parameters();
        Console.WriteLine();
        Console.WriteLine("The RSA deformatter has the following ");
        Console.WriteLine("parameters:" + xmlParameters);
    } //ConstructDeformatter
} //RSAEncoder
//
// This sample produces the following output:
//
// Encoding the following message:
// A phrase to be encoded.
// Resulting message encoded: %?}T:v??xu?eD)YucItjwuALH HB,Uj??2xq?.?s45
// ?f?L2?=X?CPzWx???"q5?6&N"AE,Z+T?(]S?_7~,?G{?VV!:S?df?
// Resulting message decoded:
// A phrase to be encoded.
//
// **System.Security.Cryptography.RSAOAEPKeyExchangeFormatter**
// The following random number was generated using the class:
// System.Security.Cryptography.RNGCryptoServiceProvider
//
// The RSA formatter contains the following InverseQ parameter:
// 3MM??]D#?mBq_;:ws^1?ko??,_ ??A[hyWcP$?`v.>@?^!dU%\?H0N'??Ca?Ns
//
// The RSA formatter has the following parameters:
//
//
// **System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter**
//
// The RSA deformatter has the following
// parameters:
// This sample completed successfully,  press enter to continue.
継承階層継承階層
System.Object
   System.Security.Cryptography.AsymmetricKeyExchangeDeformatter
    System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
RSAOAEPKeyExchangeDeformatter メンバ
System.Security.Cryptography 名前空間
その他の技術情報
暗号サービス



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「RSAOAEPKeyExchangeDeformatter クラス」の関連用語

RSAOAEPKeyExchangeDeformatter クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



RSAOAEPKeyExchangeDeformatter クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS