CspParameters 클래스

정의

암호화 계산을 수행하는 CSP(암호화 서비스 공급자)에 전달되는 매개 변수를 포함합니다.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
상속
CspParameters
특성

예제

다음 코드 예제에서는 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 암호화 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. 키 컨테이너에는 암호화 키를 유지 하 고 악의적인 제 3 자에서 비밀로 유지 하세요는 가장 안전한 방법을 제공 합니다.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 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the CspParameters class.

CspParameters(Int32)

지정된 공급자 형식 코드를 사용하여 CspParameters 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the CspParameters class with the specified provider type code.

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 클래스의 새 인스턴스를 초기화합니다.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 클래스의 새 인스턴스를 초기화합니다.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 클래스의 새 인스턴스를 초기화합니다.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

CspParameters에 대한 키 컨테이너 이름을 나타냅니다.Represents the key container name for CspParameters.

KeyNumber

비대칭 키를 서명 키 또는 교환 키로 만들지 여부를 지정합니다.Specifies whether an asymmetric key is created as a signature key or an exchange key.

ProviderName

CspParameters에 대한 공급자 이름을 나타냅니다.Represents the provider name for CspParameters.

ProviderType

CspParameters에 대한 공급자 형식 코드를 나타냅니다.Represents the provider type code for CspParameters.

속성

CryptoKeySecurity

컨테이너에 대한 액세스 권한과 감사 규칙을 나타내는 CryptoKeySecurity 개체를 가져오거나 설정합니다.Gets or sets a CryptoKeySecurity object that represents access rights and audit rules for a container.

Flags

CSP(암호화 서비스 공급자)의 동작을 수정하는 CspParameters의 플래그를 나타냅니다.Represents the flags for CspParameters that modify the behavior of the cryptographic service provider (CSP).

KeyPassword

스마트 카드 키와 관련 된 암호를 가져오거나 설정 합니다.Gets or sets a password associated with a smart card key.

ParentWindowHandle

스마트 카드 암호 대화 상자의 비관리 부모 창에 대 한 핸들을 가져오거나 설정 합니다.Gets or sets a handle to the unmanaged parent window for a smart card password dialog box.

메서드

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

적용 대상

추가 정보