コード例 #1
0
 private void CarregaCertificado()
 {
     CboCertificados.DataSource    = null;
     CboCertificados.ValueMember   = "SerialNumber";
     CboCertificados.DisplayMember = "NomeCPFNPJ";
     CboCertificados.DataSource    = CertSimples.ListaCertificado(INB.Assinador.Helper.Certificado.ListaCertificadosValidos());
 }
コード例 #2
0
        private void BtnAssinarPDF_Click(object sender, EventArgs e)
        {
            try
            {
                if (CboCertificados.Items.Count == 0 || CboCertificados.SelectedIndex == -1)
                {
                    MessageBox.Show("Por favor, selecione um certificado válido.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    BtnAtualizar_Click(sender, e);
                    CboCertificados.Focus();
                }
                else
                {
                    CertSimples oCert = (CertSimples)CboCertificados.SelectedItem;

                    if (OptChancela.Checked)
                    {
                        string CPF = oCert.CPF;//CboCertificados.Text.Substring(CboCertificados.Text.IndexOf("CPF:", 0) + 4).Trim();
                        if (ValidaUsuario.PermiteChancelaJuridica(CPF) == false)
                        {
                            MessageBox.Show("O selo de chancela da jurídica só é permitido para usuários autorizados.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }
                    openFileDialog1.Filter   = "Arquivos pdf (*.pdf)|*.pdf";
                    openFileDialog1.FileName = "";
                    if (openFileDialog1.ShowDialog() != DialogResult.Cancel)
                    {
                        string ArquivoAssinado;
                        try
                        {
                            AssinarArquivo(openFileDialog1.FileName, out ArquivoAssinado, false, oCert);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Um erro aconteceu ao executar o processo de assinatura verifique se o certificado está corretamente instalado e, em caso de Token, na porta USB. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    AtualizaSettings();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Um erro aconteceu ao executar o processo de assinatura. Erro: " + ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #3
0
        public bool AssinarArquivo(string Arquivo, out string returnFileName, bool SemAbrir = false, CertSimples oCertificado = null)
        {
            returnFileName = "";
            PDF.FrmPreview.eTipoSelo TipoSelo;
            TipoSelo          = SeloUtilizado();
            oFrm              = new PDF.FrmPreview(Arquivo, TipoSelo);
            oFrm.PosicaoSelo += new INB.PDF.FrmPreview.PosicaoSeloEventHandler(this.PosicaoSelo);
            oFrm.ShowDialog();
            if (oFrm.AssinaturaConfirmada)
            {
                int Pagina, largura, altura;
                int X, Y;
                Pagina  = _Pagina;
                X       = _Position.X;
                Y       = _Position.Y;
                largura = _Largura;
                altura  = _Altura;
                if (Pagina == 0 || X < 0 || Y < 0)
                {
                    MessageBox.Show("Foi impossível determinar a localização do selo, por favor, repetir o procedimento de assinatura.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(false);
                }
                else
                {
                    string SignedFileName;
                    //******
                    //pensar quando já tiver o nome do arquivo
                    string FileName = Path.GetFileName(Arquivo);
                    string PathFile = Path.GetDirectoryName(Arquivo) + "\\";
                    FileName       = getFileName(PathFile, FileName.Substring(0, FileName.Length - 4));
                    SignedFileName = PathFile + FileName;
                    returnFileName = SignedFileName;

                    TipoAssinatura Tipo = TipoAssinatura.Normal;
                    if (OptAsPadrao.Checked)
                    {
                        Tipo = TipoAssinatura.Normal;
                    }
                    else if (OptAsCertifico.Checked)
                    {
                        Tipo = TipoAssinatura.Certifico;
                    }
                    else if (OptConferido.Checked)
                    {
                        Tipo = TipoAssinatura.ConferidoOriginal;
                    }
                    else if (OptChancela.Checked)
                    {
                        Tipo = TipoAssinatura.ChancelaJuridica;
                    }
                    else if (OptCarimboINB.Checked)
                    {
                        if (CboCarimbo.Text.Trim() == "BUENA")
                        {
                            Tipo = TipoAssinatura.Buena;
                        }
                        else if (CboCarimbo.Text.Trim() == "CAETITÉ")
                        {
                            Tipo = TipoAssinatura.Caetite;
                        }
                        else if (CboCarimbo.Text.Trim() == "CALDAS")
                        {
                            Tipo = TipoAssinatura.Caldas;
                        }
                        else if (CboCarimbo.Text.Trim() == "FORTALEZA")
                        {
                            Tipo = TipoAssinatura.Fortaleza;
                        }
                        else if (CboCarimbo.Text.Trim() == "RESENDE")
                        {
                            Tipo = TipoAssinatura.Resende;
                        }
                        else if (CboCarimbo.Text.Trim() == "RIO DE JANEIRO")
                        {
                            Tipo = TipoAssinatura.RioDeJaneiro;
                        }
                        else if (CboCarimbo.Text.Trim() == "SÃO PAULO")
                        {
                            Tipo = TipoAssinatura.SaoPaulo;
                        }
                        else
                        {
                            Tipo = TipoAssinatura.Resende;
                        }
                    }

                    INB.Assinador.Model.AssinaComTokenITextSharp.AssinaPDF(Arquivo, SignedFileName, (CertSimples)CboCertificados.SelectedItem, Pagina, X, Y, _Rotation, ChkCarimboTempo.Checked, TxtTimeStampServer.Text, TxtUsuarioTS.Text, TxtSenhaTS.Text, "Assinatura Digital de Documento", ChkAplicaPolitica.Checked, CboDigestAlgorithm.Text, "", "Indústrias Nucleares do Brasil S/A - INB", "Assinador da INB", Tipo, TxtCargo.Text, TxtCRMCREA.Text);

                    if (SemAbrir == false)
                    {
                        if (MessageBox.Show("Arquivo assinado com sucesso. Deseja abri-lo?", ProductName, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            System.Diagnostics.Process.Start(SignedFileName);
                        }
                    }
                }
                try
                {
                    oFrm.Close();
                }
                catch (Exception ex) { }
                return(true);
            }
            else
            {
                try
                {
                    oFrm.Dispose();
                }
                catch (Exception ex) { }
                return(false);
            }
        }
コード例 #4
0
        public bool AssinarArquivo(byte[] Arquivo, out byte[] returnFile, bool SemAbrir = false, CertSimples oCertificado = null)
        {
            PDF.FrmPreview.eTipoSelo TipoSelo;
            TipoSelo          = SeloUtilizado();
            oFrm              = new PDF.FrmPreview(Arquivo, TipoSelo);
            oFrm.PosicaoSelo += new INB.PDF.FrmPreview.PosicaoSeloEventHandler(this.PosicaoSelo);
            oFrm.ShowDialog();
            if (oFrm.AssinaturaConfirmada)
            {
                oFrm.Close();
                int Pagina, largura, altura;
                int X, Y;
                Pagina  = _Pagina;
                X       = _Position.X;
                Y       = _Position.Y;
                largura = _Largura;
                altura  = _Altura;
                if (Pagina == 0 || X < 0 || Y < 0)
                {
                    MessageBox.Show("Foi impossível determinar a localização do selo, por favor, repetir o procedimento de assinatura.", ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    returnFile = null;
                    return(false);
                }
                else
                {
                    MemoryStream SendFile = new MemoryStream(Arquivo);
                    byte[]       ReceiveFile;

                    TipoAssinatura Tipo = TipoAssinatura.Normal;

                    if (OptAsPadrao.Checked)
                    {
                        if (TxtCargo.Text.Trim() == "" && TxtCRMCREA.Text.Trim() == "")
                        {
                            Tipo = TipoAssinatura.Normal;
                        }
                        else
                        {
                            if (ChkCargo.Checked && ChkCRM.Checked == false)
                            {
                                Tipo = TipoAssinatura.Cargo;
                            }
                            else if (ChkCargo.Checked = false && ChkCRM.Checked)
                            {
                                Tipo = TipoAssinatura.CRM;
                            }
                            else if (ChkCargo.Checked && ChkCRM.Checked)
                            {
                                Tipo = TipoAssinatura.CargoCRM;
                            }
                            else if (ChkCargo.Checked && ChkCREA.Checked)
                            {
                                Tipo = TipoAssinatura.CargoCrea;
                            }
                        }
                    }
                    else if (OptAsCertifico.Checked)
                    {
                        Tipo = TipoAssinatura.Certifico;
                    }
                    else if (OptChancela.Checked)
                    {
                        Tipo = TipoAssinatura.ChancelaJuridica;
                    }
                    else if (OptCarimboINB.Checked)
                    {
                        if (CboCarimbo.Text.Trim() == "BUENA")
                        {
                            Tipo = TipoAssinatura.Buena;
                        }
                        else if (CboCarimbo.Text.Trim() == "CAETITÉ")
                        {
                            Tipo = TipoAssinatura.Caetite;
                        }
                        else if (CboCarimbo.Text.Trim() == "CALDAS")
                        {
                            Tipo = TipoAssinatura.Caldas;
                        }
                        else if (CboCarimbo.Text.Trim() == "FORTALEZA")
                        {
                            Tipo = TipoAssinatura.Fortaleza;
                        }
                        else if (CboCarimbo.Text.Trim() == "RESENDE")
                        {
                            Tipo = TipoAssinatura.Resende;
                        }
                        else if (CboCarimbo.Text.Trim() == "RIO DE JANEIRO")
                        {
                            Tipo = TipoAssinatura.RioDeJaneiro;
                        }
                        else if (CboCarimbo.Text.Trim() == "SÃO PAULO")
                        {
                            Tipo = TipoAssinatura.SaoPaulo;
                        }
                        else
                        {
                            Tipo = TipoAssinatura.Resende;
                        }
                    }

                    INB.Assinador.Model.AssinaComTokenITextSharp.AssinaPDF(SendFile, out ReceiveFile, (CertSimples)CboCertificados.SelectedItem, Pagina, X, Y, _Rotation, ChkCarimboTempo.Checked, TxtTimeStampServer.Text, TxtUsuarioTS.Text, TxtSenhaTS.Text, "Assinatura Digital de Documento", ChkAplicaPolitica.Checked, CboDigestAlgorithm.Text, null, "Indústrias Nucleares do Brasil S/A - INB", "Assinador da INB", Tipo, TxtCargo.Text, TxtCRMCREA.Text);

                    returnFile = ReceiveFile;
                }
                return(true);
            }
            else
            {
                returnFile = null;
                return(false);
            }
        }