THPDFSignatureInfo Record

인증서 신원부터 byte-range coverage, 검증 판정까지 로드된 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

필드

필드목적
FieldNamesignature 폼 필드의 partial 이름
SubFiltersignature 사전의 /SubFilter 항목 값
SignerNamesigner 인증서 subject의 CN
SubjectDN인증서의 subject distinguished name 표기
IssuerDN인증서의 issuer distinguished name 표기
SerialNumberHex인증서 일련번호(16진수)
ValidFrom인증서 notBefore. 없으면 0
ValidTo인증서 notAfter. 없으면 0
SigningTimesigned attribute 1.2.840.113549.1.9.5, 없으면 /M 항목, 그것도 없으면 0
HashAlgorithmdigest 계열 이름. SHA-1, SHA-2, SHA-3, SHAKE256
DigestAlgorithmOIDdigest 알고리즘 object identifier
DigestConsistencyIssueCMS 구조 안에서 digest 알고리즘이 서로 맞지 않음을 감지
SignaturePolicy서명이 policy를 실고 있을 때의 signature policy 상세
Reason/Reason 항목 값
Location/Location 항목 값
ContactInfo/ContactInfo 항목 값
ByteRange덮는 바이트 구간을 기술하는 /ByteRange 오프셋·길이 쌍
CoversWholeDocument바이트 범위가 /Contents 갭을 제외한 파일 전체를 덮으면 True
SignedRevisionLength이 서명이 덮는 소스 접두부의 길이
UnsignedTrailingBytes서명된 리비전 뒤에 추가된 바이트 수
CertificateTimeValidity서명 시각이 인증서 유효 기간 안에 드는지 여부
StatusTHPDFSignatureVerifyStatus 타입의 검증 판정
PublicKeyAlgorithmpublic key 계열. RSA, ECDSA, EdDSA, ML-DSA
SignatureAlgorithmCMS signature 알고리즘 이름
SignatureAlgorithmOIDsignature 알고리즘 object identifier
CurveNameECDSA 곡선 이름. P-256 등
TimestampRFC 3161 signature 또는 document timestamp 상세
CMSAttributessigned CMS attribute 요약
CertificateValidation인증서 체인 검증 결과

사용 참고 사항

관련 API