THotPDF.SignPDFWithSystemCertificate Method
Assina um ficheiro ou stream PDF com um certificado escolhido no arquivo de certificados do Windows e grava o resultado assinado num destino separado
Declaração
class function SignPDFWithSystemCertificate(const InputPDFPath, OutputPDFPath: string; const Selector: THPDFCertificateStoreSelector; const Options: THPDFCMSSignOptions): boolean; overload; static;
class function SignPDFWithSystemCertificate(InputStream, OutputStream: TStream; const Selector: THPDFCertificateStoreSelector; const Options: THPDFCMSSignOptions): boolean; overload; static;
Unidade
HPDFDoc
Parâmetros
| Name | Finalidade |
|---|---|
InputPDFPath | Caminho do ficheiro PDF de origem |
OutputPDFPath | Caminho de destino do PDF assinado |
Selector | Seletor do arquivo de certificados usado para escolher o certificado de assinatura |
Options | Opções de assinatura CMS que controlam o digest, os metadados da assinatura, o timestamp e a política associada |
InputStream | Stream de origem posicionada no início do PDF |
OutputStream | Stream de destino que recebe o PDF assinado |
Valor devolvido
Devolve True quando o certificado é encontrado e o PDF assinado é gravado com sucesso
Notas de utilização
- Os caminhos de ficheiro ou as streams de entrada e de saída têm de ser diferentes
- A chave privada do certificado Windows tem de estar acessível ao processo atual
- Chaves suportadas por CNG suportam RSA PKCS#1 v1.5, RSA-PSS e ECDSA com o digest SHA-2 ou SHA-3 selecionado por
Options.DigestAlgorithm - Assinaturas ECDSA CNG são convertidas do formato bruto de coordenadas do Windows para a forma DER exigida pelo CMS
- A versão do Windows e o provider de armazenamento de chaves têm de implementar o algoritmo SHA-3 selecionado
- Chaves CryptoAPI legadas suportam RSA PKCS#1 v1.5 com SHA-256, SHA-384 ou SHA-512 e rejeitam explicitamente SHA-3, RSA-PSS e ECDSA
- Este helper exige Delphi 2009 ou posterior