Ir para conteúdo
  • Cadastre-se

erro assinando nfe


Ver Solução Respondido por frederico nogueira,
  • Este tópico foi criado há 2738 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membro Pro Verificado
Postado

caros, tenho uma app que funciona normal mas em uma determinada maquina ela não assina a nota fiscal ao executar a linha abaixo:

acbr.notafiscal.assinar;

isso ocorrem em apenas uma maquina a qual formatei e reinstale tudo e continua com o mesmo problema.

fiz os testes de ambiente no site da serasa e o certificado esta ok e a assinatura esta ok.

sera que os colegar poderiam me ajudar a identificar qual e o erro?

desde ja agradeço a ajuda.

 

  • Membro Pro Verificado
Postado

estava funcionando normalmente mas quanto atualizei os fontes começou a dar erro ao assinar a nota.

executo ACBrNFe1.NotasFiscais.GerarNFe;

o erro acontece aqui ACBrNFe1.NotasFiscais.Assinar;

 mensagem é: EOleExcePtion with message 'parametro incorreto'

 

 

  • Membro Pro Verificado
Postado (editado)

modifiquei conforme exemple a agora estou com o seguinte erro que ja esta com outro topico aberto nesse forum recentemente.

tudo que precisa acessar o certificado eta dando esse erro exceto o primeiro botão de consulta de numero de serie do certificado.

 

reproduzi o erro na DEMO.

 

 

erro.png

Editado por frederico nogueira
Postado
12 minutos atrás, frederico nogueira disse:

vou ter que parar de usar capcom?

Respondendo a sua pergunta: algum dia sim.

 

 

Quanto à imagem postada agora, notei que vc definiu as 2 propriedades: o Caminho do PFX (A1) e o Número de Série (A3).

Acho que o correto devia preencher apenas uma delas.

 

Att

Ricardo

  • Membro Pro Verificado
Postado

com ou sem o numero de serie o erro continua.

o erro acontece aqui na linha em negrito na unit ACBrDFeWinCrypt.pas

 

procedure PFXDataToCertContextWinApi(AData, APass: AnsiString; var AStore,
  ACertContext: Pointer);
var
  PFXBlob: CRYPT_DATA_BLOB;
  PFXCert: PCCERT_CONTEXT;
  wsPass: WideString;
begin
  PFXBlob.cbData := Length(AData);
  PFXBlob.pbData := PBYTE(AData);
  if not PFXIsPFXBlob(PFXBlob) then
    raise EACBrDFeException.Create('PFXDataToCertContextWinApi: DadosPFX informado não são válidos');

  wsPass := WideString( APass );
  if not PFXVerifyPassword(PFXBlob, LPCWSTR(wsPass), 0) then
    raise EACBrDFeException.Create('PFXDataToCertContextWinApi: Senha informada está errada');

  AStore := PFXImportCertStore( PFXBlob, LPCWSTR(wsPass),
                                CRYPT_EXPORTABLE or
                                {PKCS12_PREFER_CNG_KSP or}
                                PKCS12_INCLUDE_EXTENDED_PROPERTIES);
  if AStore = nil then
    raise EACBrDFeException.Create(
      'PFXDataToCertContextWinApi: Falha em "PFXImportCertStore" Erro: '+GetLastErrorAsHexaStr);

  // Varre cadeia de certificados lidos, e procura por Certificado do Cliente //
  ACertContext := Nil;
  PFXCert := Nil;
  PFXCert := CertEnumCertificatesInStore(AStore, PCCERT_CONTEXT(PFXCert)^);
  while (PFXCert <> Nil) and (ACertContext = Nil) do
  begin
    // Se Tem numero de série, então é o certificado do cliente
    if PFXCert^.pCertInfo^.SerialNumber.cbData >= 16 then
      ACertContext := PFXCert
    else
      PFXCert := CertEnumCertificatesInStore(AStore, PCCERT_CONTEXT(PFXCert)^);
  end;

  if (ACertContext = Nil) then
    raise EACBrDFeException.Create(
      'PFXDataToCertContextWinApi: Falha ao localizar o Certificado com a Chave Privada.');
end;

 

Postado
Agora, frederico nogueira disse:

usei o OpenSSL  e funcionou.

mas nao e para mudar para o libWinCrypt?

A princípio, o WinCrypt veio pra substituir o uso da CAPICOM no acesso a certificados A3.

Para os certificados A1 sempre foi sugerido usar o OpenSSL.

 

Porque usávamos a CAPICOM ?

Usar diretamente as APIs do Windows não é uma tarefa simples.... A CAPICOM, facilita um pouco, as tarefas que podem ser feitas com a WinCrypt (ou MS Crypto), para acesso a certificados digitais instalados no Windows

Veja mais em:

Att

Ricardo

  • Membro Pro Verificado
Postado (editado)

agora apos executar tanto a DEMO quanto minha APP encarram aplicação sem dar erro ao executar.

ACBrNFe1.NotasFiscais.Assinar; 

erro acontece na unit ACBrDFeXsXmlSec;

function TDFeSSLXmlSignXmlSec.Assinar;


  XmlAss := XmlSecSign(AXml, AnsiString(SignatureNode),
                             AnsiString(SelectionNamespaces),
                             AnsiString(infElement));

app encerra aqui,

Editado por frederico nogueira
  • Membro Pro Verificado
Postado (editado)

to usando libOPENSSL+ xsXMLsec

 

TRAVA EM 

procedure TDFeSSLXmlSignXmlSec.InitXmlSec;

ACBrDFeXsXmlSec.InitXmlSec( XMLSecCryptoLib );  AQUI

Editado por frederico nogueira
  • Membro Pro Verificado
Postado

entra em loop em na unit ssl_openssl_lib;

 

procedure locking_callback(mode, ltype: integer; lfile: PChar; line: integer); cdecl;
begin
  if (mode and 1) > 0 then
    TCriticalSection(Locks[ltype]).Enter
  else
    TCriticalSection(Locks[ltype]).Leave;
end;

  • Consultores
Postado

Boa tarde esse não pertence ao projeto !

o projeto está no svn e no sourceforge!

27 minutos atrás, frederico nogueira disse:

 

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • 7 meses depois ...
Postado

Gente desculpa voltar a tocar no assunto, mas eu tambem estou com este erro.

pxfdatato certcontext winapi: senha informada esta errada.. alguem pode me ajudar, não entendi as mensagens acima.

 

 

  • 4 semanas depois ...
Postado
On 30/10/2017 at 5:24 PM, igmaster2000 said:

Gente desculpa voltar a tocar no assunto, mas eu tambem estou com este erro.

pxfdatato certcontext winapi: senha informada esta errada.. alguem pode me ajudar, não entendi as mensagens acima.

 

 

Também estou com esse problema em um determinado certificado. Erro:

PFXDataToCertContextWinApi: Senha informada esta errada

Instalando o certificado na máquina ele funciona, no entanto, ao atribuir o mesmo para o componente o mesmo diz que a senha está errada.

Alguem já passou por isso ? tem uma solução ?

  • 5 meses depois ...
  • 2 meses depois ...
Postado (editado)

Bom dia, estou recebendo um erro com o seguinte texto: 'PFXDataToCertContextWinApi: DadosPFX informado não são válidos', isto quando, o meu sistema feito em DelphiXE5 esta sendo executado em Linux via Wine. Na imagem abaixo, listo a esquerda meu arquivo .ini com as configurações para estabelecer comunicação e a direita o local das Dlls que uso e junto o executável do sistema! Este mesmo sistema quando copiado todo para uma máquina windows e em vez de usar o certificado .crt e sim o pfx funciona corretamente! Seria algo na conversão do pfx par crt?
Utilizei este comando para a conversão: openssl pkcs12 -in /home/marcos/.wine/drive_c/ANTONIOAUGUSTO*************************************.pfx -clcerts -nokeys -out /home/marcos/.wine/drive_c/ANTONIOAUGUSTO*************************************.crt.

Bom, na verdade, a ideia é fazer o nosso gerenciadorNFeNFCe imageproxy.php?img=&key=95469ff239730682funcionar também no Linux como o resto de todos os nossos sistemas, onde hoje usamos com tranquilidade nosso ERP e demais sistema menores construídos ao longo de 25 anos.

Alguém tem alguma dica ou pode nos ajudar?

image.thumb.png.55ef0085936dc5bc7cf7f9ee85944798.pngimageproxy.php?img=&key=95469ff239730682imageproxy.php?img=&key=95469ff239730682imageproxy.php?img=&key=95469ff239730682

 

 

 

 

Editado por lgerard
  • Este tópico foi criado há 2738 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.