| 
			
				|  | 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.
 
 |  |