Ir para conteúdo
  • Cadastre-se

dev botao

erro assinando nfe


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

Recommended Posts

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.

 

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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;

 

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

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
Link para o comentário
Compartilhar em outros sites

  • Moderadores

Boa tarde esse não pertence ao projeto !

o projeto está no svn e no sourceforge!

27 minutos atrás, frederico nogueira disse:

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

  • 7 meses depois ...
  • 4 semanas depois ...
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 ?

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois ...
  • 2 meses depois ...

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
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1965 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.

The popup will be closed in 10 segundos...