CspParameters Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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) |