ApplyPAdESLongTermValidation
디지털 서명
설명
이미 서명된 PDF를 한 번의 호출로 PAdES-B-LT로 승격하고 결과를 파일에 씁니다
구문
Delphi
Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;매개변수
| InputFile | 서명된 PDF |
|---|---|
| Password | 열기 위한 암호이며 필요 없으면 빈 문자열 |
| OutputFile | 기록할 증강 PDF |
| FieldName | 처리할 서명 필드이며 빈 문자열이면 모든 서명을 하나의 리비전으로 처리합니다 |
| Options | PADES_LTV_* 비트 마스크이며, 0은 PADES_LTV_DEFAULT를 선택합니다 |
옵션
PADES_LTV_WRITE_VRI (1) | 각 서명에 대해 VRI 항목을 기록합니다 |
|---|---|
PADES_LTV_FETCH_OCSP (2) | 각 링크의 OCSP 응답자에게 요청합니다 |
PADES_LTV_FETCH_CRL (4) | OCSP가 아무 결과도 반환하지 않으면 CRL로 대체합니다 |
PADES_LTV_FOLLOW_AIA (8) | 발급자 주소를 따라 경로를 완성합니다 |
PADES_LTV_SKIP_EXISTING (16) | 바이트가 이미 준비된 자료를 다시 추가하지 마십시오 |
PADES_LTV_SKIP_ROOT_REVOCATION (32) | 자체 발급 루트의 상태는 요청하지 않습니다 |
PADES_LTV_DEFAULT (63) | 위의 모든 항목이며 Options가 0일 때 선택됨 |
반환 값
| 1 | 승격에 성공했습니다 |
|---|---|
| 2 | 입력 파일을 읽을 수 없습니다 |
| 3 | 입력 PDF를 구문 분석할 수 없음 |
| 10 | 출력을 쓸 수 없습니다 |
| 11 | 문서 보안 저장소를 추가할 수 없습니다 |
| 20 | 해당 서명 필드가 없습니다 |
| 21 | 처리된 서명 중 읽을 수 있는 인증서를 포함한 서명이 없습니다 |
1 이외의 값에 대한 원인은 GetPAdESLTVError에 들어 있습니다
비고
서명자 인증서 경로는 서명 자체의 CMS에서 생성되며 PADES_LTV_FOLLOW_AIA가 설정된 경우 나머지 발급자는 인증서가 지정한 caIssuers 주소를 따라갑니다. 각 링크의 해지 정보를 OCSP 우선, 다음 CRL 순서로 수집하고 인증서와 함께 단일 증분 업데이트로 문서 보안 저장소에 기록합니다
이미 준비된 항목과 동일한 자료는 한 번만 기록되고 이를 필요로 하는 모든 서명에서 참조하므로 경로나 서명 간에 공유되는 인증 기관이 두 번 나타나지 않습니다. VRI 항목은 가리킬 인증서가 있을 때만 기록되므로 빈 항목은 생성되지 않습니다
응답자에 연결할 수 없어도 호출은 실패하지 않습니다. 수집된 항목만으로 승격을 진행하며 GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount 및 GetPAdESLTVError에서 수집된 항목과 누락 사유를 보고합니다
예제
PDF.SetTimeStampOptions(2, 1, 1, 15000, '');
if PDF.ApplyPAdESLongTermValidation('signed.pdf', '', 'signed-lt.pdf', '', 0)<> 1 then
ShowMessage(PDF.GetPAdESLTVError);참고 항목
ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates