รีเคิร์ด THPDFSignatureInfo

บรรยายลายเซ็น PDF ที่โหลดไว้หนึ่งตัว ตั้งแต่ตัวตนของใบรับรอง การครอบคลุม byte range ไปจนถึงผลตัดสินการ verify

การประกาศ

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ชื่อบางส่วนของ form field ลายเซ็น
SubFilterค่าของรายการ /SubFilter ใน signature dictionary
SignerNameCN ของ subject ในใบรับรองผู้เซ็น
SubjectDNsubject distinguished name ของใบรับรองในรูปแบบที่แสดงผล
IssuerDNissuer distinguished name ของใบรับรองในรูปแบบที่แสดงผล
SerialNumberHexเลข serial ของใบรับรอง เข้ารหัสแบบ hex
ValidFromnotBefore ของใบรับรอง เป็น 0 ถ้าไม่มี
ValidTonotAfter ของใบรับรอง เป็น 0 ถ้าไม่มี
SigningTimesigned attribute 1.2.840.113549.1.9.5 ถ้าไม่มีใช้รายการ /M ถ้าไม่มีอีกเป็น 0
HashAlgorithmชื่อตระกูล digest: SHA-1, SHA-2, SHA-3 หรือ SHAKE256
DigestAlgorithmOIDobject identifier ของอัลกอริทึม digest
DigestConsistencyIssueตรวจพบว่าอัลกอริทึม digest ภายในโครงสร้าง CMS ไม่สอดคล้องกัน
SignaturePolicyรายละเอียด signature policy เมื่อลายเซ็นแนบ policy มาด้วย
Reasonค่าของรายการ /Reason
Locationค่าของรายการ /Location
ContactInfoค่าของรายการ /ContactInfo
ByteRangeคู่ offset กับความยาวของ /ByteRange ที่บรรยายช่วงไบต์ที่ครอบคลุม
CoversWholeDocumentเป็น True เมื่อ byte range ครอบคลุมทั้งไฟล์ยกเว้นช่องว่าง /Contents
SignedRevisionLengthความยาวส่วนหัวของไฟล์ที่ลายเซ็นนี้ครอบคลุม
UnsignedTrailingBytesจำนวนไบต์ที่ต่อท้ายหลัง revision ที่เซ็นไว้
CertificateTimeValidityเวลาที่เซ็นอยู่ในช่วงอายุของใบรับรองหรือไม่
Statusผลตัดสินการ verify ชนิด THPDFSignatureVerifyStatus
PublicKeyAlgorithmตระกูล public key: RSA, ECDSA, EdDSA หรือ ML-DSA
SignatureAlgorithmชื่ออัลกอริทึมลายเซ็น CMS
SignatureAlgorithmOIDobject identifier ของอัลกอริทึมลายเซ็น
CurveNameชื่อ curve ของ ECDSA เช่น P-256
Timestampรายละเอียด timestamp ของลายเซ็นหรือเอกสารตาม RFC 3161
CMSAttributesสรุป CMS attribute ที่เซ็นไว้
CertificateValidationผลการตรวจ certificate chain ของใบรับรอง

หมายเหตุการใช้งาน

API ที่เกี่ยวข้อง