مرجع HotPDF

يمكن لـ HotPDF إنتاج والتحقق من قيم PDF MAC المستقلة والمرتبطة بالتوقيع وفق ISO/TS 32004، بست خوارزميات بصمة مستند، وفرض سياسة تفشل بأسلوب آمن (fail-closed)

بصمات المستند المدعومة

يوفر THPDFPDFMACDigestAlgorithm القيم pmdaSHA256 وpmdaSHA384 وpmdaSHA512 وpmdaSHA3_256 وpmdaSHA3_384 وpmdaSHA3_512

تحمي البصمة المختارة كامل ByteRange الخاص بـ PDF، ومعلومات السلامة (integrity) المغلَّفة، وخوارزمية بصمة CMS، وسمة CMSAlgorithmProtection

تبقى مصادقة HMAC-SHA-256 واشتقاق المفتاح HKDF-SHA-256 وتغليف مفتاح AES-256 ثابتة وفق صيغة PDF MAC، ولا يغيّرها اختيار ملخّص المستند

ملفات تعريف مدمجة

متطلبات الأنماط المدمجة (built-in) ثابتة ولا يمكن إضعافها بتغيير حقول السجل؛ استخدم pmppCustom عندما يحتاج التطبيق إلى خوارزمية توليد مختلفة، أو قائمة سماح (allowlist)، أو متطلب تشفير مختلف

المرجعالمرجعالمرجعالمرجع
Compatibilityالمرجعالمرجعالمرجع
Modernالمرجعالمرجعالمرجع
HighAssuranceالمرجعالمرجعالمرجع
Customالمرجعالمرجعالمرجع

ملفات تعريف مدمجة

uses HPDFDoc, HPDFPDFMAC;

var
  Options: THPDFPDFMACOptions;
  Info: THPDFPDFMACValidationInfo;
begin
  Options := THPDFPDFMACOptions.HighAssurance;
  if not PDF.AddStandalonePDFMAC('encrypted.pdf', 'authenticated.pdf',
    'user-password', Options) then
    raise Exception.Create('PDF MAC creation failed');

  if not PDF.ValidatePDFMAC('authenticated.pdf', 'user-password',
    Options, Info) then
    raise Exception.Create(Info.Message);
end;

ملفات تعريف مدمجة

يكتشف التحقق البصمة المُرمَّزة قبل تدفيق النطاقات المحمية، ويرفض الخوارزميات خارج AllowedDigestAlgorithms، ويفرض RequireAESGCM بعد استرداد مفتاح الملف المُصادَق عليه

يُبلِّغ THPDFPDFMACValidationInfo عن DigestAlgorithm وPolicyProfile وPolicyAccepted وUsedAESGCM؛ وتُعد pmsPolicyRejected منفصلة عن المدخل غير الصحيح التنسيق أو فشل علامة المصادقة (authentication tag)

بالنسبة إلى /AttachedToSig، يحمي الـ digest المختار أيضًا قيمة توقيع CMS الخام عبر PdfMacIntegrityInfo.signatureDigest، بينما يتحقق ValidatePDFMAC من AuthCode المباشر النشط ومن SigObjRef غير المباشر ومن ارتباط حقل التوقيع ومن المراجعة الموقعة كاملة

يطبق ValidatePDFMACChain السياسة المختارة على كل مراجعة تزايدية محمية، ويرفض تراجع قوة الـ digest، ويتطلب KDFSalt مستقرًا بعد أول MAC، ويبلّغ عن المراجعة الفاشلة بالضبط وعن إزاحة xref

راجع SignPDFWithPFXAndAttachedPDFMAC لسير عمل التوقيع بـ PFX الذري