ApplyPAdESLongTermValidation
Digital signatures
คำอธิบาย
ยกระดับ PDF ที่ลงลายเซ็นแล้วขึ้นเป็น PAdES-B-LT ในครั้งเดียว โดยเขียนผลลงไฟล์
ไวยากรณ์
Delphi
Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;พารามิเตอร์
| InputFile | The signed PDF. |
|---|---|
| Password | รหัสผ่านสำหรับเปิดไฟล์ หรือสตริงว่าง |
| OutputFile | PDF ที่เสริมแล้วที่จะเขียน |
| FieldName | ฟิลด์ลายเซ็นที่จะประมวลผล หรือสตริงว่างเพื่อประมวลผลทุกลายเซ็นเข้า revision เดียว |
| Options | A PADES_LTV_* bit mask; 0 selects PADES_LTV_DEFAULT. |
Options
PADES_LTV_WRITE_VRI (1) | เขียนรายการ VRI หนึ่งรายการต่อหนึ่งลายเซ็น |
|---|---|
PADES_LTV_FETCH_OCSP (2) | Ask each link's OCSP responder. |
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 | The promotion succeeded. |
|---|---|
| 2 | อ่านไฟล์อินพุตไม่สำเร็จ |
| 3 | แยกวิเคราะห์ PDF อินพุตไม่สำเร็จ |
| 10 | เขียนเอาต์พุตไม่สำเร็จ |
| 11 | เพิ่ม document security store ไม่สำเร็จ |
| 20 | No such signature field. |
| 21 | No processed signature carried a readable certificate. |
ถ้าค่าไม่ใช่ 1 สาเหตุดูได้จาก GetPAdESLTVError
Remarks
พาธใบรับรองผู้ลงลายเซ็นถูกสร้างจาก CMS ของลายเซ็นเอง และผู้ออกที่เหลือถูกไล่ผ่านที่อยู่ caIssuers ที่ใบรับรองระบุไว้เมื่อตั้ง PADES_LTV_FOLLOW_AIA วัตถุยกเลิกสิทธิ์ถูกเก็บให้ทุกลิงก์ - OCSP ก่อน ตามด้วย CRL - แล้วเขียนพร้อมใบรับรองเข้า document security store ด้วยการอัปเดตแบบ incremental ครั้งเดียว
วัตถุที่เหมือนกับสิ่งที่เตรียมไว้แล้วจะถูกเขียนครั้งเดียวและถูกอ้างโดยทุกลายเซ็นที่ต้องใช้ หน่วยออกใบรับรองที่แชร์ข้ามห่วงโซ่หรือข้ามลายเซ็นจึงไม่ปรากฏซ้ำสองครั้ง รายการ VRI จะถูกเขียนเมื่อมีใบรับรองให้ชี้เท่านั้น รายการว่างจึงไม่เกิดขึ้นเด็ดขาด
responder ที่ติดต่อไม่ได้ไม่ทำให้การเรียกล้ม: การยกระดับไปต่อด้วยสิ่งที่เก็บได้ และ 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