CspParameters Klas

Definitie

Bevat parameters die worden doorgegeven aan de cryptografische serviceprovider (CSP) die cryptografische berekeningen uitvoert. Deze klasse kan niet worden overgenomen.

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
Overname
CspParameters
Kenmerken

Voorbeelden

In het volgende codevoorbeeld wordt een sleutelcontainer gemaakt met behulp van de CspParameters klasse en wordt de sleutel opgeslagen in de container.

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

In het volgende codevoorbeeld wordt de CspParameters klasse gebruikt om een cryptografische smartcardserviceprovider te selecteren. Vervolgens worden gegevens met behulp van de smartcard ondertekend en gecontroleerd.

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

Opmerkingen

De klasse CspParameters vertegenwoordigt parameters die u kunt doorgeven aan beheerde cryptografieklassen die intern gebruikmaken van Microsoft Cryptografische serviceproviders (CSP's) van de niet-beheerde Microsoft Cryptografie-API (CAPI). Klassen met namen die eindigen op CryptoServiceProvider zijn beheerde code-wrappers voor de bijbehorende CSP.

Gebruik de CspParameters klasse om het volgende te doen:

  • Geef een bepaalde CSP op door het providertype door te geven aan de ProviderType of ProviderName eigenschap. U kunt ook een CSP opgeven met behulp van een overbelasting van de constructor.

  • Maak een sleutelcontainer waarin u cryptografische sleutels kunt opslaan. Sleutelcontainers bieden de veiligste manier om cryptografische sleutels te behouden en ze geheim te houden van kwaadwillende derden. Zie Instructies voor het opslaan van asymmetrische sleutels in een sleutelcontainer voor meer informatie over het maken van sleutelcontainers.

  • Geef aan of u een asymmetrische handtekeningsleutel of een asymmetrische exchange-sleutel wilt maken met behulp van de KeyNumber eigenschap.

Constructors

Name Description
CspParameters()

Initialiseert een nieuw exemplaar van de CspParameters klasse.

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

Initialiseert een nieuw exemplaar van de CspParameters klasse met behulp van een providertype, een providernaam, een containernaam, toegangsgegevens en een ingang naar een dialoogvenster met een niet-beheerde smartcardwachtwoord.

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

Initialiseert een nieuw exemplaar van de CspParameters klasse met behulp van een providertype, een providernaam, een containernaam, toegangsgegevens en een wachtwoord dat is gekoppeld aan een smartcardsleutel.

CspParameters(Int32, String, String)

Initialiseert een nieuw exemplaar van de CspParameters klasse met de opgegeven providertypecode en -naam en de opgegeven containernaam.

CspParameters(Int32, String)

Initialiseert een nieuw exemplaar van de CspParameters klasse met de opgegeven providertypecode en -naam.

CspParameters(Int32)

Initialiseert een nieuw exemplaar van de CspParameters klasse met de opgegeven providertypecode.

Velden

Name Description
KeyContainerName

Vertegenwoordigt de naam van de sleutelcontainer voor CspParameters.

KeyNumber

Hiermee geeft u op of een asymmetrische sleutel wordt gemaakt als een handtekeningsleutel of een exchange-sleutel.

ProviderName

Vertegenwoordigt de providernaam voor CspParameters.

ProviderType

Vertegenwoordigt de providertypecode voor CspParameters.

Eigenschappen

Name Description
CryptoKeySecurity

Hiermee wordt een CryptoKeySecurity object opgehaald of ingesteld dat toegangsrechten en controleregels voor een container vertegenwoordigt.

Flags

Vertegenwoordigt de vlaggen voor CspParameters die het gedrag van de cryptografische serviceprovider (CSP) wijzigen.

KeyPassword

Hiermee haalt u een wachtwoord op dat is gekoppeld aan een smartcardsleutel of stelt u dit in.

ParentWindowHandle

Hiermee haalt u een ingang op of stelt u een ingang in op het niet-beheerde bovenliggende venster voor een smartcardwachtwoord.

Methoden

Name Description
Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook