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