רקורד THPDFSignatureInfo
מתאר חתימת PDF טעונה אחת, מזהויות התעודה דרך כיסוי טווח-הבתים ועד פסק דין האימות
הצהרה
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;
יחידה
HPDFSignVerify
שדות
| שדה | מטרה |
|---|---|
FieldName | השם החלקי של שדה הטופס של החתימה |
SubFilter | ערך רשומת ה-/SubFilter במילון החתימה |
SignerName | ה-CN של הנושא בתעודת החותם |
SubjectDN | השם המובחן של הנושא בתעודה, כפי שמוצג |
IssuerDN | השם המובחן של המנפיק בתעודה, כפי שמוצג |
SerialNumberHex | המספר הסידורי של התעודה, מקודד הקס |
ValidFrom | ה-notBefore של התעודה, 0 כשנעדר |
ValidTo | ה-notAfter של התעודה, 0 כשנעדר |
SigningTime | התכונה החתומה 1.2.840.113549.1.9.5, אחרת רשומת ה-/M, ואחרת 0 |
HashAlgorithm | שם משפחת ה-digest: SHA-1, SHA-2, SHA-3 או SHAKE256 |
DigestAlgorithmOID | מזהה האובייקט של אלגוריתם ה-digest |
DigestConsistencyIssue | אי-התאמה שזוהתה בין אלגוריתמי digest בתוך מבנה ה-CMS |
SignaturePolicy | פרטי מדיניות החתימה כשהחתימה נושאת מדיניות |
Reason | ערך רשומת ה-/Reason |
Location | ערך רשומת ה-/Location |
ContactInfo | ערך רשומת ה-/ContactInfo |
ByteRange | זוגות היסט-ואורך של /ByteRange שמתארים את טווחי הבתים המכוסים |
CoversWholeDocument | True כשטווח הבתים משתרע על כל הקובץ מלבד הפער של /Contents |
SignedRevisionLength | אורך הקידומת של המקור שחתימה זו מכסה |
UnsignedTrailingBytes | הבתים שצורפו אחרי המהדורה החתומה |
CertificateTimeValidity | האם מועד החתימה נופל בתוך חלון התקפות של התעודה |
Status | פסק דין האימות מטיפוס THPDFSignatureVerifyStatus |
PublicKeyAlgorithm | משפחת המפתח-הציבורי: RSA, ECDSA, EdDSA או ML-DSA |
SignatureAlgorithm | שם אלגוריתם החתימה של ה-CMS |
SignatureAlgorithmOID | מזהה האובייקט של אלגוריתם החתימה |
CurveName | שם עקומת ה-ECDSA, למשל P-256 |
Timestamp | פרטי חותמת-זמן של חתימה או של מסמך לפי RFC 3161 |
CMSAttributes | סיכום התכונות החתומות של ה-CMS |
CertificateValidation | תוצאת אימות שרשרת התעודות |
הערות שימוש
-
GetLoadedSignatureInfo מחזיר את השדות התיאוריים; VerifyLoadedSignature ו-VerifyLoadedSignatureEx ממלאים את שדות הסטטוס והאימות אחרי בדיקת ה-digests -
CoversWholeDocument יחד עם UnsignedTrailingBytes מראה אם מהדורות מאוחרות שינו את המסמך אחרי החתימה - אותו רקורד מזין גם את אימות התעודות, כך שקריאה אחת מכסה זהויות, כיסוי, אלגוריתמים ובדיקות שרשרת