THPDFHeadlessDocument.SignToFile
function SignToFile(FieldIndex: Integer; const FileName: string;
const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes;
const Options: THPDFHeadlessCMSOptions;
ReservedCMSBytes: Integer = 16384): THPDFHeadlessCMSResult;
Podpisuje istniejące niepodpisane pole podpisu AcroForm i atomowo publikuje niezależne wyjście na natywnym Linuksie albo Windows
FieldIndex to oparty na zerze indeks pola formularza zwracany przez FindFormField albo GetFormField, który może się różnić od indeksu podpisu podpisanego akceptowanego przez VerifySignature
Certyfikat i pasujący klucz prywatny muszą być bajtami PEM; zaszyfrowane klucze prywatne są odrzucane bez pytania, a OpenSSL 3 jest ładowany przez tego samego providera co HPDFSignHeadlessCMS
ReservedCMSBytes rezerwuje stałą szesnastkową lukę Contents przed hashowaniem; musi być dodatnie, mieścić się w budżecie obiektów dokumentu i pomieścić kompletny wygenerowany DER CMS
Domyślny profil to adbe.pkcs7.detached; RequireCAdES=true pisze ETSI.CAdES.detached i zawiera atrybut certyfikatu podpisującego, weryfikacja dokumentu automatycznie uwierzytelnia jego powiązanie ESS, a jawnym zaufaniem CA jest oceniane oddzielnie
Writer kopiuje bajty źródła, dokleja zastępcze wartości pól i nowy obiekt podpisu przez współdzielonego writera xref, nakłada sloty ByteRange o stałej szerokości, podpisuje rzeczywiste zakresy pliku staging i weryfikuje wynikowy CMS przed flush i atomową publikacją
Każdy starszy podpis zatwierdzenia zachowuje swoje dokładne oryginalne bajty; jego wynik weryfikacji raportuje poprawną wcześniejszą rewizję i liczbę późniejszych niepodpisanych bajtów
Źródło jest otwierane tylko do odczytu, załadowany graf pól pozostaje niezmieniony przez podpisywanie, a aliasy ścieżek albo fizycznych plików źródła są odrzucane
Awarie zachowują istniejący cel i usuwają nieopublikowany plik staging, łącznie z anulowaniem, niewystarczającymi rezerwacjami, awariami certyfikatu/klucza, błędami kryptograficznymi i wyczerpaniem budżetu obiektów albo pliku
Pola tylko do odczytu, podpisane wartości pól, niedozwolone polityki certified-document i odmówione uprawnienia form-fill AES są odrzucane; uwierzytelnienie właściciela może autoryzować ograniczone źródła, podczas gdy wyjście zachowuje oryginalne hasło użytkownika i politykę bezpieczeństwa
CertificationPermission od 1 do 3 tworzy pierwszy podpis certyfikacyjny z katalogowym Perms.DocMDP i transformacją SigRef; zero tworzy podpis zatwierdzenia, łącznie z dozwolonym kolejnym podpisem w istniejącym polu pod DocMDP P2 albo P3
Opcje dokumentu i CMS muszą używać tego samego tokenu anulowania, gdy oba go określają; w przeciwnym razie provider CMS dziedziczy token dokumentu
Zwracany THPDFHeadlessCMSResult rozdziela integralność od jawnie ocenionego zaufania CA; nie implikuje żadnego wniosku o znaczniku czasu, revokacji ani długoterminowej walidacji
Użyj AddSignatureField i SetSignatureFieldAppearance, aby przygotować nowy widoczny widget podpisu, albo SignPFXToFile, aby załadować tożsamość PKCS12 przez OpenSSL 3
Użyj TimestampToFile, aby dokleić samodzielny znacznik czasu dokumentu RFC3161 bez tożsamości podpisywania aplikacji