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) | Използвайте CRL, ако OCSP не върне нищо |
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 | Нито един обработен подпис не съдържаше четим сертификат |
GetPAdESLTVError съдържа причината за всяка стойност, различна от 1
Забележки
Пътят на сертификатите на подписващия се изгражда от собствения CMS на подписа, а останалите издатели се следват чрез адресите caIssuers, посочени от сертификатите, когато е зададен PADES_LTV_FOLLOW_AIA. За всяка връзка се събира информация за отмяна — първо 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