PDFium Component Docs

FPdfMac unit

Unit: FPdfMac
Bouwt en verifieert CMS AuthenticatedData-tokens voor zelfstandige en aan handtekeningen gekoppelde ISO/TS 32004 PDF-authenticatiecodes

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

De builder leidt een AES-256 key-encryption-key af uit de 32-byte bestandsversleutelingssleutel en /KDFSalt met HKDF-SHA256 en de UTF-8-infowaarde PDFMAC

Een willekeurige 256-bits MAC-sleutel wordt gewrapped met RFC 3394 AES-256 Key Wrap en uitgevoerd in de enige PasswordRecipientInfo die ISO/TS 32004 vereist

Het token bevat een PdfMacIntegrityInfo versie nul, de vereiste geauthenticeerde attributen, CMSAlgorithmProtection en een HMAC-SHA256-waarde over de canonieke DER SET-codering van de attributen

De aanroeper is eigenaar van de PDF-serialisatie en levert de SHA-256-digest van de exacte /ByteRange-segmenten; applicatiecode gebruikt normaal gesproken TPdfEncryptOptions.EnableIntegrityProtection en TPdf.ValidatePdfMac

Gekoppelde tokens binden de datadigest aan een handtekeningsdigest en het objectnummer en de generatie van de handtekening, voordat hetzelfde geauthenticeerde tokenformaat wordt gebouwd of geverifieerd

Functions

FunctionDescription
BuildStandalonePdfMacTokenBouwt een zelfstandig AuthenticatedData-token uit waarden voor een 32-byte bestandsversleutelingssleutel, KDF-zout en datadigest
VerifyStandalonePdfMacTokenValideert canonieke DER, algoritmen, attributen, de gewrapte sleutel, de verwachte datadigest en de HMAC, waar secreties vergeleken worden in constante tijd
BuildAttachedPdfMacTokenBouwt een gekoppeld token door de datadigest, handtekeningsdigest, het objectnummer en de generatie van de handtekening te hashen tot de gebonden integriteitsdigest
VerifyAttachedPdfMacTokenReconstrueert de gekoppelde bindingsdigest uit de verwachte handtekeningcontext en verifieert het resulterende token

Current scope

De implementatie ondersteunt zelfstandige en aan handtekeningen gekoppelde authenticatiecodes, SHA-256-data- en handtekeningsdigests, HMAC-SHA256, AES-256 Key Wrap en 32-byte bestandssleutels van de Standard Security Handler

Public-key-securityhandlers en alternatieve digestalgoritmen worden niet gegenereerd

See Also

FPdfHmac, FPdfAes, FPdfEncrypt, TPdf.ValidatePdfMac