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
public sealed class CspParameters
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class CspParameters
type CspParameters = class
[<System.Runtime.InteropServices.ComVisible(true)>]
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"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Класс представляет параметры, которые можно передать в управляемые классы шифрования, которые внутренне используют поставщики служб криптографии Майкрософт (CSP) из неуправляемого Microsoft CRYPTOGRAPHY API (CAPI).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:

  • Укажите конкретный CSP, передав тип поставщика ProviderType ProviderName свойству или.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.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

Представляет флаги для CspParameters, изменяющие поведение поставщика служб шифрования (CSP).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()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Применяется к

См. также раздел