ApplyPAdESLongTermValidation
Podpisy cyfrowe
Opis
Promuje już podpisany plik PDF do PAdES-B-LT w jednym wywołaniu i zapisuje wynik do pliku.
Składnia
Delphi
Function TPDFlib.ApplyPAdESLongTermValidation(Const InputFile, Password, OutputFile, FieldName: WideString; Options: Integer): Integer;Parametry
| InputFile | Podpisany plik PDF. |
|---|---|
| Password | Hasło do jego otwarcia albo pusty ciąg. |
| OutputFile | Rozszerzony plik PDF do zapisania. |
| FieldName | Pole podpisu do przetworzenia albo pusty ciąg, aby przetworzyć wszystkie podpisy w jednej rewizji. |
| Options | Maska bitowa PADES_LTV_*; 0 wybiera PADES_LTV_DEFAULT. |
Opcje
PADES_LTV_WRITE_VRI (1) | Zapisz wpis VRI dla każdego podpisu. |
|---|---|
PADES_LTV_FETCH_OCSP (2) | Wyślij zapytanie do respondera OCSP każdego ogniwa. |
PADES_LTV_FETCH_CRL (4) | Użyj listy CRL, gdy OCSP niczego nie zwrócił. |
PADES_LTV_FOLLOW_AIA (8) | Podążaj za adresami wystawców, aby uzupełnić ścieżkę. |
PADES_LTV_SKIP_EXISTING (16) | Nie dodawaj ponownie materiału, którego bajty są już przygotowane. |
PADES_LTV_SKIP_ROOT_REVOCATION (32) | Nie pytaj o stan samowystawionego certyfikatu głównego. |
PADES_LTV_DEFAULT (63) | Wszystkie powyższe; wybierane, gdy Options ma wartość 0. |
Wartości zwracane
| 1 | Promocja powiodła się. |
|---|---|
| 2 | Nie można odczytać pliku wejściowego. |
| 3 | Nie można przeanalizować wejściowego pliku PDF. |
| 10 | Nie można zapisać danych wyjściowych. |
| 11 | Nie można dodać magazynu zabezpieczeń dokumentu. |
| 20 | Nie ma takiego pola podpisu. |
| 21 | Żaden przetworzony podpis nie zawierał czytelnego certyfikatu. |
GetPAdESLTVError zawiera przyczynę każdej wartości innej niż 1.
Uwagi
Ścieżka certyfikatu podpisującego jest tworzona z własnego CMS podpisu, a pozostałych wystawców wyszukuje się za pośrednictwem adresów caIssuers wskazanych przez certyfikaty, gdy ustawiono PADES_LTV_FOLLOW_AIA. Informacje o unieważnieniu są zbierane dla każdego ogniwa — najpierw OCSP, następnie CRL — i wraz z certyfikatami zapisywane w magazynie zabezpieczeń dokumentu w jednej aktualizacji przyrostowej.
Materiał identyczny z już przygotowanym jest zapisywany jednokrotnie i wskazywany przez każdy wymagający go podpis, dlatego urząd certyfikacji współdzielony w obrębie ścieżki lub wielu podpisów nie pojawia się dwukrotnie. Wpis VRI jest zapisywany tylko wtedy, gdy ma certyfikat, do którego może się odwołać, więc pusty wpis nigdy nie powstaje.
Nieosiągalny responder nie powoduje niepowodzenia wywołania: promocja jest kontynuowana z zebranym materiałem, a GetPAdESLTVCertificateCount, GetPAdESLTVCRLCount, GetPAdESLTVOCSPCount i GetPAdESLTVError zgłaszają, co uzyskano i dlaczego czegoś zabrakło.
Przykład
PDF.SetTimeStampOptions(2, 1, 1, 15000, '');
if PDF.ApplyPAdESLongTermValidation('signed.pdf', '', 'signed-lt.pdf', '', 0)<> 1 then
ShowMessage(PDF.GetPAdESLTVError);Zobacz również
ApplyPAdESLongTermValidationToStream, GetSignatureCertificateChainLength, AddPAdESDSSOCSPFromCertificates