Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Bom dia Pessoal,

como nunca trabalhei com assinatura digital estou tendo uma certa dificuldade para assinar um arquivo XML não fiscal onde não terá aquela parte de referência a Nota Fiscal, utilizo o Delphi 7, está assinando normalmente, mas sempre ao validar diz estar com a assinatura inválida, tenho tomado cuidado em não editá-lo após a assinatura, se alguém poder me ajudar:

var A : TDFeSSL;
    S : AnsiString;
    I : Integer;
begin
    Result := true;

    A := TDFeSSL.Create;
    A.SSLLib := libCapicom;
    try
        A.SelecionarCertificado;

	{Carrega o XML}
        XMLSignature.Active := false;
        XMLSignature.Active := True;
        XMLSignature.LoadFromFile ( 'C:\CertSignature_tmp.xml' ) ;
        
        with TStringList.Create do
        try
            S := '';

            {retira dos os espaços em braco e quebras de linha}
            for I := 0 to Count - 1 do
                S := S + Trim ( StringReplace ( StringReplace ( Strings[ I ] , #13 , '' , [ rfReplaceAll ] ) , #10 , '' , [ rfReplaceAll ] ) ) ;

            // obtém o XML assinado no Text do StringList
            Text := '<?xml version="1.0" encoding="utf-8"?>' + A.Assinar ( XMLSignature.XML.Text , 'Assinatura' , '' ) ;

            // salva o XML em disco
            SaveToFile ( CaminhoCertidao ) ;
        finally
            Free;
        end;

        A.Free;
        {Apaga o arquivo temporário}
        DeleteFile ( 'C:\CertSignature_tmp.xml' ) ;
    except
        MessageBox ( Handle , 'Erro ao carregar os certificados.' , 'Erro' , MB_ICONSTOP or MB_OK ) ;
        Result := false;
        Abort;
    end;

 

Link para o comentário
Compartilhar em outros sites

para fim de solução, o problema estava neste bloco

<?xml version="1.0" encoding="iso-8859-1"?><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI=""><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue/></Signature>

 

entre uma tag e outra estava com identação, desde já agradeço

Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...