PDFium Delphi Component Docs

FPdfMac Unidade

Unidade: FPdfMac
Constrói e verifica tokens CMS AuthenticatedData para códigos de autenticação de PDF ISO/TS 32004 autônomos e anexados a assinaturas

Syntax

function BuildStandalonePdfMacToken(const FileEncryptionKey, KdfSalt,
  DataDigest: TBytes): TBytes;
function VerifyStandalonePdfMacToken(const Token, FileEncryptionKey,
  KdfSalt, ExpectedDataDigest: TBytes;
  out ErrorText: string): Boolean;
function BuildAttachedPdfMacToken(const FileEncryptionKey, KdfSalt,
  DataDigest, SignatureDigest: TBytes; SignatureObjectNumber,
  SignatureGeneration: Integer): TBytes;
function VerifyAttachedPdfMacToken(const Token, FileEncryptionKey, KdfSalt,
  ExpectedDataDigest, ExpectedSignatureDigest: TBytes;
  SignatureObjectNumber, SignatureGeneration: Integer;
  out ErrorText: string): Boolean;

Description

O construtor deriva uma chave de criptografia de chave AES-256 a partir da chave de criptografia de arquivo de 32 bytes e do /KDFSalt com HKDF-SHA256 e o valor info UTF-8 PDFMAC

Uma chave MAC aleatória de 256 bits é encapsulada com RFC 3394 AES-256 Key Wrap e emitida no único PasswordRecipientInfo exigido pela ISO/TS 32004

O token incorpora um PdfMacIntegrityInfo de versão zero, os atributos autenticados exigidos, o CMSAlgorithmProtection e um valor HMAC-SHA256 sobre a codificação DER SET canônica dos atributos

O chamador é responsável pela serialização do PDF e fornece o resumo SHA-256 dos segmentos exatos do /ByteRange; o código de aplicação normalmente usa TPdfEncryptOptions.EnableIntegrityProtection e TPdf.ValidatePdfMac

Tokens anexados vinculam o resumo de dados a um resumo de assinatura e ao número de objeto e à geração da assinatura antes de construir ou verificar o mesmo formato de token autenticado

Funções

FunçãoDescrição
BuildStandalonePdfMacTokenConstrói um token AuthenticatedData autônomo a partir de valores de chave de criptografia de arquivo de 32 bytes, salt de KDF e resumo de dados
VerifyStandalonePdfMacTokenValida DER canônico, algoritmos, atributos, chave encapsulada, resumo de dados esperado e HMAC em tempo constante onde valores secretos são comparados
BuildAttachedPdfMacTokenConstrói um token anexado fazendo hash do resumo de dados, do resumo de assinatura, do número de objeto da assinatura e da geração da assinatura no resumo de integridade vinculado
VerifyAttachedPdfMacTokenReconstrói o resumo de vínculo anexado a partir do contexto de assinatura esperado e verifica o token resultante

Escopo atual

A implementação suporta códigos de autenticação autônomos e anexados a assinaturas, resumos de dados e de assinatura SHA-256, HMAC-SHA256, AES-256 Key Wrap e chaves de arquivo de 32 bytes do Standard Security Handler

Manipuladores de segurança de chave pública e algoritmos de resumo alternativos não são gerados

See Also

FPdfHmac, FPdfAes, FPdfEncrypt, TPdf.ValidatePdfMac