|
THotPDF.SignPDFWithPFX
|
Anterior Métodos AddPubKeyRecipient |
|
Signs an existing PDF placeholder using a PFX / PKCS#12 file, building a CMS SignedData container and writing the signed PDF in one call.
Delphi syntax (file overload): class function SignPDFWithPFX( const InputPDFPath: string; const OutputPDFPath: string; const PFXFilePath: string; const Password: AnsiString): boolean; overload; static;
Delphi syntax (stream overload): class function SignPDFWithPFX( InputStream: TStream; OutputStream: TStream; const PFXFilePath: string; const Password: AnsiString): boolean; overload; static;
Descrição
1. Carrega o PDF de entrada, localiza os espaços reservados sentinela 2. Carrega o ficheiro PFX e desencripta-o com a palavra-passe fornecida. PBES2 com PBKDF2-HMAC-SHA-256 + AES-256-CBC é suportado (este é o valor predefinido para ficheiros PFX exportados por OpenSSL 3.0+, certutil do Windows 11+ e Acesso às Chaves do macOS). Os ficheiros legados PBE-SHA1-3DES geram um diagnóstico; volte a exportar com 3. Calcula SHA-256 sobre os bytes do documento cobertos por 4. Codifica o CMS DER em hexadecimal, verifica se cabe no orçamento 5. Escreve os bytes corrigidos para o caminho ou fluxo de saída
Devolve
Typical workflow
Doc := THotPDF.Create(nil); Doc.FileName := 'unsigned.pdf'; Doc.BeginDoc; Doc.CurrentPage.AddSignedSignatureField( 'Sig1', Rect(60, 60, 260, 90), 8192, 'adbe.pkcs7.detached', 'Approved', 'Brussels', '', []); Doc.EndDoc; Doc.Free; THotPDF.SignPDFWithPFX('unsigned.pdf', 'signed.pdf', 'mykey.pfx', 'mypassword');
Notes O algoritmo de assinatura é RSA + SHA-256 (1.2.840.113549.1.1.1 + 2.16.840.1.101.3.4.2.1). O identificador do signatário é
Para fluxos de trabalho PAdES B-T / B-LT / B-LTA que precisem de carimbos de data/hora RFC 3161, dicionários DSS ou assinaturas de timestamp de documento, os auxiliares do lado do produtor (AddPAdESSignatureField, AddPAdESDSSCertificate, AddDocumentTimestampSignature) continuam a aplicar-se; o próprio
See also: AddSignedSignatureField, PreparePDFForSigning, InsertSignatureHex, AddPAdESSignatureField |