Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 1337 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Alguém sabe o porque que da erro desconhecido quando chega no bloco:

try
          signedKey := xmldsig.sign(dsigKey,NOKEYINFO);
          if (signedKey = nil) then
          begin
            MsgErro('Assinatura Falhou.');
            Result := False;
            Exit;
          end;
        except
          on e: Exception do
          begin
            MsgErro('Erro durante a assinatura ->' + sLineBreak + e.Message);
            Result := False;
            Exit;
          end;
        end;
 

 

uXMLAssina.pas

Postado

Ao tentar utilizar o componente ACBrDFeSSL com o codigo abaixo dá a seguinte mensagem de erro : erro não especificado.

O arquivo já vem montado com as tags de forma correta. O que pode estar errado?

function AssinaDocXml2(const FileXml, Id: string; var FileOut: string): Boolean;
var
  A: TDFeSSL;
  B : TDFeSSLXmlSignMsXml;
  I: Integer;
  fileXmlNew : string;
  AXml: AnsiString;
begin
  fileXmlNew := MontaFileXml(FileXml, Id);
  AXml := AnsiString(WideString(fileXmlNew));

  A := TDFeSSL.Create;
  A.SSLCryptLib := cryCapicom;
  A.SelecionarCertificado;
  B := TDFeSSLXmlSignMsXml.Create(A);
  with TStringList.Create do
    try
      // carrega o XML de template
      Add(AXml);
      // obtém o XML assinado no Text do StringList
      Text := B.Assinar(Text, 'Assinatura', '');
      // salva o XML em disco
      SaveToFile(FileOut);
    finally
      Free;
    end;
  A.Free;
end;

 

  • 3 anos depois...
  • Solution
Postado
Em 21/12/2018 at 07:15, Marcos Fernando Barbosa disse:

Ao tentar utilizar o componente ACBrDFeSSL com o codigo abaixo dá a seguinte mensagem de erro : erro não especificado.

O arquivo já vem montado com as tags de forma correta. O que pode estar errado?

function AssinaDocXml2(const FileXml, Id: string; var FileOut: string): Boolean;
var
  A: TDFeSSL;
  B : TDFeSSLXmlSignMsXml;
  I: Integer;
  fileXmlNew : string;
  AXml: AnsiString;
begin
  fileXmlNew := MontaFileXml(FileXml, Id);
  AXml := AnsiString(WideString(fileXmlNew));

  A := TDFeSSL.Create;
  A.SSLCryptLib := cryCapicom;
  A.SelecionarCertificado;
  B := TDFeSSLXmlSignMsXml.Create(A);
  with TStringList.Create do
    try
      // carrega o XML de template
      Add(AXml);
      // obtém o XML assinado no Text do StringList
      Text := B.Assinar(Text, 'Assinatura', '');
      // salva o XML em disco
      SaveToFile(FileOut);
    finally
      Free;
    end;
  A.Free;
end;

 

procedure TForm1.AssinarXml(const ElementoFinal:String);
var SSL : TDFeSSL;
    XMLUTF8, XMLAssinado : String;
begin
  SSL := TDFeSSL.Create;
  try
    SSL.SSLCryptLib     := cryWinCrypt;
    SSL.SSLXmlSignLib   := xsMsXml;
    SSL.ArquivoPFX      := 'c:\Temp\arquivo.pfx';
    SSL.Senha           := 'senha1234';
    SSl.CarregarCertificado;
    XMLUTF8 := Memo1.Text;
    XMLAssinado := SSL.Assinar(XMLUTF8, ElementoFinal, '');
    Memo2.Text := XMLAssinado;
  finally
    SSL.free;
  end;
end;

 

Agora, tiagomartins disse:

procedure TForm1.AssinarXml(const ElementoFinal:String);
var SSL : TDFeSSL;
    XMLUTF8, XMLAssinado : String;
begin
  SSL := TDFeSSL.Create;
  try
    SSL.SSLCryptLib     := cryWinCrypt;
    SSL.SSLXmlSignLib   := xsMsXml;
    SSL.ArquivoPFX      := 'c:\Temp\arquivo.pfx';
    SSL.Senha           := 'senha1234';
    SSl.CarregarCertificado;
    XMLUTF8 := Memo1.Text;
    XMLAssinado := SSL.Assinar(XMLUTF8, ElementoFinal, '');
    Memo2.Text := XMLAssinado;
  finally
    SSL.free;
  end;
end;

na uses vc declara essas bibliotecas ACBrDFeSSL, ACBrSocket,

  • Obrigado 1
  • Este tópico foi criado há 1337 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...
The popup will be closed in 10 segundos...