Horodatages RFC3161 natifs

HPDFHeadlessTimestamp fournit la création de requêtes OpenSSL 3 native et la vérification authentifiée de réponses et tokens RFC3161 sur Linux et Windows

HPDFSignHeadlessCMS, SignToFile et SignPFXToFile hachent les octets de la signature CMS réelle avec SHA-256 et attachent le token de réponse vérifié comme attribut non signé signatureTimeStampToken

Configurez THPDFHeadlessCMSOptions.Timestamp.TrustedCAFile et Transport avant la signature, et réglez RequireTimestamp quand un token authentifié est obligatoire

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

Le transport possédé par l'appelant reçoit un TimeStampReq DER complet et retourne un TimeStampResp DER complet, permettant à l'appelant de contrôler l'authentification HTTP, la politique TLS, les échéances et l'annulation pendant les I/O réseau

Les requêtes contiennent des nonces cryptographiques frais et demandent les certificats TSA ; les réponses doivent correspondre au nonce de requête et à la valeur de signature fournie

La vérification authentifie le token CMS complet, vérifie le chemin de certificats TSA et l'EKU d'horodatage critique, valide la liaison de certificat signataire ESS, et confronte le messageImprint SHA-256, SHA-384 ou SHA-512 aux octets de la signature réelle en utilisant l'algorithme porté par TSTInfo

RequireRevocation charge le fichier CRL explicite et active les vérifications de révocation de certificats vérifiées par émetteur ; des preuves manquantes, expirées ou révoquées échouent plutôt que de produire un résultat de confiance

Les tokens existants peuvent être vérifiés hors ligne sans le nonce de requête d'origine ; la vérification de réponses fraîches vérifie en outre le nonce de requête d'origine et le statut de réponse

Callbacks qui fournissent déjà une empreinte

Les fonctions ForImprint acceptent un digest précalculé SHA256, SHA384 ou SHA512 et sa valeur THPDFHeadlessTimestampDigest, puis préservent ces octets de digest exacts dans la requête RFC3161 sans les hacher de nouveau

Utilisez ces fonctions quand un callback de signature fournit déjà le messageImprint, y compris le THPDFCMSTimestampCallback Windows ; les helpers de requête de signature brute continuent d'utiliser SHA256, tandis que la vérification hors ligne de tokens hache les octets de la signature d'origine avec l'algorithme TSTInfo réellement pris en charge

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

La longueur d'empreinte doit être de 32, 48 ou 64 octets pour le digest sélectionné ; la vérification liée à la requête vérifie en outre le nonce frais d'origine, l'OID du digest, la signature CMS, la liaison de certificats TSA, les racines de trust explicites, l'EKU et les preuves de révocation configurées

Voir la création de requêtes, la vérification de réponses, la vérification hors ligne de tokens, le transport et les valeurs de digest

La validité des certificats et CRL de confiance est évaluée au moment de la vérification, si bien qu'un token archivé dont le certificat TSA a expiré a besoin d'une politique de validation d'archivage et de preuves plutôt que de contourner les vérifications de trust courantes

Les tokens malformés, les attributs d'horodatage dupliqués, les empreintes non correspondantes, les racines inconnues, les EKU invalides, les certificats TSA expirés, les certificats TSA révoqués, les CRL expirées, les budgets de réponses et l'annulation sont couverts par des tests d'acceptation natifs et indépendants

Les rapports de vérification d'horodatage sont séparés du trust des certificats signataires du document ; un horodatage de signature n'authentifie pas les révisions PDF ultérieures non signées

Les fonctions d'horodatage chargent leurs symboles OpenSSL d'horodatage uniquement quand elles sont utilisées ; réglez HOTPDF_OPENSSL_LIBRARY sur une bibliothèque partagée OpenSSL 3 explicite de l'architecture correspondante quand nécessaire