Esempio n. 1
0
        private void button2_Click(object sender, EventArgs e)
        {
            var certificados   = HelperCertificadoDigital.BuscarListaCertificados();
            var caminhoArquivo = openFileDialog1.FileName;

            if (!File.Exists(caminhoArquivo))
            {
                MessageBox.Show($"{caminhoArquivo}\n não existe. Favor selecionar o arquivo");
            }
            var formSelecaoCertificado = new FormSelecaoCertificadoDigital(certificados);

            if (formSelecaoCertificado.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            try
            {
                var nomeArquivo = caminhoArquivo.Split(Convert.ToChar("."));
                HelperCertificadoDigital.AssinarArquivo(formSelecaoCertificado.CertificadoDigitalSelecionado.X509, caminhoArquivo,
                                                        nomeArquivo[0] + ".cas");
                var hasArquivo = HelperCriptografia.GerarHashDeArquivo(caminhoArquivo);

                System.IO.File.WriteAllText(nomeArquivo[0] + "_HASH.txt", hasArquivo);

                var comp   = new HelperCompressao();
                var formOk = new FormOk();
                formOk.ShowDialog();
            }
            catch (Exception er)
            {
                var formErro = new FormErro(er);
                formErro.ShowDialog();
            }
        }
        private void BtnSelecionarClick(object sender, EventArgs e)
        {
            if (dataGridView.SelectedRows.Count == 0)
            {
                MessageBox.Show(Resources.FormSelecaoCertificadoDigital_btnSelecionar_Click_Selecione_um_Certificado_Digital);
                return;
            }

            var index = dataGridView.Rows.IndexOf(dataGridView.SelectedRows[0]);

            var certSelecionado = _certificadosDigitais[index];

            DateTime dataHoraServidor;

            //try
            //{
            //    using (var client = new ClienteValidacaoLVR(certSelecionado))
            //        dataHoraServidor = client.PegarHoraServidorSEF();
            //}
            //catch (Exception ex)
            //{
            //    new FormErro(ex).ShowDialog();
            //    return;
            //}
            dataHoraServidor = DateTime.Now;

            if (!HelperCertificadoDigital.ValidarCertificado(certSelecionado.X509, dataHoraServidor))
            {
                MessageBox.Show(Resources.FormSelecaoCertificadoDigital_BtnSelecionarClick_Este_certificado_digital_não_está_válido_);
                return;
            }

            try
            {
                if (!HelperCertificadoDigital.FazerLoginToken(certSelecionado.X509))
                {
                    return;
                }
            }
            catch (CryptographicException ex)
            {
                const string erroCrypt = "O certificado não pôde ser validado. Por favor, verifique se ele está inserido no computador e tente novamente.";
                new FormErro(new CryptographicException(erroCrypt, ex)).ShowDialog();
                return;
            }

            CertificadoDigitalSelecionado = certSelecionado;

            DialogResult = DialogResult.OK;
        }