THPDFPDFMACValidationInfo Record
Kết quả đầy đủ của một lần xác thực PDF MAC: status và message, độ dài byte-range và MAC, chi tiết digest và policy, việc dùng AES-GCM, vị trí MAC, liên kết signature và các flag phủ quyền
Khai báo
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;
Đơn vị
HPDFDoc
Các trường
| Trường | Mục đích |
|---|---|
Status | Kết luận THPDFPDFMACStatus, là pmsValid khi MAC đạt còn lại là các trạng thái thất bại cụ thể |
ByteRangeLength | Số byte tệp được /ByteRange của MAC phủ |
MACLength | Độ dài của giá trị MAC đã mã hóa |
DigestAlgorithm | Thuật toán digest dùng để xây dựng MAC được kiểm tra |
PolicyProfile | THPDFPDFMACPolicyProfile mà MAC được đánh giá theo đó |
PolicyAccepted | true khi policy digest và AES-GCM của option cung cấp chấp nhận MAC |
UsedAESGCM | true khi payload của MAC được bảo vệ bằng AES-GCM |
Message | Văn bản kết quả dễ đọc, ví dụ MAC hợp lệ, hoặc lý do nó không hợp lệ |
Location | THPDFPDFMACLocation: MAC standalone hoặc MAC gắn với một signature |
SignatureObjectNumber / SignatureGeneration | Object reference của signature mà MAC gắn vào, có ý nghĩa khi Location báo là MAC attached |
SignatureDigestMatched | true khi digest của MAC attached khớp với byte digest của signature |
FullFileCoverage | true khi byte range phủ trọn cả tệp |
PermissionsAuthenticated | true khi các permission bit của tài liệu được MAC phủ |
MACRequiredByPermissions | true khi quyền của tài liệu đòi hỏi phải có MAC, nên việc thiếu MAC tự nó đã là một lỗi validation |
Ghi chú sử dụng
- Được
THotPDF.ValidatePDFMACvà validator từng revision điền; record được reset trước khi dùng, nên hãy xem nó kể cả khi hàm trả vềfalse - Kiểm tra
Statustrước, rồi đếnPolicyAcceptedđể phân biệt một MAC tốt về mặt mã học nhưng trượt profile của bạn với một MAC hỏng thật sự - Với MAC attached, đọc
SignatureObjectNumbercùngSignatureDigestMatchedđể xác nhận MAC phủ đúng những byte mà signature đã ký