THPDFSignatureInfo Record
Mô tả một chữ ký PDF đã nạp, từ định danh certificate qua độ phủ byte-range cho đến phán quyết verify
Khai báo
THPDFSignatureInfo= record
FieldName: AnsiString; // signature form field partial name
SubFilter: AnsiString; // /SubFilter of the signature dictionary
SignerName: AnsiString; // CN of the signer certificate subject
SubjectDN: AnsiString; // rendered subject distinguished name
IssuerDN: AnsiString; // rendered issuer distinguished name
SerialNumberHex: AnsiString; // certificate serial number, hex encoded
ValidFrom: TDateTime; // certificate notBefore (0 when absent)
ValidTo: TDateTime; // certificate notAfter (0 when absent)
SigningTime: TDateTime; // signed attribute 1.2.840.113549.1.9.5,
// else the /M entry, else 0
HashAlgorithm: AnsiString; // SHA-1, SHA-2, SHA-3, or SHAKE256
DigestAlgorithmOID: AnsiString;
DigestConsistencyIssue: THPDFCMSDigestConsistencyIssue;
SignaturePolicy: THPDFSignaturePolicyInfo;
Reason: AnsiString; // /Reason from the signature dictionary
Location: AnsiString; // /Location
ContactInfo: AnsiString; // /ContactInfo
ByteRange: array of Int64; // /ByteRange pairs (offset, length, ...)
CoversWholeDocument: boolean; // ByteRange spans the file except /Contents
SignedRevisionLength: Int64; // source prefix covered by this signature
UnsignedTrailingBytes: Int64; // bytes appended after the signed revision
CertificateTimeValidity: THPDFSignatureTimeValidity;
Status: THPDFSignatureVerifyStatus;
PublicKeyAlgorithm: AnsiString; // RSA, ECDSA, EdDSA, or ML-DSA
SignatureAlgorithm: AnsiString; // CMS signature algorithm name
SignatureAlgorithmOID: AnsiString;
CurveName: AnsiString; // ECDSA curve, such as 'P-256'
Timestamp: THPDFTimestampInfo; // RFC 3161 signature or document timestamp
CMSAttributes: THPDFCMSAttributeSummary;
CertificateValidation: THPDFCertificateValidationInfo;
end;
Đơn vị
HPDFSignVerify
Các trường
| Trường | Mục đích |
|---|---|
FieldName | Tên một phần của form field chữ ký |
SubFilter | Giá trị entry /SubFilter trong signature dictionary |
SignerName | CN của subject certificate người ký |
SubjectDN | Subject distinguished name của certificate ở dạng hiển thị |
IssuerDN | Issuer distinguished name của certificate ở dạng hiển thị |
SerialNumberHex | Số serial certificate, mã hóa hex |
ValidFrom | notBefore của certificate, bằng 0 khi không có |
ValidTo | notAfter của certificate, bằng 0 khi không có |
SigningTime | Attribute đã ký 1.2.840.113549.1.9.5, nếu không có thì lấy entry /M, vẫn không có thì bằng 0 |
HashAlgorithm | Tên họ digest: SHA-1, SHA-2, SHA-3, hoặc SHAKE256 |
DigestAlgorithmOID | Object identifier của thuật toán digest |
DigestConsistencyIssue | Lệch khớp được phát hiện giữa các thuật toán digest bên trong cấu trúc CMS |
SignaturePolicy | Chi tiết signature policy khi chữ ký mang theo policy |
Reason | Giá trị entry /Reason |
Location | Giá trị entry /Location |
ContactInfo | Giá trị entry /ContactInfo |
ByteRange | Các cặp offset và độ dài /ByteRange mô tả những khoảng byte được phủ |
CoversWholeDocument | True khi byte range phủ toàn bộ file trừ khoảng trống /Contents |
SignedRevisionLength | Độ dài phần đầu nguồn được chữ ký này phủ |
UnsignedTrailingBytes | Số byte được nối thêm sau revision đã ký |
CertificateTimeValidity | Thời gian ký có nằm trong khoảng hiệu lực của certificate hay không |
Status | Phán quyết verify với kiểu THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | Họ khóa công khai: RSA, ECDSA, EdDSA, hoặc ML-DSA |
SignatureAlgorithm | Tên thuật toán signature CMS |
SignatureAlgorithmOID | Object identifier của thuật toán signature |
CurveName | Tên đường cong ECDSA, ví dụ P-256 |
Timestamp | Chi tiết timestamp RFC 3161 của chữ ký hoặc của tài liệu |
CMSAttributes | Tóm tắt các attribute CMS đã ký |
CertificateValidation | Kết quả validation chuỗi certificate |
Ghi chú sử dụng
GetLoadedSignatureInfotrả về các trường mô tả;VerifyLoadedSignaturevàVerifyLoadedSignatureExđiền các trường status và validation sau khi kiểm tra digestCoversWholeDocumentcùng vớiUnsignedTrailingBytescho biết các revision sau có thay đổi tài liệu sau khi ký hay không- Cùng một record được dùng cho validation certificate, nên một lần gọi bao quát cả định danh, độ phủ, thuật toán, và kiểm tra chuỗi