CspParameters Класс

Определение

Содержит параметры, передаваемые поставщику служб шифрования (CSP), выполняющим криптографические вычисления. Этот класс не наследуется.

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 класса и сохраняется ключ в контейнере.

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 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 поставщиков криптографических служб (CSPs) из неуправляемого API шифрования Microsoft (CAPI). Классы с именами, заканчивающимися в CryptoServiceProvider, являются управляемыми оболочками кода для соответствующего CSP.

CspParameters Используйте класс для выполнения следующих действий:

  • Укажите конкретный поставщик CSP, передав тип поставщика в ProviderType свойство или ProviderName свойство. Вы также можете указать поставщик служб CSP с помощью перегрузки конструктора.

  • Создайте контейнер ключей, в котором можно хранить криптографические ключи. Контейнеры ключей обеспечивают наиболее безопасный способ сохранения криптографических ключей и сохранения их секрета от вредоносных сторон. Дополнительные сведения о создании контейнеров ключей см. в статье "Практическое руководство. Хранение асимметричных ключей в контейнере ключей".

  • Укажите, следует ли создать асимметричный ключ подписи или асимметричный ключ обмена с помощью KeyNumber свойства.

Конструкторы

Имя Описание
CspParameters()

Инициализирует новый экземпляр класса CspParameters.

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

Инициализирует новый экземпляр CspParameters класса с помощью типа поставщика, имени поставщика, имени контейнера, сведений о доступе и дескриптора неуправляемого диалогового окна паролей смарт-карты.

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

Инициализирует новый экземпляр CspParameters класса с помощью типа поставщика, имени поставщика, имени контейнера, сведений о доступе и пароля, связанного с ключом смарт-карты.

CspParameters(Int32, String, String)

Инициализирует новый экземпляр CspParameters класса с указанным кодом и именем типа поставщика, а также указанным именем контейнера.

CspParameters(Int32, String)

Инициализирует новый экземпляр CspParameters класса с указанным кодом и именем типа поставщика.

CspParameters(Int32)

Инициализирует новый экземпляр CspParameters класса с указанным кодом типа поставщика.

Поля

Имя Описание
KeyContainerName

Представляет имя контейнера ключа для CspParameters.

KeyNumber

Указывает, создается ли асимметричный ключ в качестве ключа подписи или ключа обмена.

ProviderName

Представляет имя поставщика для CspParameters.

ProviderType

Представляет код типа поставщика для CspParameters.

Свойства

Имя Описание
CryptoKeySecurity

Возвращает или задает CryptoKeySecurity объект, представляющий права доступа и правила аудита для контейнера.

Flags

Представляет флаги для CspParameters этого изменения поведения поставщика служб шифрования (CSP).

KeyPassword

Возвращает или задает пароль, связанный с ключом смарт-карты.

ParentWindowHandle

Возвращает или задает дескриптор для неуправляемого родительского окна для диалогового окна пароля смарт-карты.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

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

Служит хэш-функцией по умолчанию.

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

Возвращает Type текущего экземпляра.

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

Создает неглубокую копию текущей Object.

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

Возвращает строку, представляющую текущий объект.

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

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

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