CspParameters Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Содержит параметры, передаваемые поставщику служб шифрования (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 представляет параметры, которые можно передать в управляемые классы шифрования, которые используют поставщиков служб шифрования Майкрософт (CSP) из неуправляемого API шифрования Майкрософт (CAPI). Классы с именами, заканчивающиеся на CryptoServiceProvider, являются оболочками управляемого кода для соответствующего CSP.
CspParameters Используйте класс для выполнения следующих действий:
Укажите конкретный поставщик CSP, передав тип поставщика в ProviderType свойство или ProviderName . Можно также указать 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 |
Представляет флаги для CspParameters, изменяющие поведение поставщика служб шифрования (CSP). |
KeyPassword |
Возвращает или задает пароль, связанный со смарт-картой. |
ParentWindowHandle |
Возвращает или задает дескриптор неуправляемого родительского окна для окна ввода пароля смарт-карты. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |