Ir para conteúdo
  • Cadastre-se

Carlos Alberto Senczkowski

Membros
  • Total de ítens

    10
  • Registro em

  • Última visita

Posts postados por Carlos Alberto Senczkowski

  1. Estou tendo problema ao utilizar o ACBrFramework32.dll com o JAVA, temos alguns problemas que utilizam o windows na versão 32 bits.

    Nos computadores 64bits não tenho nenhum problema com a DLL ACBrFramework64.dll

     

    O erro que está ocorrendo é 

    EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0239c021, pid=6604, tid=0x000000b4
    #
    # JRE version: Java(TM) SE Runtime Environment (8.0_211-b12) (build 1.8.0_211-b12)
    # Java VM: Java HotSpot(TM) Client VM (25.211-b12 mixed mode, sharing windows-x86 )
    # Problematic frame:
    # C  0x0239c021
    #
    # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows

     

    Em anexo o Log completo.

    hs_err_pid6604.log

  2. package jACBrFramework.Test;
    
    import jACBrFramework.ACBrException;
    import jACBrFramework.ead.ACBrEAD;
    import jACBrFramework.ead.Chaves;
    import jACBrFramework.ead.EADDigest;
    import jACBrFramework.ead.ModuloExpoente;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    /**
     *
     * @author Jose Mauro
     * @version Criado em: 26/12/2013 10:12:34, revisao: $Id$
     */
    public class ProgramTestEad {
        
        public static void main(String[] args) {
            try {
                ACBrEAD lAcbr = new ACBrEAD();     
                lAcbr.setChavePrivada("-----BEGIN RSA PRIVATE KEY-----" "\n"
                + "-----END RSA PRIVATE KEY-----");
                lAcbr.setChavePublica("-----BEGIN PUBLIC KEY-----" + "\n"
                + "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnFwt3/HloBZfRpN+HjuCkHBp7" + "\n"
                + "p12fRsQ4NqEKV7apObbop1DsiqbP8UVMuohrgOvlHRaXLVfwgs5e+fsbff2k0u2U" + "\n"
                + "jeEheN+CFWhYO+VIGDQE4+OGGTI8+mJy5q2aybI2MEcWriaEGerEXfWNVB8jimID" + "\n"
                + "QZFrYjT0EmMuNDW1DwIDAQAB" + "\n"
                + "-----END PUBLIC KEY-----");
                
                lAcbr.gerarChaves();
                
                System.out.println("\nMD5FromFile: " + lAcbr.MD5FromFile("teste.txt"));
                System.out.println("MD5FromString: " + lAcbr.MD5FromString("jACBrFramework"));
                System.out.println("assinarArquivoComEAD: " + lAcbr.assinarArquivoComEAD("teste.txt", true));
                System.out.println("calcularChavePublica:\n " + lAcbr.calcularChavePublica());
                //TODO Verificar no ACBrFramework uma forma de especificar o tamanho do vetor.
                //ArrayList<String> lStrings = new ArrayList<String>();
                //lStrings.add("Framework");
                //lStrings.add("jACBrFramework");
                //System.out.println("calcularEAD: " + lAcbr.calcularEAD(lStrings));
                //System.out.println("calcularEAD: " + lAcbr.calcularEAD(lStrings.toArray(new String[lStrings.size()])));
                System.out.println("calcularEADArquivo: " + lAcbr.calcularEADArquivo("teste.txt"));
                System.out.println("calcularHash: " + lAcbr.calcularHash("jACBrFramework", EADDigest.SHA1));
                System.out.println("calcularHashArquivo: " + lAcbr.calcularHashArquivo("teste.txt", EADDigest.SHA));
                System.out.println("getAbout: " + lAcbr.getAbout());
                System.out.println("getOpenSSL_Version: " + lAcbr.getOpenSSL_Version());
                
                Chaves lChaves = lAcbr.gerarChaves();
                System.out.println("gerarChaves.getChavePrivada(): \n" + lChaves.getChavePrivada());
                System.out.println("gerarChaves.getChavePublica(): \n" + lChaves.getChavePublica());
                lAcbr.setChavePrivada(lChaves.getChavePrivada());
                lAcbr.setChavePublica(lChaves.getChavePublica());
    
                System.out.println("Gerando gerarXMLeECFc");
                lAcbr.gerarXMLeECFc("Empresa Teste");
                
                ModuloExpoente lModExp = lAcbr.calcularModuloeExpoente();
                System.out.println("calcularModuloeExpoente.getModulo(): \n" + lModExp.getModulo());
                System.out.println("calcularModuloeExpoente.getExpoente(): \n" + lModExp.getExpoente());
                System.out.println("converteXMLeECFcParaOpenSSL: \n" + lAcbr.converteXMLeECFcParaOpenSSL("Empresa Teste.xml"));
            } catch (ACBrException ex) {
                Logger.getLogger(ProgramTestEad.class.getName()).log(Level.SEVERE, null, ex);
            }
        }       
    }

    Esse é o arquivo que estou rodando o teste para assinar o Teste.txt;

    Ao executar o método lAcbr.gerarChaves(); retorna o seguinte erro: Erro ao gerar par de Chaves RSA

     

  3. Ainda estou esbarrando neste problema.

    O erro ocorre aparentemente em todas as assinaturas de arquivos.

    Ex: acbrPaf.saveFileTXT_N("ArquivoMD5.txt");

     int ret = ACBrPAFInterop.INSTANCE.PAF_SaveFileTXT_N(getHandle(), toUTF8(pArquivo));        

    checkResult(ret);

    Retorno -1;

    "Erro ao Ler a chave"

    Existe alguma configuração do componente ou forma de atribuir estas chaves? 

    Tentei atribuir aos componentes através do método setKeyRSA na classe ACBRPAF sem exito.

    Atribuir diretamente ao componente ACBREAD e ao ACBRAAC.

     

    Nos fontes do jACBrFramework existem os testes pelo ProgramTestEad.java

    Tenho o mesmo problema, e não encontro uma forma de atribuir as chaves.

    Se alguém puder me dar uma luz de como configurar as chaves dentro do ACBR fico agradecido.

  4. 
            ACBrEAD acbrEad = new ACBrEAD();
            acbrEad.addOnGetChavePrivada(new ACBrEventListener<EADChavePrivadaEventObject>() {
    
                @Override
                public void notification(EADChavePrivadaEventObject t) {
                    t.setKey("Chave");
                }
            });
            
            acbrEad.addOnGetChavePublica(new ACBrEventListener<EADChavePublicaEventObject>() {
    
                @Override
                public void notification(EADChavePublicaEventObject t) {
                    t.setKey("-----BEGIN PUBLIC KEY-----\n" +
    "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCppEr/CNhXQpLQ956CHv0e67Pb\n" +
    "g5NQvwcaf0mYCiSrC7O6IvhzhZKrdnlgSu4MiGw4EL7i3ZUPJmfH4iHjXVigH/BU\n" +
    "r30j0htSXLTMFGo/kNugAqOzfowYdCbR5WvoUvwihpKhuurh3aypWieexSbagnb9\n" +
    "JvtN1Ny1F+c8cyIagQIDAQAB\n" +
    "-----END PUBLIC KEY-----");
                }
            });
            
            //acbrPaf = new ACBrPAF(Charset.forName("cp1252"));
            acbrPaf.setAssinarArquivo(true);
            acbrPaf.setEad(acbrEad);
    
            // U1 - Identificação do Estabelecimento Usuário do PAF-ECF
            geraRegistroU(acbrPaf);
    
            // A2 - Total Diário de Meios de Pagamento
            geraRegistroA2(acbrPaf, dataInicio, dataFim);
    
            // P2 - Relação das Mercadorias e Serviços
            geraRegistroP2(acbrPaf);
    
            // E2 - Relação das Mercadorias em Estoque
            geraRegistroE2(acbrPaf, pEstoqueTotalOuParcial, pEstoqueCodigoOuNome, pEstoqueCriterioUm, pEstoqueCriterioDois);
    
            // E3 - Identificação do ECF que Emitiu o Documento Base para a Atualização do Estoque
            geraRegistroE3(acbrPaf);
    
            // D2 - Relação dos DAV Emitidos / D3 - Detalhe do DAV
            geraRegistrosDAV(acbrPaf);
    
            // R01 a R07
            geraRegistrosR(acbrPaf, dataInicio, dataFim);
    
            /*
             O arquivo a que se refere o item 5 deverá ser denominado no formato CCCCCCNNNNNNNNNNNNNNDDMMAAAA.txt, sendo:
             a) “CCCCCC” o Código Nacional de Identificação de ECF relativo ao ECF a que se refere o movimento informado;
             b) “NNNNNNNNNNNNNN” os 14 (quatorze) últimos dígitos do número de fabricação do ECF;
             c) “DDMMAAAA” a data (dia/mês/ano) do movimento informado no arquivo.
             */
            String nomeArquivo = SessaoUsuario.getConfiguracao().getSistemaEcfId().getCodigo();
    
            if (SessaoUsuario.getConfiguracao().getSistemaEcfId().getSerie().length() > 14) {
                nomeArquivo += SessaoUsuario.getConfiguracao().getSistemaEcfId().getSerie().substring(SessaoUsuario.getConfiguracao().getSistemaEcfId().getSerie().length() - 14);
            } else {
                nomeArquivo += Biblioteca.repete("0", 14 - SessaoUsuario.getConfiguracao().getSistemaEcfId().getSerie().length()) + SessaoUsuario.getConfiguracao().getSistemaEcfId().getSerie();
            }
    
            if (dataMovimento == null) {
                dataMovimento = new Date();
            }
            nomeArquivo += Biblioteca.formataData(dataMovimento).replace("/", "") + ".txt";
            
            
    
            if (!acbrPaf.saveFileTXT_RegistrosECF(nomeArquivo)) {
                throw new ACBrException("Não foi possível criar o arquivo 'Registros PAF'.");
            }
    
            JOptionPane.showMessageDialog(null, "Arquivo armazenado em: " + Constantes.DIRETORIO_APLICACAO + nomeArquivo, "Informação do Sistema", JOptionPane.INFORMATION_MESSAGE);
        }

    A principio o erro ocorre ao chamar o método acbrPaf.saveFileTXT_RegistrosECF(nomeArquivo) na penultima linha com o retorno Erro ao Ler a Chave.

    Tentei atribuir as chaves diretamente para testar mas o erro continua.

  5. Boa tarde, estou com um problema semelhante, quando chamo o método  ACBrPAFInterop.INSTANCE.PAF_SaveFileTXT_RegistrosPAF(getHandle(), toUTF8(pArquivo));

    Tenho o seguinte retorno "Erro ao ler a Chave", como aparentemente o método é executado pela DLL não consigo identificar o problema, estou utilizando jAcbrFramework em Java.

    Pelo o que entendi no jACBrFramework.ead é necessário configurar o par de Chaves para assinatura do arquivo, mas não encontrei o método e nem a documentação de como configurar essas chaves.

    Alguém ja teve este problema? 

  6. Boa tarde, estou com um problema semelhante, quando chamo o método  ACBrPAFInterop.INSTANCE.PAF_SaveFileTXT_RegistrosPAF(getHandle(), toUTF8(pArquivo));

    Tenho o seguinte retorno "Erro ao ler a Chave", como aparentemente o método é executado pela DLL não consigo identificar o problema, estou utilizando jAcbrFramework em Java.

    Pelo o que entendi no jACBrFramework.ead é necessário configurar o par de Chaves para assinatura do arquivo, mas não encontrei o método e nem a documentação de como configurar essas chaves.

    Alguém ja teve este problema? 

  7. Boa tarde, estou com um problema semelhante, quando chamo o método  ACBrPAFInterop.INSTANCE.PAF_SaveFileTXT_RegistrosPAF(getHandle(), toUTF8(pArquivo));

    Tenho o seguinte retorno "Erro ao ler a Chave", como aparentemente o método é executado pela DLL não consigo identificar o problema, estou utilizando jAcbrFramework em Java.

    Pelo o que entendi no jACBrFramework.ead é necessário configurar o par de Chaves para assinatura do arquivo, mas não encontrei o método e nem a documentação de como configurar essas chaves.

    Alguém ja teve este problema? 

  8. Huum entendi, acabei de baixar a última versão do ACBR, acredito que a que possuía anteriormente do sourceforge está descontinuada.

    Apenas uma dúvida em relação aos modelos de configuração, na classe modelo ECF possui apenas as seguintes relações para configuração:

    public interface ModeloECF {     public static final int NENHUM = 0;     public static final int NAO_FISCAL = 1;     public static final int BEMATECH = 2;     public static final int SWEDA = 3;     public static final int DARUMA = 4;     public static final int SCHALTER = 5;     public static final int MECAF = 6;     public static final int YANCO = 7;     public static final int DATA_REGIS = 8;     public static final int URANO = 9;     public static final int ICASH = 10;     public static final int QUATTRO = 11;     public static final int FISC_NET = 12;     public static final int EPSON = 13;     public static final int NCR = 14;     public static final int SWEDA_STX = 15; }

    Por isso surgiu a dúvida, vou estudar um pouco dessa versão nova para entender como utilizar nestes modelos novos da ECF e atualizar a DLL.
    Obrigado pela ajuda

  9. Bom dia a todos, há alguma implementação para as impressoras que utilizam o driver escecf, pelo o que observei nos pacotes para delphi existem as classes ACBrECFEpson e ACBrECFEscECF, mas as mesmas não estão implementadas no projeto java do AcbrFramework.

    Alguém já portou estas classes para java?

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...