Sdílet prostřednictvím


CspParameters Třída

Definice

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)

Platí pro

Viz také