CspParameters 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
암호화 계산을 수행하는 CSP(암호화 서비스 공급자)에 전달된 매개 변수가 들어 있습니다. 이 클래스는 상속될 수 없습니다.
public ref class CspParameters sealed
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public sealed class CspParameters
public sealed class CspParameters
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CspParameters
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
type CspParameters = class
type CspParameters = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type CspParameters = class
Public NotInheritable Class CspParameters
- 상속
-
CspParameters
- 특성
예제
다음 코드 예제에서는 클래스를 사용 하 여 키 컨테이너를 CspParameters 만들고 컨테이너에 키를 저장 합니다.
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 사용하여 스마트 카드 암호화 서비스 공급자를 선택합니다. 그런 다음 스마트 카드를 사용하여 데이터에 서명하고 확인합니다.
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"SHA256" );
Console::WriteLine( L"Signature : {0}", BitConverter::ToString( sig ) );
// Verify the data using the Smart Card CryptoGraphic Provider.
bool verified = rsa->VerifyData( data, L"SHA256", 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, "SHA256");
Console.WriteLine("Signature : " + BitConverter.ToString(sig));
// Verify the data using the Smart Card CryptoGraphic Provider.
bool verified = rsa.VerifyData(data, "SHA256", 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, "SHA256")
Console.WriteLine("Signature : " + BitConverter.ToString(sig))
' Verify the data using the Smart Card CryptoGraphic Provider.
Dim verified As Boolean = rsa.VerifyData(data, "SHA256", sig)
Console.WriteLine("Verified")
End Sub
End Module
설명
클래스는 CspParameters 관리되지 않는 MICROSOFT Cryptography API(CAPI)에서 내부적으로 Microsoft CSP(Cryptographic Service Providers)를 사용하는 관리형 암호화 클래스에 전달할 수 있는 매개 변수를 나타냅니다. 이름이 "CryptoServiceProvider"로 끝나는 클래스는 해당 CSP에 대한 관리 코드 래퍼입니다.
클래스를 CspParameters 사용하여 다음을 수행합니다.
공급자 형식을 또는 ProviderName 속성에 전달하여 특정 CSP를 ProviderType 지정합니다. 생성자의 오버로드를 사용하여 CSP를 지정할 수도 있습니다.
암호화 키를 저장할 수 있는 키 컨테이너를 만듭니다. 키 컨테이너는 암호화 키를 유지하고 악의적인 타사로부터 비밀을 유지하는 가장 안전한 방법을 제공합니다. 키 컨테이너를 만드는 방법에 대한 자세한 내용은 방법: 키 컨테이너에 비대칭 키 저장을 참조하세요.
속성을 사용하여 KeyNumber 비대칭 서명 키 또는 비대칭 교환 키를 만들지 여부를 지정합니다.
생성자
CspParameters() |
CspParameters 클래스의 새 인스턴스를 초기화합니다. |
CspParameters(Int32) |
지정된 공급자 유형 코드를 사용하여 CspParameters 클래스의 새 인스턴스를 초기화합니다. |
CspParameters(Int32, String) |
지정된 공급자 형식 코드와 이름을 사용하여 CspParameters 클래스의 새 인스턴스를 초기화합니다. |
CspParameters(Int32, String, String) |
지정된 공급자 형식 코드와 이름, 지정된 컨테이너 이름을 사용하여 CspParameters 클래스의 새 인스턴스를 초기화합니다. |
CspParameters(Int32, String, String, CryptoKeySecurity, IntPtr) |
공급자 형식, 공급자 이름, 컨테이너 이름, 액세스 정보 및 비관리 스마트 카드 암호 대화 상자에 대한 핸들을 사용하여 CspParameters 클래스의 새 인스턴스를 초기화합니다. |
CspParameters(Int32, String, String, CryptoKeySecurity, SecureString) |
공급자 형식, 공급자 이름, 컨테이너 이름, 액세스 정보 및 스마트 카드 키와 관련된 암호를 사용하여 CspParameters 클래스의 새 인스턴스를 초기화합니다. |
필드
KeyContainerName |
CspParameters에 대한 키 컨테이너 이름을 나타냅니다. |
KeyNumber |
비대칭 키를 서명 키 또는 교환 키로 만들지 여부를 지정합니다. |
ProviderName |
CspParameters의 공급자 이름을 나타냅니다. |
ProviderType |
CspParameters의 공급자 형식 코드를 나타냅니다. |
속성
CryptoKeySecurity |
컨테이너에 대한 액세스 권한과 감사 규칙을 나타내는 CryptoKeySecurity 개체를 가져오거나 설정합니다. |
Flags |
CSP(암호화 서비스 공급자)의 동작을 수정하는 CspParameters 의 플래그를 나타냅니다. |
KeyPassword |
스마트 카드 키와 관련된 암호를 가져오거나 설정합니다. |
ParentWindowHandle |
스마트 카드 암호 대화 상자의 비관리 부모 창에 대한 핸들을 가져오거나 설정합니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
추가 정보
.NET