|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Marc-br Aprendiz
Registrado: Terça-Feira, 3 de Julho de 2007 Mensagens: 141 Localização: Franca-SP
|
Enviada: Qui Out 26, 2023 4:27 pm Assunto: Ajuda com Assinador PDF A1 |
|
|
Boa tarde a todos
Estou com problemas com assinatura digital de PDFs.
Eu tenho um certificado A1. É um arquivo PFX.
Eu importei esse arquivo e o certificado esta instalado na minha maquina.
Pelo Delphi, eu utilizei o componente Gnostice PDFToolKit versão 5.0.0.860
try
gtPDFDocument1 := TgtPDFDocument.Create(Nil);
gtPDFDocument1.LoadFromFile('a.pdf');
gtPDFDocument1.AddSignature(AnsiString('certificadoA1.pfx'),
AnsiString('senha_certificado'),
StrToDateTime('26/10/2023'),
AnsiString('razão'),
AnsiString('localização'),
AnsiString('informação do contato'),
strtoint(1), //numero da pagina
AnsiString('Nome da assinatura')); //FieldName
gtPDFDocument1.SaveToFile('b.pdf');
except
on E: Exception do
begin
WriteLn('Erro: ' + E.Message);
Application.Terminate;
end;
end;
//Free resources
gtPDFDocument1.Reset;
//Destroy document object
FreeAndNil(gtPDFDocument1);
Porem, quando eu tento validar o PDF gerado (b.pdf) no site
https://verificador.iti.gov.br/
Da erro de assinatura invalida, hash incorreta. |
|
Voltar ao Topo |
|
|
Marc-br Aprendiz
Registrado: Terça-Feira, 3 de Julho de 2007 Mensagens: 141 Localização: Franca-SP
|
Enviada: Qui Out 26, 2023 4:32 pm Assunto: |
|
|
Eu baixei o componente DevExpress VCL 22.2.3
Eu refiz o assinador do delphi utilizando este componente.
procedure TForm1.Button1Click(Sender: TObject);
var
ADocument: TdxPDFDocument;
ACertificate: TdxX509Certificate;
ADataPath: string;
begin
ADocument := TdxPDFDocument.Create; // Creates a PDF document container
ADocument.LoadFromFile('a.pdf'); // Loads a source document
// Specifies document metadata
ADocument.Information.Application := 'Assinador A1 DevExpress';
ADocument.Information.Author := 'Nome do Autor';
ADocument.Information.Keywords := 'VCL,Digital Signature,DevExpress';
ADocument.Information.Producer := 'Nome do Produtor';
try
// Loads an X.509 certificate
ACertificate := TdxX509Certificate.Create('certificado.pfx', 'senha_certificado');
// Checks if it is possible to use the loaded X.509 certificate to generate digital signatures
if not dxX509IsUsableForDigitalSignature(ACertificate) then
begin
ACertificate.Free;
ADocument.Free;
exit;
end;
// The X.509 certificate used to create the digital signature
ADocument.SignatureOptions.Signature.Certificate := ACertificate;
// The signer
ADocument.SignatureOptions.Signature.ContactInfo := 'telefone 123456789';
// The signer's location
ADocument.SignatureOptions.Signature.Location := 'Localização';
// The reason for the digital signature
ADocument.SignatureOptions.Signature.Reason := 'Razão';
// Enables the digital signature
ADocument.SignatureOptions.Enabled := True;
// Saves the signed document to a different file
ADocument.SaveToFile('b.pdf', True);
finally
ADocument.Free; // Releases the document container to free up reserved memory
ACertificate.Free; // Releases the loaded certificate
end;
showmessage('fim');
end;
O resultado é a mesmissima coisa do assinador que eu fiz usando o Gnostice PDFToolKit, quando eu tento validar o PDF gerado (b.pdf) no site
https://verificador.iti.gov.br/
Da erro de assinatura invalida, hash incorreta. |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|