CspParameters CspParameters CspParameters CspParameters Class

定義

暗号計算を実行する暗号サービス プロバイダー (CSP: Cryptographic Service Provider) に渡されるパラメーターを格納します。Contains parameters that are passed to the cryptographic service provider (CSP) that performs cryptographic computations. このクラスは継承できません。This class cannot be inherited.

public ref class CspParameters sealed
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CspParameters
type CspParameters = class
Public NotInheritable Class CspParameters
継承
CspParametersCspParametersCspParametersCspParameters
属性

CspParametersクラスを使用してキーコンテナーを作成し、そのキーをコンテナーに保存するコード例を次に示します。The following code example creates a key container using the CspParameters class and saves the key in the container.

using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;
int main()
{
   
   // creates the CspParameters object and sets the key container name used to store the RSA key pair
   CspParameters^ cp = gcnew CspParameters;
   cp->KeyContainerName = "MyKeyContainerName";
   
   // instantiates the rsa instance accessing the key container MyKeyContainerName
   RSACryptoServiceProvider^ rsa = gcnew RSACryptoServiceProvider( cp );
   
   // add the below line to delete the key entry in MyKeyContainerName
   // rsa.PersistKeyInCsp = false;
   //writes out the current key pair used in the rsa instance
   Console::WriteLine( "Key is : \n{0}", rsa->ToXmlString( true ) );
}

using System;
using System.IO;
using System.Security.Cryptography;

public class StoreKey
{
    public static void Main()
    {
        // creates the CspParameters object and sets the key container name used to store the RSA key pair
        CspParameters cp = new CspParameters();
        cp.KeyContainerName = "MyKeyContainerName";

        // instantiates the rsa instance accessing the key container MyKeyContainerName
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);
        // add the below line to delete the key entry in MyKeyContainerName
        // rsa.PersistKeyInCsp = false;

        //writes out the current key pair used in the rsa instance
        Console.WriteLine("Key is : \n" + rsa.ToXmlString(true));
    }
}
Imports System.IO
Imports System.Security.Cryptography



Public Class StoreKey
    
    Public Shared Sub Main()
        ' creates the CspParameters object and sets the key container name used to store the RSA key pair
        Dim cp As New CspParameters()
        cp.KeyContainerName = "MyKeyContainerName"
        
        ' instantiates the rsa instance accessing the key container MyKeyContainerName
        Dim rsa As New RSACryptoServiceProvider(cp)
        ' add the below line to delete the key entry in MyKeyContainerName
        ' rsa.PersistKeyInCsp = false;
        'writes out the current key pair used in the rsa instance
        Console.WriteLine("Key is : "  & rsa.ToXmlString(True))
    End Sub
End Class

次のコード例ではCspParameters 、クラスを使用して、スマートカード暗号化サービスプロバイダーを選択します。The following code example uses the CspParameters class to select a Smart Card Cryptographic Service Provider. 次に、スマートカードを使用してデータに署名し、検証します。It then signs and verifies data using the smart card.

using namespace System;
using namespace System::Security::Cryptography;
int main()
{
   
   // To idendify the Smart Card CryptoGraphic Providers on your
   // computer, use the Microsoft Registry Editor (Regedit.exe).
   // The available Smart Card CryptoGraphic Providers are listed
   // in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.
   // Create a new CspParameters object that identifies a 
   // Smart Card CryptoGraphic Provider.
   // The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types.
   // The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.
   CspParameters^ csp = gcnew CspParameters( 1,L"Schlumberger Cryptographic Service Provider" );
   csp->Flags = CspProviderFlags::UseDefaultKeyContainer;
   
   // Initialize an RSACryptoServiceProvider object using
   // the CspParameters object.
   RSACryptoServiceProvider^ rsa = gcnew RSACryptoServiceProvider( csp );
   
   // Create some data to sign.
   array<Byte>^data = gcnew array<Byte>{
      0,1,2,3,4,5,6,7
   };
   Console::WriteLine( L"Data			: {0}", BitConverter::ToString( data ) );
   
   // Sign the data using the Smart Card CryptoGraphic Provider.
   array<Byte>^sig = rsa->SignData( data, L"SHA1" );
   Console::WriteLine( L"Signature	: {0}", BitConverter::ToString( sig ) );
   
   // Verify the data using the Smart Card CryptoGraphic Provider.
   bool verified = rsa->VerifyData( data, L"SHA1", sig );
   Console::WriteLine( L"Verified		: {0}", verified );
}

using System;
using System.Security.Cryptography;

namespace SmartCardSign
{
    class SCSign
    {
        static void Main(string[] args)
        {
            // To idendify the Smart Card CryptoGraphic Providers on your
            // computer, use the Microsoft Registry Editor (Regedit.exe).
            // The available Smart Card CryptoGraphic Providers are listed
            // in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.


            // Create a new CspParameters object that identifies a 
            // Smart Card CryptoGraphic Provider.
            // The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types.
            // The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.
            CspParameters csp = new CspParameters(1, "Schlumberger Cryptographic Service Provider");
            csp.Flags = CspProviderFlags.UseDefaultKeyContainer;

            // Initialize an RSACryptoServiceProvider object using
            // the CspParameters object.
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);

            // Create some data to sign.
            byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };

            Console.WriteLine("Data			: " + BitConverter.ToString(data));

            // Sign the data using the Smart Card CryptoGraphic Provider.
            byte[] sig = rsa.SignData(data, "SHA1");

            Console.WriteLine("Signature	: " + BitConverter.ToString(sig));

            // Verify the data using the Smart Card CryptoGraphic Provider.
            bool verified = rsa.VerifyData(data, "SHA1", sig);

            Console.WriteLine("Verified		: " + verified);

        }
    }
}
Imports System.Security.Cryptography



Module SCSign

    Sub Main(ByVal args() As String)
        ' To idendify the Smart Card CryptoGraphic Providers on your
        ' computer, use the Microsoft Registry Editor (Regedit.exe).
        ' The available Smart Card CryptoGraphic Providers are listed
        ' in HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.

        ' Create a new CspParameters object that identifies a 
        ' Smart Card CryptoGraphic Provider.
        ' The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types.
        ' The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.
        Dim csp As New CspParameters(1, "Schlumberger Cryptographic Service Provider")
        csp.Flags = CspProviderFlags.UseDefaultKeyContainer

        ' Initialize an RSACryptoServiceProvider object using
        ' the CspParameters object.
        Dim rsa As New RSACryptoServiceProvider(csp)

        ' Create some data to sign.
        Dim data() As Byte = {0, 1, 2, 3, 4, 5, 6, 7}


        Console.WriteLine("Data   : " + BitConverter.ToString(data))

        ' Sign the data using the Smart Card CryptoGraphic Provider.
        Dim sig As Byte() = rsa.SignData(data, "SHA1")

        Console.WriteLine("Signature : " + BitConverter.ToString(sig))

        ' Verify the data using the Smart Card CryptoGraphic Provider.
        Dim verified As Boolean = rsa.VerifyData(data, "SHA1", sig)

        Console.WriteLine("Verified")

    End Sub

End Module

注釈

クラスCspParametersは、アンマネージ microsoft cryptography API (CAPI) から microsoft 暗号化サービスプロバイダー (csp) を内部的に使用するマネージ暗号化クラスに渡すことができるパラメーターを表します。The CspParameters class represents parameters that you can pass to managed cryptography classes that internally use Microsoft Cryptographic Service Providers (CSPs) from the unmanaged Microsoft Cryptography API (CAPI). "CryptoServiceProvider" で終わる名前を持つクラスは、対応する CSP のマネージコードラッパーです。Classes with names ending in "CryptoServiceProvider" are managed code wrappers for the corresponding CSP.

CspParametersクラスを使用して、次の操作を行います。Use the CspParameters class to do the following:

  • プロバイダーの種類をプロパティProviderTypeまたはProviderNameプロパティに渡すことによって、特定の CSP を指定します。Specify a particular CSP by passing the provider type to the ProviderType or ProviderName property. また、コンストラクターのオーバーロードを使用して CSP を指定することもできます。You can also specify a CSP using an overload of the constructor.

  • 暗号化キーを格納できるキーコンテナーを作成します。Create a key container where you can store cryptographic keys. キーコンテナーを使用すると、暗号化キーを永続化し、悪意のあるサードパーティの機密情報を保存することができます。Key containers provide the most secure way to persist cryptographic keys and keep them secret from malicious third parties. キーコンテナーの作成の詳細については、「」を参照してください。キーコンテナーに非対称キーを格納します。For more information about creating key containers, see How to: Store Asymmetric Keys in a Key Container.

  • KeyNumberプロパティを使用して、非対称署名キーまたは非対称交換キーを作成するかどうかを指定します。Specify whether to create an asymmetric signature key or an asymmetric exchange key using the KeyNumber property.

コンストラクター

CspParameters() CspParameters() CspParameters() CspParameters()

CspParameters クラスの新しいインスタンスを初期化します。Initializes a new instance of the CspParameters class.

CspParameters(Int32) CspParameters(Int32) CspParameters(Int32) CspParameters(Int32)

指定したプロバイダーの種類コードを使用して、CspParameters クラスの新しいインスタンスを初期化します。Initializes a new instance of the CspParameters class with the specified provider type code.

CspParameters(Int32, String) CspParameters(Int32, String) CspParameters(Int32, String) CspParameters(Int32, String)

指定したプロバイダーの種類コードと名前を使用して、CspParameters クラスの新しいインスタンスを初期化します。Initializes a new instance of the CspParameters class with the specified provider type code and name.

CspParameters(Int32, String, String) CspParameters(Int32, String, String) CspParameters(Int32, String, String) CspParameters(Int32, String, String)

指定したプロバイダーの種類コードと名前、および指定したコンテナー名を使用して、CspParameters クラスの新しいインスタンスを初期化します。Initializes a new instance of the CspParameters class with the specified provider type code and name, and the specified container name.

CspParameters(Int32, String, String, CryptoKeySecurity, IntPtr) CspParameters(Int32, String, String, CryptoKeySecurity, IntPtr) CspParameters(Int32, String, String, CryptoKeySecurity, IntPtr) CspParameters(Int32, String, String, CryptoKeySecurity, IntPtr)

プロバイダーの種類、プロバイダー名、コンテナー名、アクセス情報、およびアンマネージ スマート カード パスワード ダイアログを識別するハンドルを使用して、CspParameters クラスの新しいインスタンスを初期化します。Initializes a new instance of the CspParameters class using a provider type, a provider name, a container name, access information, and a handle to an unmanaged smart card password dialog.

CspParameters(Int32, String, String, CryptoKeySecurity, SecureString) CspParameters(Int32, String, String, CryptoKeySecurity, SecureString) CspParameters(Int32, String, String, CryptoKeySecurity, SecureString) CspParameters(Int32, String, String, CryptoKeySecurity, SecureString)

プロバイダーの種類、プロバイダー名、コンテナー名、アクセス情報、およびスマート カード キーに関連付けられたパスワードを使用して、CspParameters クラスの新しいインスタンスを初期化します。Initializes a new instance of the CspParameters class using a provider type, a provider name, a container name, access information, and a password associated with a smart card key.

フィールド

KeyContainerName KeyContainerName KeyContainerName KeyContainerName

CspParameters のキー コンテナー名を表します。Represents the key container name for CspParameters.

KeyNumber KeyNumber KeyNumber KeyNumber

非対称キーを署名キーと交換キーのどちらとして作成するかを指定します。Specifies whether an asymmetric key is created as a signature key or an exchange key.

ProviderName ProviderName ProviderName ProviderName

CspParameters のプロバイダー名を表します。Represents the provider name for CspParameters.

ProviderType ProviderType ProviderType ProviderType

CspParameters のプロバイダーの種類コードを表します。Represents the provider type code for CspParameters.

プロパティ

CryptoKeySecurity CryptoKeySecurity CryptoKeySecurity CryptoKeySecurity

コンテナーに対するアクセス権および監査規則を表す CryptoKeySecurity オブジェクトを取得または設定します。Gets or sets a CryptoKeySecurity object that represents access rights and audit rules for a container.

Flags Flags Flags Flags

暗号化サービス プロバイダー (CSP) の動作を変更する CspParameters のフラグを表します。Represents the flags for CspParameters that modify the behavior of the cryptographic service provider (CSP).

KeyPassword KeyPassword KeyPassword KeyPassword

スマート カード キーに関連付けられたパスワードを取得または設定します。Gets or sets a password associated with a smart card key.

ParentWindowHandle ParentWindowHandle ParentWindowHandle ParentWindowHandle

スマート カード パスワード ダイアログ ボックスのアンマネージ親ウィンドウを識別するハンドルを取得または設定します。Gets or sets a handle to the unmanaged parent window for a smart card password dialog box.

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

適用対象

こちらもご覧ください