Запись THPDFPDFMACValidationInfo
Полный результат валидации PDF MAC: статус и сообщение, длины byte-range и MAC, детали digest и политики, использование AES-GCM, расположение MAC, привязка к подписи и флаги покрытия разрешений
Объявление
THPDFPDFMACValidationInfo= record
Status: THPDFPDFMACStatus;
ByteRangeLength: Int64;
MACLength: Integer;
DigestAlgorithm: THPDFPDFMACDigestAlgorithm;
PolicyProfile: THPDFPDFMACPolicyProfile;
PolicyAccepted: boolean;
UsedAESGCM: boolean;
Message: string;
Location: THPDFPDFMACLocation;
SignatureObjectNumber: Integer;
SignatureGeneration: Integer;
SignatureDigestMatched: boolean;
FullFileCoverage: boolean;
PermissionsAuthenticated: boolean;
MACRequiredByPermissions: boolean;
end;
Модуль
HPDFDoc
Поля
| Поле | Назначение |
|---|---|
Status | Вердикт THPDFPDFMACStatus: pmsValid, когда MAC сошёлся, и конкретные состояния сбоя в остальных случаях |
ByteRangeLength | Число байтов файла, покрытых /ByteRange этого MAC |
MACLength | Длина закодированного значения MAC |
DigestAlgorithm | Алгоритм digest, которым был построен проверенный MAC |
PolicyProfile | THPDFPDFMACPolicyProfile, в рамках которого оценивался MAC |
PolicyAccepted | true, когда digest-политика и политика AES-GCM переданных опций приняли MAC |
UsedAESGCM | true, когда полезная нагрузка MAC была защищена AES-GCM |
Message | Понятный человеку текст исхода: например, что MAC валиден, или причина, почему нет |
Location | THPDFPDFMACLocation: отдельный MAC или присоединённый к подписи |
SignatureObjectNumber / SignatureGeneration | Объектная ссылка на подпись, к которой присоединён MAC; осмысленно, когда Location сообщает о присоединённом MAC |
SignatureDigestMatched | true, когда digest присоединённого MAC совпал с байтовым digest его подписи |
FullFileCoverage | true, когда диапазон байтов покрывает весь файл |
PermissionsAuthenticated | true, когда биты разрешений документа были покрыты MAC |
MACRequiredByPermissions | true, когда разрешения документа требуют MAC, так что его отсутствие само по себе провал валидации |
Примечания по использованию
- Заполняется методом
THotPDF.ValidatePDFMACи поревизионным валидатором; перед использованием запись сбрасывается, поэтому просматривайте её, даже когда функция вернулаfalse - Сначала проверьте
Status, затемPolicyAccepted— это отличит криптографически корректный MAC, не прошедший ваш профиль, от действительно сломанного - Для присоединённых MAC читайте
SignatureObjectNumberвместе сSignatureDigestMatched, чтобы подтвердить, что MAC покрывает те же байты, что подписывала подпись