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