Timestamp RFC3161 nativi

HPDFHeadlessTimestamp fornisce creazione nativa delle richieste con OpenSSL 3 e verifica autenticata di risposte e token RFC3161 su Linux e Windows

HPDFSignHeadlessCMS, SignToFile e SignPFXToFile calcolano l'hash degli ottetti di firma CMS reali con SHA-256 e allegano il token di risposta verificato come attributo unsigned signatureTimeStampToken

Configura THPDFHeadlessCMSOptions.Timestamp.TrustedCAFile e Transport prima della firma, e imposta RequireTimestamp quando un token autenticato è obbligatorio

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);

Il transport di proprietà del chiamante riceve un TimeStampReq DER completo e restituisce un TimeStampResp DER completo, permettendo al chiamante di controllare autenticazione HTTP, policy TLS, deadline e cancellazione durante l'I/O di rete

Le richieste contengono nonce crittografici freschi e richiedono i certificati TSA; le risposte devono corrispondere sia al nonce della richiesta sia al valore di firma fornito

La verifica autentica il token CMS completo, controlla il percorso del certificato TSA e l'EKU critico del timestamp, verifica il binding ESS del certificato di firma, e controlla il messageImprint SHA-256, SHA-384 o SHA-512 contro gli ottetti di firma reali usando l'algoritmo transportato da TSTInfo

RequireRevocation carica il file CRL esplicito e abilita i controlli di revoca del certificato verificati sull'issuer; evidenza mancante, scaduta o revocata produce fallimento invece di un risultato trusted

I token esistenti possono essere verificati offline senza il nonce della richiesta originale; la verifica di risposte fresche controlla inoltre il nonce della richiesta originale e lo stato della risposta

Callback che forniscono già un imprint

Le funzioni ForImprint accettano un digest SHA256, SHA384 o SHA512 precalcolato e il suo valore THPDFHeadlessTimestampDigest, poi conservano quegli esatti byte di digest nella richiesta RFC3161 senza rifare l'hash

Usa queste funzioni quando una callback di firma fornisce già il messageImprint, inclusa la THPDFCMSTimestampCallback Windows; gli helper di richiesta su firma grezza continuano a usare SHA256, mentre la verifica offline dei token calcola l'hash degli ottetti di firma originali con l'algoritmo TSTInfo effettivamente supportato

Token := HPDFRequestHeadlessTimestampForImprint(MessageImprint,
  htdSHA384, TimestampOptions);

La lunghezza dell'imprint deve essere 32, 48 o 64 byte per il digest selezionato; la verifica legata alla richiesta controlla inoltre il nonce fresco originale, l'OID del digest, la firma CMS, il binding del certificato TSA, le root di trust esplicite, l'EKU e l'evidenza di revoca configurata

Vedi creazione della richiesta, verifica della risposta, verifica offline del token, transport e valori del digest

La validità di certificati trusted e CRL viene valutata al momento della verifica, quindi un token archiviato il cui certificato TSA è scaduto necessita di una policy di validazione archivistica e di evidenza, invece di bypassare i controlli di trust correnti

Token malformati, attributi timestamp duplicati, imprint non corrispondenti, root sconosciute, EKU non validi, certificati TSA scaduti, certificati TSA revocati, CRL scadute, budget delle risposte e cancellazione sono coperti dai test di collaudo nativi e indipendenti

I report di verifica del timestamp sono separati dal trust del certificato del signer del documento; un timestamp di firma non autentica revisioni PDF successive non firmate

Le funzioni timestamp caricano i simboli timestamp di OpenSSL solo quando usate; imposta HOTPDF_OPENSSL_LIBRARY a una shared library OpenSSL 3 esplicita dell'architettura corrispondente quando serve