Class CertificadoDigital
Trabalhar com certificado digital
Inheritance
Inherited Members
Namespace: Unimake.Security.Platform
Assembly: Unimake.Security.Platform.dll
Syntax
[ClassInterface(ClassInterfaceType.AutoDual)]
[ComVisible(true)]
public class CertificadoDigital
Constructors
CertificadoDigital()
Trabalhar com certificado digital
Declaration
public CertificadoDigital()
Methods
AbrirTelaSelecao()
Abre a tela de dialogo do windows para seleção do certificado digital
Declaration
public X509Certificate2 AbrirTelaSelecao()
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Retorna o certificado digital selecionado |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.AbrirTelaSelecao();
MessageBox.Show(certificadoSelecionado.Subject);
BuscarCertificadoDigital(String)
Busca o certificado digital pelo Serial Number ou Thumb Print no repositório do windows
Declaration
public X509Certificate2 BuscarCertificadoDigital(string serialNumberOrThumbPrint)
Parameters
Type | Name | Description |
---|---|---|
System.String | serialNumberOrThumbPrint | Serial number ou Thumb print do certificado digital a ser utilizado na localização |
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Certificado digital |
Examples
Buscar o certificado digital pelo serialNumber:
var serialNumber = "1234567890"
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.BuscarCertificadoDigital(serialNumber);
MessageBox.Show(certificadoSelecionado.Subject);
Buscar o certificado digital pelo ThumbPrint:
var thumbPrint = "1234567890154878787978987987987"
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.BuscarCertificadoDigital(thumbPrint);
MessageBox.Show(certificadoSelecionado.Subject);
CarregarCertificadoDigitalA1(Byte[], String)
Carrega o certificado digital pelos bytes do certificado
Declaration
[ComVisible(false)]
public X509Certificate2 CarregarCertificadoDigitalA1(byte[] bytes, string senha)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | bytes | Bytes do certificado para carga do mesmo |
System.String | senha | Senha utilizada para instalar o certificado, será usada para carga do mesmo |
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Certificado Digital |
Examples
var certificado = new CertificadoDigital();
Criando uma array bytes do arquivo do certificado para gravar em banco de dados (visando maior segurança) para resgatar o conteúdo da base de dados.
var certificadoByte = certificado.ToByteArray(@"d:\projetos\UnimakePV.pfx");
Recuperar o certificado para uso a partir de uma array byte
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(certificadoByte, "12345678");
MessageBox.Show(certificadoSelecionado.Subject);
CarregarCertificadoDigitalA1(Byte[], String, X509KeyStorageFlags)
Carrega o certificado digital pelos bytes do certificado
Declaration
[ComVisible(false)]
public X509Certificate2 CarregarCertificadoDigitalA1(byte[] bytes, string senha, X509KeyStorageFlags keyStorageFlags)
Parameters
Type | Name | Description |
---|---|---|
System.Byte[] | bytes | Bytes do certificado para carga do mesmo |
System.String | senha | Senha utilizada para instalar o certificado, será usada para carga do mesmo |
System.Security.Cryptography.X509Certificates.X509KeyStorageFlags | keyStorageFlags | Define onde e como importar a chave privada de um certificado X.509. (Uma combinação bit a bit dos valores de enumeração que controlam onde e como importar o certificado.) |
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Certificado Digital |
Examples
var certificado = new CertificadoDigital();
Criando uma array bytes do arquivo do certificado para gravar em banco de dados (visando maior segurança) para resgatar o conteúdo da base de dados.
var certificadoByte = certificado.ToByteArray(@"d:\projetos\UnimakePV.pfx");
Recuperar o certificado para uso a partir de uma array byte com definição de onde e como importar a chave privada, muitas vezes necessário definir em aplicações web.
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(certificadoByte, "12345678", X509KeyStorageFlags.MachineKeySet);
MessageBox.Show(certificadoSelecionado.Subject);
CarregarCertificadoDigitalA1(String, String)
Carrega o certificado digital A1 direto do arquivo .PFX
Declaration
public X509Certificate2 CarregarCertificadoDigitalA1(string caminho, string senha)
Parameters
Type | Name | Description |
---|---|---|
System.String | caminho | Caminho do certificado digital. Ex. c:\certificados\certificado.pfx |
System.String | senha | Senha utilizada para instalar o arquivo .pfx |
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Certificado Digital |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(@"d:\projetos\UnimakePV.pfx", "12345678");
MessageBox.Show(certificadoSelecionado.Subject);
CarregarCertificadoDigitalA1(String, String, X509KeyStorageFlags)
Carrega o certificado digital A1 direto do arquivo .PFX
Declaration
public X509Certificate2 CarregarCertificadoDigitalA1(string caminho, string senha, X509KeyStorageFlags keyStorageFlags)
Parameters
Type | Name | Description |
---|---|---|
System.String | caminho | Caminho do certificado digital. Ex. c:\certificados\certificado.pfx |
System.String | senha | Senha utilizada para instalar o arquivo .pfx |
System.Security.Cryptography.X509Certificates.X509KeyStorageFlags | keyStorageFlags | Define onde e como importar a chave privada de um certificado X.509. (Uma combinação bit a bit dos valores de enumeração que controlam onde e como importar o certificado.) |
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Certificado Digital |
FromBase64(String, String)
Converte a string Base64 no certificado
Declaration
public X509Certificate2 FromBase64(string base64, string password)
Parameters
Type | Name | Description |
---|---|---|
System.String | base64 | String base64 convertida pelo método ToBase64(String) |
System.String | password | Senha do certificado |
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Certificado digital |
Examples
var certificado = new CertificadoDigital();
Criando um Base64 do arquivo do certificado para gravar em banco de dados (visando maior segurança) para resgatar o conteúdo da base de dados.
var certificadoBase64 = certificado.ToBase64(@"d:\projetos\UnimakePV.pfx");
Recuperar o certificado para uso a partir de um Base64
var certificadoSelecionado = certificado.FromBase64(certificadoBase64, "12345678");
MessageBox.Show(certificadoSelecionado.Subject);
FromBase64(String, String, X509KeyStorageFlags)
Converte a string Base64 no certificado
Declaration
public X509Certificate2 FromBase64(string base64, string password, X509KeyStorageFlags keyStorageFlags)
Parameters
Type | Name | Description |
---|---|---|
System.String | base64 | String base64 convertida pelo método ToBase64(String) |
System.String | password | Senha do certificado |
System.Security.Cryptography.X509Certificates.X509KeyStorageFlags | keyStorageFlags | Define onde e como importar a chave privada de um certificado X.509. (Uma combinação bit a bit dos valores de enumeração que controlam onde e como importar o certificado.) |
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Certificado digital |
Examples
var certificado = new CertificadoDigital();
Criando um Base64 do arquivo do certificado para gravar em banco de dados (visando maior segurança) para resgatar o conteúdo da base de dados.
var certificadoBase64 = certificado.ToBase64(@"d:\projetos\UnimakePV.pfx");
Recupera o certificado digital de uma string Base64 com definição de onde e como importar a chave privada, muitas vezes necessário definir em aplicações web.
var certificadoSelecionado = certificado.FromBase64(certificadoBase64, "12345678", X509KeyStorageFlags.MachineKeySet);
MessageBox.Show(certificadoSelecionado.Subject);
GetNotAfter(X509Certificate2)
Retorna o Not After (Data de vencimento final do certificado digital) do certificado digital
Declaration
public string GetNotAfter(X509Certificate2 certificado)
Parameters
Type | Name | Description |
---|---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | certificado | Certificado que é para pegar a informação |
Returns
Type | Description |
---|---|
System.String | Retorna o Not AfterThumbprint |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(@"d:\projetos\UnimakePV.pfx", "12345678");
var validadeInicial = certificado.GetNotAfter(certificadoSelecionado)
GetNotBefore(X509Certificate2)
Retorna o Not Before (Data de vencimento inicial do certificado digital) do certificado digital
Declaration
public string GetNotBefore(X509Certificate2 certificado)
Parameters
Type | Name | Description |
---|---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | certificado | Certificado que é para pegar a informação |
Returns
Type | Description |
---|---|
System.String | Retorna o NotBefore |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(@"d:\projetos\UnimakePV.pfx", "12345678");
var validadeFinal = certificado.GetNotBefore(certificadoSelecionado)
GetSerialNumber(X509Certificate2)
Retorna o SerialNumber (Número de série, ID) do certificado digital
Declaration
public string GetSerialNumber(X509Certificate2 certificado)
Parameters
Type | Name | Description |
---|---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | certificado | Certificado que é para pegar a informação |
Returns
Type | Description |
---|---|
System.String | Retorna o SerialNumber |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(@"d:\projetos\UnimakePV.pfx", "12345678");
var serialNumber = certificado.GetSerialNumber(certificadoSelecionado)
GetSubject(X509Certificate2)
Retorna Subject (dados do proprietário) do certificado digital
Declaration
public string GetSubject(X509Certificate2 certificado)
Parameters
Type | Name | Description |
---|---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | certificado | Certificado que é para pegar a informação |
Returns
Type | Description |
---|---|
System.String | Retorna o Subject |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(@"d:\projetos\UnimakePV.pfx", "12345678");
var subject = certificado.GetSubject(certificadoSelecionado)
GetThumbprint(X509Certificate2)
Retorna o Thumbprint (impressão digital, ID) do certificado digital
Declaration
public string GetThumbprint(X509Certificate2 certificado)
Parameters
Type | Name | Description |
---|---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | certificado | Certificado que é para pegar a informação |
Returns
Type | Description |
---|---|
System.String | Retorna o Thumbprint |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(@"d:\projetos\UnimakePV.pfx", "12345678");
var thumbPrint = certificado.GetThumbprint(certificadoSelecionado)
Selecionar()
Abre a tela de dialogo do windows para seleção do certificado digital
Declaration
public X509Certificate2 Selecionar()
Returns
Type | Description |
---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | Retorna o certificado digital selecionado |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.AbrirTelaSelecao();
MessageBox.Show(certificadoSelecionado.Subject);
ToBase64(String)
Converte o arquivo .PFX do certificado em base64
Declaration
public string ToBase64(string arquivo)
Parameters
Type | Name | Description |
---|---|---|
System.String | arquivo | Nome do arquivo |
Returns
Type | Description |
---|---|
System.String | Base64 do certificado digital informado |
Examples
Criando um Base64 do arquivo do certificado para gravar em banco de dados (visando maior segurança) para resgatar o conteúdo da base de dados.
var certificado = new CertificadoDigital();
var base64DoCertificado = certificado.ToBase64(@"d:\projetos\UnimakePV.pfx");
Grave o conteúdo do variável "base64DoCertificado" para gravar em sua base de dados
ToByteArray(String)
Converte o arquivo do certificado em um array de bytes
Declaration
public byte[] ToByteArray(string arquivo)
Parameters
Type | Name | Description |
---|---|---|
System.String | arquivo | Nome do arquivo |
Returns
Type | Description |
---|---|
System.Byte[] | Array de bytes do arquivo do certificado |
Examples
Criando uma array bytes do arquivo do certificado para gravar em banco de dados (visando maior segurança) para resgatar o conteúdo da base de dados.
var certificado = new CertificadoDigital();
var arrayByteCertificado = certificado.ToByteArray(@"d:\projetos\UnimakePV.pfx");;
Grave o conteúdo do variável "arrayByteCertificado" para gravar em sua base de dados
Vencido(X509Certificate2)
Verifica se o certificado digital está vencido
Declaration
public bool Vencido(X509Certificate2 certificado)
Parameters
Type | Name | Description |
---|---|---|
System.Security.Cryptography.X509Certificates.X509Certificate2 | certificado | Certificado digital |
Returns
Type | Description |
---|---|
System.Boolean | true = Certificado vencido |
Examples
var certificado = new CertificadoDigital();
var certificadoSelecionado = certificado.CarregarCertificadoDigitalA1(@"d:\projetos\UnimakePV.pfx", "12345678");
if (certificado.Vencido(certificadoSelecionado))
{
MessageBox.Show("Certificado digital vencido!!!");
}