THotPDF.SignPDFWithPFXAndAttachedPDFMAC Method
Создаёт одну зашифрованную подписанную ревизию, чей PDF MAC аутентифицирует как полные диапазоны байтов подписи, так и исходное значение CMS signature
Объявление
class function SignPDFWithPFXAndAttachedPDFMAC(
const InputPDFPath, OutputPDFPath, PFXFilePath: string;
const PFXPassword, PDFPassword: AnsiString;
const MACOptions: THPDFPDFMACOptions): boolean; static;
Требования к входным данным
- Входной документ должен быть зашифрован поддерживаемым security handler на паролях AES-256
- Входной документ должен содержать ровно один неподписанный словарь подписи, созданный через
AddSignedSignatureField - Словарь подписи и его поле подписи должны быть прямыми объектами xref, чтобы их placeholder фиксированной ширины оставались патчируемыми
- Файл PFX должен содержать поддерживаемый ключевой материал RSA, а указанный пароль PFX — проходить аутентификацию контейнера
Гарантии результата
- Активный trailer содержит прямой
AuthCodeс/MACLocation /AttachedToSigи один непрямойSigObjRef SignerInfoв CMS содержит один неподписанный атрибутid-attr-pdfMacDataPdfMacIntegrityInfo.signatureDigestпереносит digest исходного значения подписи рядом с digest документа- Подписание SHA-256 и выбранный digest PDF MAC выполняются за один проход по файлу с ограниченным использованием памяти
- Целевой путь заменяется только после успешного завершения полного подписанного вывода
Используйте ValidatePDFMAC, чтобы проверить активный trailer, SigObjRef, привязку поля подписи, полноту покрытия byte range, digest документа, digest подписи и аутентификацию MAC