CspParameters Kelas

Definisi

Berisi parameter yang diteruskan ke penyedia layanan kriptografi (CSP) yang melakukan komputasi kriptografi. Kelas ini tidak dapat diwariskan.

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
Warisan
CspParameters
Atribut

Contoh

Contoh kode berikut membuat kontainer kunci menggunakan CspParameters kelas dan menyimpan kunci dalam kontainer.

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

Contoh kode berikut menggunakan CspParameters kelas untuk memilih Penyedia Layanan Kriptografi Kartu Pintar. Kemudian menandatangani dan memverifikasi data menggunakan kartu pintar.

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

Keterangan

Kelas ini CspParameters mewakili parameter yang dapat Anda teruskan ke kelas kriptografi terkelola yang secara internal menggunakan Penyedia Layanan Kriptografi Microsoft (CSP) dari Microsoft Cryptography API (CAPI) yang tidak dikelola. Kelas dengan nama yang berakhiran "CryptoServiceProvider" adalah pembungkus kode terkelola untuk CSP yang sesuai.

CspParameters Gunakan kelas untuk melakukan hal berikut:

  • Tentukan CSP tertentu dengan meneruskan jenis penyedia ke ProviderType properti atau ProviderName . Anda juga dapat menentukan CSP menggunakan kelebihan beban konstruktor.

  • Buat kontainer kunci tempat Anda dapat menyimpan kunci kriptografi. Kontainer utama menyediakan cara paling aman untuk mempertahankan kunci kriptografi dan menjaganya tetap rahasia dari pihak ketiga yang berbahaya. Untuk informasi selengkapnya tentang membuat kontainer utama, lihat Cara: Menyimpan Kunci Asimetris dalam Kontainer Kunci.

  • Tentukan apakah akan membuat kunci tanda tangan asimetris atau kunci pertukaran asimetris menggunakan KeyNumber properti .

Konstruktor

CspParameters()

Menginisialisasi instans baru kelas CspParameters.

CspParameters(Int32)

Menginisialisasi instans CspParameters baru kelas dengan kode jenis penyedia yang ditentukan.

CspParameters(Int32, String)

Menginisialisasi instans CspParameters baru kelas dengan kode dan nama jenis penyedia yang ditentukan.

CspParameters(Int32, String, String)

Menginisialisasi instans CspParameters baru kelas dengan kode dan nama jenis penyedia yang ditentukan, dan nama kontainer yang ditentukan.

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

Menginisialisasi instans CspParameters baru kelas menggunakan jenis penyedia, nama penyedia, nama kontainer, informasi akses, dan handel ke dialog kata sandi kartu pintar yang tidak dikelola.

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

Menginisialisasi instans CspParameters baru kelas menggunakan jenis penyedia, nama penyedia, nama kontainer, informasi akses, dan kata sandi yang terkait dengan kunci kartu pintar.

Bidang

KeyContainerName

Mewakili nama kontainer kunci untuk CspParameters.

KeyNumber

Menentukan apakah kunci asimetris dibuat sebagai kunci tanda tangan atau kunci pertukaran.

ProviderName

Mewakili nama penyedia untuk CspParameters.

ProviderType

Mewakili kode jenis penyedia untuk CspParameters.

Properti

CryptoKeySecurity

Mendapatkan atau mengatur CryptoKeySecurity objek yang mewakili hak akses dan aturan audit untuk kontainer.

Flags

Mewakili bendera untuk CspParameters yang memodifikasi perilaku penyedia layanan kriptografi (CSP).

KeyPassword

Mendapatkan atau mengatur kata sandi yang terkait dengan kunci kartu pintar.

ParentWindowHandle

Mendapatkan atau mengatur handel ke jendela induk yang tidak dikelola untuk kotak dialog kata sandi kartu pintar.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga