السجل 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 للشهادة، وصفر عند غيابها |
ValidTo | قيمة notAfter للشهادة، وصفر عند غيابها |
SigningTime | السمة الموقعة 1.2.840.113549.1.9.5، وإلا فمدخل /M، وإلا فصفر |
HashAlgorithm | اسم عائلة الملخص: SHA-1 أو SHA-2 أو SHA-3 أو SHAKE256 |
DigestAlgorithmOID | معرف الكائن لخوارزمية الملخص |
DigestConsistencyIssue | عدم اتساق مكتشف بين خوارزميات الملخص داخل بنية CMS |
SignaturePolicy | تفاصيل سياسة التوقيع عندما يحمل التوقيع سياسة |
Reason | قيمة مدخل /Reason |
Location | قيمة مدخل /Location |
ContactInfo | قيمة مدخل /ContactInfo |
ByteRange | أزواج الإزاحة والطول لـ /ByteRange التي تصف مجالات البايتات المغطاة |
CoversWholeDocument | صحيح عندما يمتد نطاق البايتات على الملف كله باستثناء فجوة /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حقول الحالة والتحقق بعد فحص الملخصات- يظهر
CoversWholeDocumentمعUnsignedTrailingBytesما إذا كانت النسخ اللاحقة قد غيرت المستند بعد التوقيع - السجل نفسه يغذي التحقق من الشهادات، فتغطي الاستدعاء الواحد الهويات والتغطية والخوارزميات وفحوص السلسلة