Freigeben über


CspParameters Klasse

Definition

Enthält Parameter, die an den Kryptografiedienstanbieter (CSP) übergeben werden, der kryptografische Berechnungen durchführt. Diese Klasse kann nicht vererbt werden.

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
Vererbung
CspParameters
Attribute

Beispiele

Im folgenden Codebeispiel wird ein Schlüsselcontainer mithilfe der CspParameters -Klasse erstellt und der Schlüssel im Container gespeichert.

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

Im folgenden Codebeispiel wird die CspParameters -Klasse verwendet, um einen Smartcard-Kryptografiedienstanbieter auszuwählen. Anschließend werden Daten mithilfe der Smartcard signiert und überprüft.

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

Hinweise

Die CspParameters -Klasse stellt Parameter dar, die Sie an verwaltete Kryptografieklassen übergeben können, die intern Microsoft Cryptographic Service Providers (CSPs) aus der nicht verwalteten Microsoft Cryptography API (CAPI) verwenden. Klassen mit Namen, die auf "CryptoServiceProvider" enden, sind verwaltete Codewrapper für den entsprechenden CSP.

Verwenden Sie die CspParameters -Klasse, um die folgenden Schritte auszuführen:

  • Geben Sie einen bestimmten CSP an, indem Sie den Anbietertyp an die - oder ProviderName -ProviderTypeEigenschaft übergeben. Sie können auch einen CSP mithilfe einer Überladung des Konstruktors angeben.

  • Erstellen Sie einen Schlüsselcontainer, in dem Sie kryptografische Schlüssel speichern können. Schlüsselcontainer bieten die sicherste Möglichkeit, kryptografische Schlüssel zu speichern und sie vor böswilligen Dritten geheim zu halten. Weitere Informationen zum Erstellen von Schlüsselcontainern finden Sie unter Gewusst wie: Speichern von asymmetrischen Schlüsseln in einem Schlüsselcontainer.

  • Geben Sie mithilfe der KeyNumber -Eigenschaft an, ob ein asymmetrischer Signaturschlüssel oder ein asymmetrischer Austauschschlüssel erstellt werden soll.

Konstruktoren

CspParameters()

Initialisiert eine neue Instanz der CspParameters-Klasse.

CspParameters(Int32)

Initialisiert eine neue Instanz der CspParameters-Klasse mit dem angegebenen Anbietertypcode.

CspParameters(Int32, String)

Initialisiert eine neue Instanz der CspParameters-Klasse mit dem angegebenen Code und Namen des Anbietertyps.

CspParameters(Int32, String, String)

Initialisiert eine neue Instanz der CspParameters-Klasse mit dem angegebenen Code und Namen des Anbietertyps und dem angegebenen Containertyp.

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

Initialisiert eine neue Instanz der CspParameters-Klasse mit einem Anbietertyp, einem Anbieternamen, einem Containernamen, Zugriffsinformationen und einem Handle für ein nicht verwaltetes Smartcard-Kennwortdialogfeld.

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

Initialisiert eine neue Instanz der CspParameters-Klasse mit einem Anbietertyp, einem Anbieternamen, einem Containernamen, Zugriffsinformationen und einem Kennwort, das einem Smartcardschlüssel zugeordnet ist.

Felder

KeyContainerName

Stellt den Schlüsselcontainernamen für CspParameters dar.

KeyNumber

Gibt an, ob ein asymmetrischer Schlüssel als Signaturschlüssel oder als Austauschschlüssel erstellt wurde.

ProviderName

Stellt den Anbieternamen für CspParameters dar.

ProviderType

Stellt den Anbietertypcode für CspParameters dar.

Eigenschaften

CryptoKeySecurity

Ruft ein CryptoKeySecurity-Objekt ab, das Zugriffsrechte und Überwachungsregeln für einen Container darstellt, oder legt dieses fest.

Flags

Stellt die Flags für CspParameters dar, die das Verhalten des Kryptografiedienstanbieters (Cryptographic Service Provider, CSP) ändern.

KeyPassword

Ruft ein einem Smartcardschlüssel zugeordnetes Kennwort ab oder legt dieses fest.

ParentWindowHandle

Ruft ein Handle für das nicht verwaltete übergeordnete Fenster eines Smartcard-Kennwortdialogfelds ab oder legt dieses fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für:

Weitere Informationen