Native RFC3161-Zeitstempel

HPDFHeadlessTimestamp bietet native OpenSSL-3-Anforderungserzeugung sowie authentifizierte RFC3161-Antwort- und Token-Verifizierung auf Linux und Windows

HPDFSignHeadlessCMS, SignToFile und SignPFXToFile hashen die tatsächlichen CMS-Signatur-Oktette mit SHA-256 und hängen das verifizierte Antwort-Token als unsigniertes signatureTimeStampToken-Attribut an

Konfiguriere THPDFHeadlessCMSOptions.Timestamp.TrustedCAFile und Transport vor dem Signieren, und setze RequireTimestamp, wenn ein authentifiziertes Token zwingend ist

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

Der Transport des Aufrufers erhält eine vollständige DER-TimeStampReq und liefert eine vollständige DER-TimeStampResp zurück, sodass der Aufrufer HTTP-Authentifizierung, TLS-Policy, Deadlines und Abbruch während der Netzwerk-I/O steuern kann

Anforderungen enthalten frische kryptografische Noncen und fordern die TSA-Zertifikate an; Antworten müssen sowohl der Anforderungs-Nonce als auch dem gelieferten Signaturwert entsprechen

Die Verifizierung authentifiziert das vollständige CMS-Token, prüft den TSA-Zertifikatspfad und die kritische Zeitstempel-EKU, verifiziert die ESS-Signaturzertifikats-Bindung und prüft den SHA-256-, SHA-384- oder SHA-512-messageImprint gegen die tatsächlichen Signatur-Oktette unter Verwendung des von TSTInfo getragenen Algorithmus

RequireRevocation lädt die explizite CRL-Datei und aktiviert issuer-verifizierte Zertifikatswiderrufsprüfungen; fehlende, abgelaufene oder widerrufene Evidence scheitert, statt ein vertrauenswürdiges Ergebnis zu erzeugen

Bestehende Tokens lassen sich offline ohne die originale Anforderungs-Nonce verifizieren; die frische Antwortverifizierung prüft zusätzlich die originale Anforderungs-Nonce und den Antwortstatus

Callbacks mit bereits vorhandenem Imprint

Die ForImprint-Funktionen akzeptieren einen vorberechneten SHA256-, SHA384- oder SHA512-Digest und seinen THPDFHeadlessTimestampDigest-Wert und bewahren dann genau diese Digest-Bytes in der RFC3161-Anforderung, ohne sie erneut zu hashen

Nutze diese Funktionen, wenn ein Signatur-Callback den messageImprint bereits liefert, einschließlich des Windows-THPDFCMSTimestampCallback; die Raw-Signatur-Anforderungshelfer nutzen weiterhin SHA256, während die Offline-Token-Verifizierung die originalen Signatur-Oktette mit dem tatsächlich unterstützten TSTInfo-Algorithmus hasht

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

Die Imprint-Länge muss für den gewählten Digest 32, 48 oder 64 Bytes betragen; die anforderungsgebundene Verifizierung prüft zusätzlich die originale frische Nonce, die Digest-OID, die CMS-Signatur, die TSA-Zertifikats-Bindung, explizite Trust-Roots, die EKU und konfigurierte Revocation-Evidence

Siehe Anforderungserzeugung, Antwortverifizierung, Offline-Token-Verifizierung, Transport und Digest-Werte

Die Gültigkeit von Trusted-Zertifikaten und CRLs wird zum Verifizierungszeitpunkt bewertet, daher braucht ein archiviertes Token, dessen TSA-Zertifikat abgelaufen ist, eine Archivierungs-Validierungspolicy und Evidence, statt die aktuellen Trust-Prüfungen zu umgehen

Fehlerhafte Tokens, doppelte Zeitstempelattribute, unpassende Imprints, unbekannte Roots, ungültige EKUs, abgelaufene TSA-Zertifikate, widerrufene TSA-Zertifikate, abgelaufene CRLs, Antwortbudgets und Abbruch sind durch native und unabhängige Abnahmetests abgedeckt

Zeitstempel-Verifizierungsberichte sind getrennt vom Zertifikats-Trust des Dokumentsigners; ein Signaturzeitstempel authentifiziert keine späteren unsignierten PDF-Revisionen

Zeitstempel-Funktionen laden ihre OpenSSL-Zeitstempel-Symbole erst bei Nutzung; setze HOTPDF_OPENSSL_LIBRARY bei Bedarf auf eine explizite architekturpassende OpenSSL-3-Shared-Library