PDFium Delphi Component Docs

FPdfTsaPosix 유닛

유닛: FPdfTsaPosix
RFC 3161 타임스탬프 요청을 위한 네이티브 Delphi POSIX HTTP 전송

구문

function TsaHttpAvailable: Boolean;
function TsaHttpBackendName: string;
function PostTimeStampQuery(const TsaUrl: string; const ReqDer: TBytes; out RespDer: TBytes): Boolean;

설명

POSIX 플랫폼의 Delphi에서는 FPdfTsa가 이 전송을 선택합니다. 구현은 System.Net.HttpClient로 실제 HTTP 또는 HTTPS POST를 보내며, Content-Type: application/timestamp-query와 Accept: application/timestamp-reply를 사용합니다

facade는 Windows에서 FPdfTsaWin, 네이티브 Free Pascal에서 FPdfTsaFpc에 위임합니다. 이 분기 덕분에 이전 Windows Delphi 패키지는 POSIX HTTP 구현에 의존하지 않습니다

전송 가용성은 선택한 HTTP 백엔드를 설명합니다. TSA에 연결할 수 있는지, 서명자 인증서를 신뢰할 수 있는지, 타임스탬프가 유효한지를 확인하는 것은 아닙니다

함수

함수설명
TsaHttpAvailable선택된 플랫폼 HTTP 전송을 사용할 수 있는지 보고합니다
TsaHttpBackendNameDelphi POSIX에서는 System.Net.HttpClient를, Windows 또는 Free Pascal에 위임한 경우에는 해당 전송이 보고하는 이름을 반환합니다
PostTimeStampQuery호출자의 DER 쿼리를 TsaUrl로 POST하고, 비어 있지 않으며 크기 제한을 충족하는 2xx 응답을 받아 그 바이트를 RespDer에 반환합니다. 요청이 실패하면 출력을 비우고 False를 반환합니다

제한과 검증

Delphi 전송은 요청과 응답 본문을 4 MiB, URL을 문자열 코드 유닛 8192개로 제한합니다. HTTP와 HTTPS URL만 허용하며 redirect는 비활성화합니다

연결, 전송, 응답 timeout은 30000 밀리초입니다. deadline 워커는 전체 30000 밀리초가 지나면 네이티브 HTTP 요청의 취소를 요청합니다. 크기 제한이 적용된 응답 스트림 쓰기와 완료된 응답 검사도 시간 초과를 거부합니다. 네이티브 요청 취소가 얼마나 빨리 적용되는지는 운영 체제의 HTTP 구현에 달려 있습니다

HTTPS는 플랫폼 인증서 검사와 호스트 이름 검사를 유지합니다. POST 성공은 전송 성공만을 뜻합니다. FPdfTsa는 RFC 3161 응답을 계속 파싱하고 요청한 imprint와 nonce를 확인하며 토큰을 추출합니다. PAdES 신뢰 검증은 원본 토큰의 CMS 서명, 인증서 체인, 폐기 증거, 타임스탬프 역할을 별도로 검증합니다

2xx 응답에도 TSA의 DER 거부 응답이 담길 수 있으며, 상위 응답 파서는 이를 타임스탬프 요청 실패로 보고합니다

관련 항목

FPdfTsa, FPdfTsaFpc, FPdfTsaWin, TPdf.ValidatePadesTrust