public static void Assinar2(byte[] bytes, ResponseToSignDocument rp) { var certificado = rp.Cert; var key = (System.Security.Cryptography.RSACryptoServiceProvider)certificado.PrivateKey; rp.Assinatura = key.SignData(bytes, HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1); }
public static X509Certificate2 EscolherCertificado(ResponseToSignDocument rp) { var certSubject = rp.NomeAssinante + "; " + rp.DocumentoAssinante; var store = new X509Store(StoreName.My.ToString(), StoreLocation.CurrentUser); var Key = new RSACryptoServiceProvider(); store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); X509Certificate2Collection collection = store.Certificates; X509Certificate2Collection fcollection = collection.Find(X509FindType.FindBySubjectName, certSubject, false); return(fcollection[0]); }
public Form1() { rp = new ResponseToSignDocument(); InitializeComponent(); lbIdPrefeitura.Text = rp.IdPrefeitura.ToString(); lbNomePrefeitura.Text = rp.NomePrefeitura; lbIdSecretaria.Text = rp.IdSecretaria.ToString(); lbNomeSecretaria.Text = rp.NomeSecretaria; lbIdAssinante.Text = rp.IdAssinante.ToString(); lbNomeAssinante.Text = rp.NomeAssinante; lbTipoPessoa.Text = rp.TipoPessoa; lbDocumentoAssinante.Text = rp.DocumentoAssinante; lbDataNascimento.Text = (rp.DataNascimento.HasValue ? rp.DataNascimento.Value.ToString("dd/MM/yyyy") : "Não disponível."); lbEmail.Text = rp.Email; lbNumeroTelefone.Text = rp.Telefone; lbMD5Documento.Text = rp.MD5Documento; PDFViewer.src = rp.URLDocumento; PDFViewer.Show(); rp.Cert = EscolherCertificado(rp); }