CspParameters Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Obsahuje parametry, které jsou předány zprostředkovateli kryptografických služeb (CSP), který provádí kryptografické výpočty. Tato třída se nemůže dědit.
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
- Dědičnost
-
CspParameters
- Atributy
Příklady
Následující příklad kódu vytvoří kontejner klíčů pomocí CspParameters třídy a uloží klíč do kontejneru .
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
Následující příklad kódu používá CspParameters třídu k výběru zprostředkovatele kryptografických služeb čipové karty. Potom podepisuje a ověřuje data pomocí čipové karty.
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
Poznámky
Třída CspParameters představuje parametry, které můžete předat spravovaným kryptografickým třídám, které interně používají zprostředkovatele kryptografických služeb (CSP) Microsoftu z nespravovaného rozhraní API microsoftu (CAPI). Třídy s názvy končícími na CryptoServiceProvider jsou obálky spravovaného kódu pro odpovídající CSP.
CspParameters Pomocí třídy proveďte následující akce:
Zadejte konkrétního poskytovatele CSP předáním typu zprostředkovatele do ProviderType vlastnosti nebo ProviderName . Můžete také určit poskytovatele CSP pomocí přetížení konstruktoru.
Vytvořte kontejner klíčů, do kterého můžete ukládat kryptografické klíče. Kontejnery klíčů poskytují nejbezpečnější způsob, jak zachovat kryptografické klíče a udržet je v tajnosti před třetími stranami se zlými úmysly. Další informace o vytváření kontejnerů klíčů najdete v tématu Postupy: Ukládání asymetrických klíčů do kontejneru klíčů.
Určete, jestli se má vytvořit asymetrický klíč podpisu nebo asymetrický klíč výměny KeyNumber pomocí vlastnosti .
Konstruktory
CspParameters() |
Inicializuje novou instanci CspParameters třídy . |
CspParameters(Int32) |
Inicializuje novou instanci CspParameters třídy se zadaným kódem typu zprostředkovatele. |
CspParameters(Int32, String) |
Inicializuje novou instanci CspParameters třídy se zadaným kódem a názvem typu zprostředkovatele. |
CspParameters(Int32, String, String) |
Inicializuje novou instanci CspParameters třídy se zadaným kódem a názvem typu zprostředkovatele a zadaným názvem kontejneru. |
CspParameters(Int32, String, String, CryptoKeySecurity, IntPtr) |
Inicializuje novou instanci CspParameters třídy pomocí typu zprostředkovatele, název poskytovatele, název kontejneru, přístupové informace a popisovač nespravovaného dialogového okna hesla čipové karty. |
CspParameters(Int32, String, String, CryptoKeySecurity, SecureString) |
Inicializuje novou instanci CspParameters třídy pomocí typu zprostředkovatele, názvu poskytovatele, názvu kontejneru, informací o přístupu a hesla přidruženého ke klíči čipové karty. |
Pole
KeyContainerName |
Představuje název kontejneru klíčů pro CspParameters. |
KeyNumber |
Určuje, jestli se asymetrický klíč vytvoří jako klíč podpisu nebo klíč výměny. |
ProviderName |
Představuje název zprostředkovatele pro CspParameters. |
ProviderType |
Představuje kód typu zprostředkovatele pro CspParameters. |
Vlastnosti
CryptoKeySecurity |
Získá nebo nastaví CryptoKeySecurity objekt, který představuje přístupová práva a pravidla auditu pro kontejner. |
Flags |
Představuje příznaky, CspParameters které upravují chování zprostředkovatele kryptografických služeb (CSP). |
KeyPassword |
Získá nebo nastaví heslo přidružené ke klíči čipové karty. |
ParentWindowHandle |
Získá nebo nastaví popisovač nespravovaného nadřazeného okna pro dialogové okno hesla čipové karty. |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |