Native Linux ABI Timestamp Transport

Native Linux signing-jobs ondersteunen echte RFC 3161 timestamp-transport via een uitgebreid operation-record; de originele ABI-versie, operation-prefix, geƫxporteerde functie en gewone operation-record-grootte blijven ongewijzigd

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- en JSON-configuratie

Initialiseer de originele operation-velden en zet operation.struct_size op sizeof(hpdf_signing_operation_v1); geef &record.operation door aan hpdf_document_execute_json_v1 met een schemaVersion 1 sign-job en timestamp: true

De extensie is 72 bytes op native Linux x86-64; de originele hpdf_operation_v1 blijft 56 bytes en hpdf_abi_operation_v1_size rapporteert nog steeds die originele grootte

timestampTrustedCAFile levert de TSA-trust roots; optionele timestampTrustedCRLFile en requireTimestampRevocation zetten expliciete revocation-verificatie aan

De callback ontvangt het echte DER timestamp-request, inclusief de signature-imprint en gegenereerde nonce; geef echte DER response-bytes terug via de meegeleverde write-callback en geef een ABI-status terug

Eigendom en annulering

Het transport draait synchroon op de aanroepende thread; request-bytes, response-callback-tabel en response user data worden alleen geleend tot het transport terugkeert

Poll response_io->is_cancelled tijdens transportwerk, honoreer response-write-falen en handhaaf netwerk- of subprocess-deadlines in de applicatie-callback

maxTimestampResponseBytes defaultt naar het kleinste van 4194304 bytes en een achtste van de operation working-budget; een geconfigureerde limiet moet positief zijn en mag die working-budget-fractie niet overschrijden

De library houdt een gefaalde of geannuleerde response-write vast, zelfs wanneer de applicatie-callback later succes teruggeeft; timestamp-falen behouden de niet-getekende geladen context en publiceren geen signed uitvoer

Validatie en resultaten

De native implementatie verifieert response-status, signature-imprint, nonce, TSA-certificaatdoel, certificaatketen en gevraagd revocation-beleid voordat het signatureTimeStampToken-attribute wordt toegevoegd en de signature wordt gepubliceerd

Signing-resultaten omvatten timestampCount, timestampValid en timestampTrustEvaluated; signatures.verify accepteert requireTimestamp en dezelfde expliciete TSA-trust/revocation-options

Acceptatie

Beide native Linux-compilers halen 319 echte ctypes-asserties, 39 echte C timestamp-client-asserties, 33 bestaande C ABI-asserties en 296 onafhankelijke output-checks

Onafhankelijke OpenSSL-verificatie authenticeert de CMS-signatures en embedded timestamp-tokens, verwerkt gewijzigde signature-imprints en ingetrokken TSA-certificaten, en verifieert getimestampde plain- en AES-256 R5/R6-documenten

Native signing jobs · Native C ABI · Pascal timestamp transport