CspParameters Classe

Définition

Contient des paramètres qui sont passés au fournisseur de services de chiffrement (CSP) qui effectue des calculs de chiffrement. Cette classe ne peut pas être héritée.

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
Héritage
CspParameters
Attributs

Exemples

L’exemple de code suivant crée un conteneur de clés à l’aide de la CspParameters classe et enregistre la clé dans le conteneur.

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

L’exemple de code suivant utilise la CspParameters classe pour sélectionner un fournisseur de services de chiffrement de carte à puce. Il signe et vérifie ensuite les données à l’aide de la carte intelligente.

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

Remarques

La CspParameters classe représente les paramètres que vous pouvez passer à des classes de chiffrement managées qui utilisent en interne les fournisseurs de services de chiffrement Microsoft (CSP) à partir de l’API de chiffrement Microsoft (CAPI) non managée. Les classes dont le nom se termine par « CryptoServiceProvider » sont des wrappers de code managé pour le csp correspondant.

Utilisez la CspParameters classe pour effectuer les opérations suivantes :

  • Spécifiez un fournisseur csp particulier en passant le type de fournisseur à la ProviderType propriété ou ProviderName . Vous pouvez également spécifier un fournisseur csp à l’aide d’une surcharge du constructeur.

  • Créez un conteneur de clés dans lequel vous pouvez stocker des clés de chiffrement. Les conteneurs de clés offrent le moyen le plus sécurisé de conserver les clés de chiffrement et de les garder secrètes contre des tiers malveillants. Pour plus d’informations sur la création de conteneurs de clés, consultez Guide pratique pour stocker des clés asymétriques dans un conteneur de clés.

  • Spécifiez s’il faut créer une clé de signature asymétrique ou une clé d’échange asymétrique à l’aide de la KeyNumber propriété .

Constructeurs

CspParameters()

Initialise une nouvelle instance de la classe CspParameters.

CspParameters(Int32)

Initialise une nouvelle instance de la classe CspParameters avec le code de type de fournisseur spécifié.

CspParameters(Int32, String)

Initialise une nouvelle instance de la classe CspParameters avec le code de type et le nom de fournisseur spécifiés.

CspParameters(Int32, String, String)

Initialise une nouvelle instance de la classe CspParameters avec le code et le nom du type de fournisseur spécifié, ainsi que le nom du conteneur spécifié.

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

Initialise une nouvelle instance de la classe CspParameters à l'aide d'un type de fournisseur, d'un nom de fournisseur, d'un nom de conteneur, d'informations d'accès et d'un handle vers une boîte de dialogue non managée pour mot de passe d'accès à une carte à puce.

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

Initialise une nouvelle instance de la classe CspParameters à l'aide d'un type de fournisseur, d'un nom de fournisseur, d'un nom de conteneur, d'informations d'accès et d'un mot de passe associé à une clé de carte à puce.

Champs

KeyContainerName

Représente le nom du conteneur de clé de CspParameters.

KeyNumber

Indique si une clé asymétrique a été créée comme clé de signature ou clé d’échange.

ProviderName

Représente le nom du fournisseur de CspParameters.

ProviderType

Représente le code du type de fournisseur de CspParameters.

Propriétés

CryptoKeySecurity

Obtient ou définit un objet CryptoKeySecurity qui représente des droits d'accès et des règles d'audit pour un conteneur.

Flags

Représente les indicateurs de CspParameters qui modifient le comportement du fournisseur de services de chiffrement.

KeyPassword

Obtient ou définit un mot de passe associé à une clé de carte à puce.

ParentWindowHandle

Obtient ou définit un handle vers la fenêtre parente non managée d'une boîte de dialogue pour mot de passe d'accès à une carte à puce.

Méthodes

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à

Voir aussi