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