Native Linux ABI Timestamp Transport
Native Linux Signing-Jobs unterstützen echten RFC-3161-Timestamp-Transport über einen erweiterten Operation-Record; die ursprüngliche ABI-Version, das Operationspräfix, die exportierte Funktion und die gewöhnliche Operation-Record-Größe bleiben unverändert
typedef hpdf_status (HPDF_CDECL *hpdf_timestamp_transport_v1)(
void *user_data, const void *request, size_t request_length,
const hpdf_io_v1 *response_io);
typedef struct hpdf_signing_operation_v1 {
hpdf_operation_v1 operation;
void *timestamp_user_data;
hpdf_timestamp_transport_v1 timestamp_transport;
} hpdf_signing_operation_v1;
Record- und JSON-Konfiguration
Initialisieren Sie die ursprünglichen Operationsfelder und setzen Sie operation.struct_size auf sizeof(hpdf_signing_operation_v1); übergeben Sie &record.operation an hpdf_document_execute_json_v1 mit einem schemaVersion-1-Sign-Job und timestamp: true
Die Extension ist auf nativem Linux x86-64 72 Bytes groß; der ursprüngliche hpdf_operation_v1 bleibt 56 Bytes, und hpdf_abi_operation_v1_size meldet weiter diese ursprüngliche Größe
timestampTrustedCAFile liefert die TSA-Trust-Roots; optionale timestampTrustedCRLFile und requireTimestampRevocation schalten eine explizite Revocation-Verifikation frei
Der Callback erhält die echte DER-Timestamp-Anfrage, einschließlich Signature-Imprint und generierter Nonce; liefern Sie echte DER-Antwort-Bytes über den gelieferten Write-Callback zurück und geben Sie einen ABI-Status zurück
Ownership und Abbruch
Der Transport läuft synchron auf dem aufrufenden Thread; Request-Bytes, Response-Callback-Tabelle und Response-User-Data sind nur bis zur Rückkehr des Transports ausgeliehen
Pollen Sie response_io->is_cancelled während der Transportarbeit, honorieren Sie Fehlschläge beim Response-Schreiben und erzwingen Sie Netzwerk- oder Subprocess-Deadlines im Application-Callback
maxTimestampResponseBytes ist standardmäßig das kleinere von 4194304 Bytes und einem Achtel des Operations-Working-Budgets; ein konfiguriertes Limit muss positiv sein und darf diesen Working-Budget-Anteil nicht überschreiten
Die Library behält einen fehlgeschlagenen oder abgebrochenen Response-Write bei, selbst wenn der Application-Callback später Erfolg zurückgibt; Timestamp-Fehlschläge bewahren den unsignierten geladenen Kontext und veröffentlichen keine signierte Ausgabe
Validierung und Ergebnisse
Die native Implementierung verifiziert Response-Status, Signature-Imprint, Nonce, TSA-Zertifikatszweck, Zertifikatskette und angeforderte Revocation-Policy, bevor das signatureTimeStampToken-Attribut ergänzt und die Signatur veröffentlicht wird
Signing-Ergebnisse enthalten timestampCount, timestampValid und timestampTrustEvaluated; signatures.verify akzeptiert requireTimestamp und dieselben expliziten TSA-Trust-/Revocation-Optionen
Abnahme
Beide native Linux-Compiler bestehen 319 echte ctypes-Assertions, 39 echte C-Timestamp-Client-Assertions, 33 bestehende C-ABI-Assertions und 296 unabhängige Ausgabeprüfungen
Unabhängige OpenSSL-Verifikation authentifiziert die CMS-Signaturen und eingebetteten Timestamp-Token, weist geänderte Signature-Imprints und widerrufene TSA-Zertifikate zurück und verifiziert getimestampte Plaintext- und AES-256-R5/R6-Dokumente
Native signing jobs · Native C ABI · Pascal timestamp transport