CspParameters Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Contém parâmetros que são passados ao fornecedor de serviços criptográficos (CSP) que realiza os cálculos criptográficos. Esta classe não pode ser herdada.
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
- Herança
-
CspParameters
- Atributos
Exemplos
O exemplo de código seguinte cria um contentor de chave usando a CspParameters classe e guarda a chave no contentor.
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
O seguinte exemplo de código utiliza a CspParameters classe para selecionar um Fornecedor de Serviços Criptográficos de Cartões Inteligentes. Depois, assina e verifica os dados usando o cartão inteligente.
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
Observações
A classe CspParameters representa parâmetros que pode passar a classes de criptografia gerida que usam internamente Microsoft Provedores de Serviços Criptográficos (CSPs) a partir da API de Criptografia de Microsoft não gerida (CAPI). As classes com nomes terminados em "CryptoServiceProvider" são wrappers de código geridos para o CSP correspondente.
Use a CspParameters aula para fazer o seguinte:
Especifique um CSP específico passando o tipo de prestador para a ProviderType ou ProviderName propriedade. Também pode especificar um CSP usando uma sobrecarga do construtor.
Cria um contentor de chaves onde possas guardar chaves criptográficas. Os contentores de chave oferecem a forma mais segura de persistir chaves criptográficas e mantê-las em segredo de terceiros maliciosos. Para mais informações sobre a criação de contentores de chaves, veja Como: Armazenar Chaves Assimétricas num Recipiente de Chaves.
Especifique se deve criar uma chave assimétrica assimétrica ou uma chave de troca assimétrica usando a KeyNumber propriedade.
Construtores
| Name | Description |
|---|---|
| CspParameters() |
Inicializa uma nova instância da CspParameters classe. |
| CspParameters(Int32, String, String, CryptoKeySecurity, IntPtr) |
Inicializa uma nova instância da CspParameters classe usando um tipo de fornecedor, um nome de fornecedor, um nome de contentor, informação de acesso e um handle para um diálogo de palavras-passe de cartão inteligente não gerido. |
| CspParameters(Int32, String, String, CryptoKeySecurity, SecureString) |
Inicializa uma nova instância da CspParameters classe usando um tipo de fornecedor, um nome de fornecedor, um nome de contentor, informações de acesso e uma palavra-passe associada a uma chave de cartão inteligente. |
| CspParameters(Int32, String, String) |
Inicializa uma nova instância da CspParameters classe com o código e nome do tipo de fornecedor especificados, e o nome do contentor especificado. |
| CspParameters(Int32, String) |
Inicializa uma nova instância da CspParameters classe com o tipo de fornecedor, código, e nome especificados. |
| CspParameters(Int32) |
Inicializa uma nova instância da CspParameters classe com o código de tipo de fornecedor especificado. |
Campos
| Name | Description |
|---|---|
| KeyContainerName |
Representa o nome do contentor chave para CspParameters. |
| KeyNumber |
Especifica se uma chave assimétrica é criada como chave de assinatura ou como chave de troca. |
| ProviderName |
Representa o nome do fornecedor para CspParameters. |
| ProviderType |
Representa o código de tipo de fornecedor para CspParameters. |
Propriedades
| Name | Description |
|---|---|
| CryptoKeySecurity |
Obtém ou define um CryptoKeySecurity objeto que representa direitos de acesso e regras de auditoria para um contentor. |
| Flags |
Representa as bandeiras que CspParameters modificam o comportamento do fornecedor de serviços criptográficos (CSP). |
| KeyPassword |
Obtém ou define uma palavra-passe associada a uma chave de cartão inteligente. |
| ParentWindowHandle |
Recebe ou define um handle na janela parental não gerida para uma caixa de diálogo de palavra-passe de cartão inteligente. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |