CspParameters Classe

Definizione

Contiene parametri passati al provider di servizi di crittografia (CSP) che esegue calcoli crittografici. La classe non può essere ereditata.

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
Ereditarietà
CspParameters
Attributi

Esempio

L'esempio di codice seguente crea un contenitore di chiavi usando la CspParameters classe e salva la chiave nel contenitore.

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

Nell'esempio di codice seguente viene usata la CspParameters classe per selezionare un provider di servizi di crittografia smart card. Quindi firma e verifica i dati usando la smart card.

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

Commenti

La classe CspParameters rappresenta i parametri che è possibile passare alle classi di crittografia gestite che usano internamente Microsoft provider di servizi di crittografia (CSP) dall'API di crittografia Microsoft non gestita (CAPI). Le classi con nomi che terminano in "CryptoServiceProvider" sono wrapper di codice gestito per il provider di servizi di configurazione corrispondente.

Usare la CspParameters classe per eseguire le operazioni seguenti:

  • Specificare un provider di servizi di configurazione specifico passando il tipo di provider alla ProviderType proprietà o ProviderName . È anche possibile specificare un provider di servizi di configurazione usando un overload del costruttore.

  • Creare un contenitore di chiavi in cui è possibile archiviare le chiavi crittografiche. I contenitori di chiavi offrono il modo più sicuro per rendere persistenti le chiavi crittografiche e mantenerle segrete da terze parti dannose. Per altre informazioni sulla creazione di contenitori di chiavi, vedere Procedura: Archiviare chiavi asimmetriche in un contenitore di chiavi.

  • Specificare se creare una chiave di firma asimmetrica o una chiave di scambio asimmetrica utilizzando la KeyNumber proprietà .

Costruttori

Nome Descrizione
CspParameters()

Inizializza una nuova istanza della classe CspParameters.

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

Inizializza una nuova istanza della CspParameters classe utilizzando un tipo di provider, un nome del provider, un nome del contenitore, informazioni di accesso e un handle per una finestra di dialogo password della smart card non gestita.

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

Inizializza una nuova istanza della CspParameters classe utilizzando un tipo di provider, un nome del provider, un nome del contenitore, informazioni di accesso e una password associata a una chiave smart card.

CspParameters(Int32, String, String)

Inizializza una nuova istanza della CspParameters classe con il codice e il nome del tipo di provider specificati e il nome del contenitore specificati.

CspParameters(Int32, String)

Inizializza una nuova istanza della CspParameters classe con il codice e il nome del tipo di provider specificati.

CspParameters(Int32)

Inizializza una nuova istanza della CspParameters classe con il codice del tipo di provider specificato.

Campi

Nome Descrizione
KeyContainerName

Rappresenta il nome del contenitore di chiavi per CspParameters.

KeyNumber

Specifica se una chiave asimmetrica viene creata come chiave di firma o chiave di scambio.

ProviderName

Rappresenta il nome del provider per CspParameters.

ProviderType

Rappresenta il codice del tipo di provider per CspParameters.

Proprietà

Nome Descrizione
CryptoKeySecurity

Ottiene o imposta un CryptoKeySecurity oggetto che rappresenta i diritti di accesso e le regole di controllo per un contenitore.

Flags

Rappresenta i flag per CspParameters che modificano il comportamento del provider di servizi di crittografia (CSP).

KeyPassword

Ottiene o imposta una password associata a una chiave smart card.

ParentWindowHandle

Ottiene o imposta un handle per la finestra padre non gestita per una finestra di dialogo password smart card.

Metodi

Nome Descrizione
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche