CspParameters Constructors

Definition

Initializes a new instance of the CspParameters class.

Overloads

CspParameters()

Initializes a new instance of the CspParameters class.

CspParameters(Int32)

Initializes a new instance of the CspParameters class with the specified provider type code.

CspParameters(Int32, String)

Initializes a new instance of the CspParameters class with the specified provider type code and name.

CspParameters(Int32, String, String)

Initializes a new instance of the CspParameters class with the specified provider type code and name, and the specified container name.

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

Initializes a new instance of the CspParameters class using a provider type, a provider name, a container name, access information, and a handle to an unmanaged smart card password dialog.

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

Initializes a new instance of the CspParameters class using a provider type, a provider name, a container name, access information, and a password associated with a smart card key.

CspParameters()

Source:
CspParameters.cs
Source:
CspParameters.cs
Source:
CspParameters.cs

Initializes a new instance of the CspParameters class.

C#
public CspParameters();

Examples

The following code example creates a key container using the CspParameters class and saves the key in the container.

C#
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));
    }
}

Remarks

This form of CspParameters initializes the ProviderType field to a value of 24, which specifies the PROV_RSA_AES provider. This default provider is compatible with the Aes algorithm.

For information about other provider types, see the ProviderType field.

See also

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CspParameters(Int32)

Source:
CspParameters.cs
Source:
CspParameters.cs
Source:
CspParameters.cs

Initializes a new instance of the CspParameters class with the specified provider type code.

C#
public CspParameters(int dwTypeIn);

Parameters

dwTypeIn
Int32

A provider type code that specifies the kind of provider to create.

Remarks

Use the CspParameters constructor to specify a provider type by passing a numeric value that represents that provider. The numeric values that represent the default provider types are defined in the WinCrypt.h header file:

  • To specify a provider compatible with the RSA algorithm, pass a value of 1 to the dwTypeIn parameter.

  • To specify a provider compatible with the DSA algorithm, pass a value of 13 to the dwTypeIn parameter.

For information about other provider type values, see the ProviderType field. For more information about the default provider types and their behaviors, see the Microsoft Cryptography API (CAPI) documentation.

See also

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CspParameters(Int32, String)

Source:
CspParameters.cs
Source:
CspParameters.cs
Source:
CspParameters.cs

Initializes a new instance of the CspParameters class with the specified provider type code and name.

C#
public CspParameters(int dwTypeIn, string? strProviderNameIn);
C#
public CspParameters(int dwTypeIn, string strProviderNameIn);

Parameters

dwTypeIn
Int32

A provider type code that specifies the kind of provider to create.

strProviderNameIn
String

A provider name.

Examples

The following code example uses the CspParameters class to select a Smart Card Cryptographic Service Provider. It then signs and verifies data using the smart card.

C#
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);
        }
    }
}

Remarks

Use the CspParameters constructor to specify a provider type and name.

Specify a provider type by passing a numeric value that represents the desired provider type. The numeric values that represent the default provider types are defined in the WinCrypt.h header file:

  • To specify a provider compatible with the RSA algorithm, pass a value of 1 to the dwTypeIn parameter.

  • To specify a provider compatible with the DSA algorithm, pass a value of 13 to the dwTypeIn parameter.

For information about other provider type values, see the ProviderType field. For more information about the default provider types and their behaviors, see the Microsoft Cryptography API (CAPI) documentation.

See also

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CspParameters(Int32, String, String)

Source:
CspParameters.cs
Source:
CspParameters.cs
Source:
CspParameters.cs

Initializes a new instance of the CspParameters class with the specified provider type code and name, and the specified container name.

C#
public CspParameters(int dwTypeIn, string? strProviderNameIn, string? strContainerNameIn);
C#
public CspParameters(int dwTypeIn, string strProviderNameIn, string strContainerNameIn);

Parameters

dwTypeIn
Int32

The provider type code that specifies the kind of provider to create.

strProviderNameIn
String

A provider name.

strContainerNameIn
String

A container name.

Remarks

Use the CspParameters constructor to specify a provider type, a provider name, and a container name.

You can use the container name to retrieve a key within that container.

Specify a provider type by passing a numeric value that represents the desired provider type. The numeric values that represent the default provider types are defined in the WinCrypt.h header file:

  • To specify a provider compatible with the RSA algorithm, pass a value of 1 to the dwTypeIn parameter.

  • To specify a provider compatible with the DSA algorithm, pass a value of 13 to the dwTypeIn parameter.

For information about other provider type values, see the ProviderType field. For more information about the default provider types and their behaviors, see the Microsoft Cryptography API (CAPI) documentation.

See also

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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

Initializes a new instance of the CspParameters class using a provider type, a provider name, a container name, access information, and a handle to an unmanaged smart card password dialog.

C#
public CspParameters(int providerType, string providerName, string keyContainerName, System.Security.AccessControl.CryptoKeySecurity cryptoKeySecurity, IntPtr parentWindowHandle);

Parameters

providerType
Int32

The provider type code that specifies the kind of provider to create.

providerName
String

A provider name.

keyContainerName
String

A container name.

cryptoKeySecurity
CryptoKeySecurity

An object that represents access rights and audit rules for the container.

parentWindowHandle
IntPtr

A handle to the parent window for a smart card password dialog.

Remarks

You can use the container name to retrieve a key within that container.

Specify a provider type by passing a numeric value that represents the desired provider type. The numeric values that represent the default provider types are defined in the WinCrypt.h header file:

  • To specify a provider compatible with the RSA algorithm, pass a value of 1 to the dwTypeIn parameter.

  • To specify a provider compatible with the DSA algorithm, pass a value of 13 to the dwTypeIn parameter.

For information about other provider type values, see the ProviderType field. For more information about the default provider types and their behaviors, see the Microsoft Cryptography API (CAPI) documentation.

Applies to

.NET Framework 4.8.1 and other versions
Product Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

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

Initializes a new instance of the CspParameters class using a provider type, a provider name, a container name, access information, and a password associated with a smart card key.

C#
public CspParameters(int providerType, string providerName, string keyContainerName, System.Security.AccessControl.CryptoKeySecurity cryptoKeySecurity, System.Security.SecureString keyPassword);

Parameters

providerType
Int32

The provider type code that specifies the kind of provider to create.

providerName
String

A provider name.

keyContainerName
String

A container name.

cryptoKeySecurity
CryptoKeySecurity

An object that represents access rights and audit rules for a container.

keyPassword
SecureString

A password associated with a smart card key.

Remarks

You can use the container name to retrieve a key within that container.

Specify a provider type by passing a numeric value that represents the desired provider type. The numeric values that represent the default provider types are defined in the WinCrypt.h header file:

  • To specify a provider compatible with the RSA algorithm, pass a value of 1 to the dwTypeIn parameter.

  • To specify a provider compatible with the DSA algorithm, pass a value of 13 to the dwTypeIn parameter.

For information about other provider type values, see the ProviderType field. For more information about the default provider types and their behaviors, see the Microsoft Cryptography API (CAPI) documentation.

Applies to

.NET Framework 4.8.1 and other versions
Product Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1