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;
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ção | Descrição |
|---|---|
BuildStandalonePdfMacToken | Constró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 |
VerifyStandalonePdfMacToken | Valida DER canônico, algoritmos, atributos, chave encapsulada, resumo de dados esperado e HMAC em tempo constante onde valores secretos são comparados |
BuildAttachedPdfMacToken | Constró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 |
VerifyAttachedPdfMacToken | Reconstrói o resumo de vínculo anexado a partir do contexto de assinatura esperado e verifica o token resultante |
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