THPDFHeadlessDocument.TimestampToFile
function TimestampToFile(FieldIndex: Integer; const FileName: string;
const Options: THPDFHeadlessCMSOptions;
ReservedTimestampBytes: Integer = 16384): THPDFHeadlessCMSResult;
기존 서명 없는 서명 field에 실제 문서 타임스탬프를 만들고 독립 증분 PDF 출력을 원자적으로 발행합니다
FieldIndex는 FindFormField가 반환하는 0부터 시작하는 폼 field 인덱스입니다. VerifySignature가 받는 채워진 서명 인덱스와는 다릅니다
출력 사전은 Type DocTimeStamp와 SubFilter ETSI.RFC3161을 쓰고, 암호화되지 않은 Contents 예약 공간에 진짜 DER 타임스탬프 토큰을 담습니다
DigestMethod는 정확히 커버되는 PDF ByteRange에 대해 SHA256, SHA384, SHA512를 고릅니다. 라이터는 토큰을 요청하기 전에 숫자 범위를 패치합니다
Timestamp.Transport는 실제 RFC 3161 응답을 반환해야 하고, Timestamp.TrustedCAFile은 신뢰하는 TSA 루트를 명시적으로 지정해야 합니다. 선택적 TrustedCRLFile과 RequireRevocation은 현재 issuer가 서명한 CRL을 검증합니다
응답은 정확한 메시지 인쇄물과 새 요청 nonce를 묶고, 적절한 TSA 인증서와 ESS 바인딩을 쓰며, 발행 전에 즉시 서명, 용도, 체인, 설정된 폐기 검사를 통과해야 합니다
애플리케이션 서명 키나 서명자 인증서는 필요 없습니다. 필수 서명 인증서 제약은 실제 인증된 TSA 인증서와 내장 인증서 체인을 평가합니다
필수 서명 seed 처리기, RFC3161 SubFilter, 다이제스트, reason, 타임스탬프 URL, 인증서 subject·issuer, 현재 이름 붙은 appearance 제약은 계속 유효합니다
인증된 DocMDP와 FieldMDP 검사는 진짜 문서 타임스탬프 삽입에 필요한 변경만 허용합니다. P1이나 field 잠금 아래 기존 서명 없는 서명 field에 삽입하는 것도 포함입니다. 이 표준 예외가 원본 정책이 금지하는 평범한 승인 서명이나 폼 변경을 허용하지는 않습니다
이후 변경 검사는 타임스탬프를 인증하고 field와 서명을 타임스탬프가 찍힌 리비전에 묶으며, 원본 인증된 객체 그래프와 잠긴 field를 계속 보호합니다
PDF 2.0 이전 소스에서는 출력이 필요할 때 BaseVersion 1.7, ExtensionLevel 1의 ESIC 확장 선언을 더하고 기존 확장 프로파일을 유지하며, 원본 헤더를 바꾸지 않고 Catalog Version 1.7로 오래된 유효 PDF 버전을 올립니다
읽기 전용 field, 소스 별칭, AES 폼 채우기 권한은 계속 강제됩니다. 호환되지 않는 승인 인증, LegalAttestation, Adobe 서명 폐기 프로파일, 타임스탬프 FieldMDP 변환 참조는 거부됩니다
ReservedTimestampBytes는 문서 객체 예산 안의 양수 토큰 용량입니다. 완전한 토큰은 고정된 16진 예약 공간에 맞아야 합니다
생성은 원본 소스 바이트와 AES 보안을 유지하고 서명 Contents를 암호화되지 않은 채 두며, 다른 메타데이터는 원본 정책대로 암호화하고 로드된 field 그래프는 그대로 둡니다
실패, 취소, 잘못된 응답, 부족한 예산은 기존 대상을 유지하고 발행되지 않은 스테이징 파일을 지웁니다
문서, CMS, 타임스탬프 취소 token은 nil이 아니라면 서로 일치해야 합니다. 커버되는 데이터는 최대 64 KiB 청크로 읽습니다
새 타임스탬프 위젯 준비에는 AddSignatureField와 SetSignatureFieldAppearance를, 결과 문서 타임스탬프 인증에는 VerifySignature를 쓰세요
성공한 생성 뒤 TimestampCount는 1이고 TimestampValid는 true입니다. CertificateTrusted와 TimestampTrustEvaluated는 명시적으로 검증된 TSA 신뢰 패스를 반영합니다
확장 프로파일은 ETSI EN 319 142-1 5.6절을 따르고, 필요한 타임스탬프 변경은 ISO 32000-2 MDP 해명을 따릅니다