Native RFC3161 timestamps
HPDFHeadlessTimestamp poskytuje nativní tvorbu žádostí přes OpenSSL 3 i autentizovanou verifikaci RFC3161 odpovědí a tokenů na Linuxu i Windows
HPDFSignHeadlessCMS, SignToFile a SignPFXToFile hasují skutečné oktety CMS signatury přes SHA-256 a připojí verifikovaný odpovědní token jako nepodepsaný atribut signatureTimeStampToken
Před podepsáním nakonfigurujte THPDFHeadlessCMSOptions.Timestamp.TrustedCAFile a Transport a nastavte RequireTimestamp, když je autentizovaný token povinný
Options := THPDFHeadlessCMSOptions.Default;
Options.TrustedCAFile := SignerTrustFile;
Options.RequireTimestamp := True;
Options.Timestamp.TrustedCAFile := TSATrustFile;
Options.Timestamp.TrustedCRLFile := TSACRLFile;
Options.Timestamp.RequireRevocation := True;
Options.Timestamp.Transport := RequestTimestamp;
Options.Timestamp.TransportContext := TransportContext;
Report := Document.SignPFXToFile(FieldIndex, OutputFile, IdentityPFX,
IdentityPassword, Options);
Transport vlastněný volajícím dostane kompletní DER TimeStampReq a vrátí kompletní DER TimeStampResp, takže volající řídí HTTP autentizaci, TLS politiku, deadline i zrušení během síťového I/O
Žádosti obsahují čerstvé kryptografické nonce a žádají certifikáty TSA; odpovědi se musí shodovat jak s request nonce, tak s dodanou hodnotou podpisu
Verifikace autentizuje kompletní CMS token, kontroluje cestu TSA certifikátu i kritické timestamp EKU, verifikuje vazbu ESS signing-certificate a kontroluje messageImprint SHA-256, SHA-384 či SHA-512 proti skutečným oktetům podpisu podle algoritmu neseného TSTInfo
RequireRevocation načte explicitní CRL soubor a zapne revokační kontroly certifikátů verifikované vystaviteli; chybějící, expirované či revoked důkazy selžou, místo aby vytvořily důvěryhodný výsledek
Stávající tokeny se dají verifikovat offline bez původního request nonce; čerstvá verifikace odpovědi navíc kontroluje původní request nonce i status odpovědi
Callbacky, které už imprint dodávají
Funkce ForImprint přijmou předpočítaný digest SHA256, SHA384 či SHA512 a jeho hodnotu THPDFHeadlessTimestampDigest, pak zachovají ty přesné digest bajty v RFC3161 žádosti, aniž by je znovu hasovaly
Ty funkce použijte, když podepisovací callback už messageImprint dodává, tedy i Windows THPDFCMSTimestampCallback; helpery surových podpisových žádostí dál používají SHA256, zatímco offline verifikace tokenů hasuje původní podpisové oktety skutečným podporovaným algoritmem TSTInfo
Token := HPDFRequestHeadlessTimestampForImprint(MessageImprint,
htdSHA384, TimestampOptions);
Délka imprintu musí být 32, 48 či 64 bajtů pro vybraný digest; verifikace vázaná na žádost navíc kontroluje původní čerstvé nonce, OID digestu, CMS signaturu, vazbu TSA certifikátu, explicitní trust rooty, EKU i nakonfigurované revokační důkazy
Tvorbu žádostí, verifikaci odpovědí i offline verifikaci tokenů popisují tvorba žádostí, verifikace odpovědí, offline verifikace tokenů, transport a digest hodnoty
Platnost důvěryhodných certifikátů i CRL se vyhodnocuje v okamžiku verifikace, takže archivovaný token s expirovaným TSA certifikátem potřebuje archivační validační politiku a důkazy, ne obcházení aktuálních kontrol důvěry
Poškozené tokeny, duplicitní timestamp atributy, nesourodé imprinty, neznámé rooty, neplatné EKU, expirované i revoked TSA certifikáty, expirované CRL, rozpočty odpovědí i zrušení pokrývají nativní i nezávislé akceptační testy
Reporty verifikace timestampů jsou oddělené od důvěry k certifikátům podepsávajícího dokument; signature timestamp neautentizuje pozdější nepodepsané PDF revize
Funkce timestampů načtou své OpenSSL timestamp symboly jen při použití; v případě potřeby nastavte HOTPDF_OPENSSL_LIBRARY na explicitní OpenSSL 3 sdílenou knihovnu odpovídající architektury