Tidstämpeltransport i native Linux ABI

Signeringsjobb på native Linux stöder verklig RFC 3161-tidstämpeltransport via en utökad operationspost; den ursprungliga ABI-versionen, operationsprefixet, den exporterade funktionen och den vanliga operationspostens storlek är oförändrade

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;

Post- och JSON-konfiguration

Initiera de ursprungliga operationsfälten och sätt operation.struct_size till sizeof(hpdf_signing_operation_v1); skicka &record.operation till hpdf_document_execute_json_v1 med ett sign-jobb med schemaVersion 1 och timestamp: true

Tillägget är 72 bytes på native Linux x86-64; den ursprungliga hpdf_operation_v1 förblir 56 bytes och hpdf_abi_operation_v1_size fortsätter att rapportera den ursprungliga storleken

timestampTrustedCAFile anger TSA-förtroenderötterna; valfria timestampTrustedCRLFile och requireTimestampRevocation aktiverar explicit återkallningsverifiering

Callbacken tar emot den faktiska DER-tidstämpelbegäran, inklusive signaturimprint:et och den genererade nonce:en; returnera faktiska DER-svarsbytes via den angivna skrivcallbacken och returnera en ABI-status

Ägarskap och avbrott

Transporten körs synkront på den anropande tråden; begäranbytes, svars-callbacktabellen och svars-användardata lånas endast tills transporten returnerar

Polla response_io->is_cancelled under transportarbetet, respektera misslyckade svarsskrivningar och tillämpa deadlines för nätverk eller subprocess i applikationens callback

maxTimestampResponseBytes har som standard det minsta av 4194304 bytes och en åttondel av operationens arbetsbudget; en konfigurerad gräns måste vara positiv och får inte överskrida den andelen av arbetsbudgeten

Biblioteket behåller en misslyckad eller avbruten svarsskrivning även om applikationscallbacken senare returnerar lyckat; tidstämpelfel bevarar den osignerade inlästa kontexten och publicerar ingen signerad utmatning

Validering och resultat

Den nativa implementationen verifierar svarsstatus, signaturimprint, nonce, TSA-certifikatets ändamål, certifikatkedjan samt den begärda återkallningspolicyn innan signaturattributet signatureTimeStampToken läggs till och signaturen publiceras

Signeringsresultaten innehåller timestampCount, timestampValid och timestampTrustEvaluated; signatures.verify accepterar requireTimestamp och samma explicita alternativ för TSA-förtroende och återkallning

Acceptans

Båda nativa Linux-kompilatorerna klarar 319 verkliga ctypes-assertioner, 39 faktiska C-assertioner för tidstämpelklienten, 33 befintliga C ABI-assertioner och 296 oberoende utmatningskontroller

Oberoende OpenSSL-verifiering autentiserar CMS-signaturerna och inbäddade tidstämpeltoken:er, avvisar ändrade signaturimprint och återkallade TSA-certifikat samt verifierar tidstämplade dokument i klartext och med AES-256 R5/R6

Nativer signeringsjobb · Native C ABI · Tidstämpeltransport i Pascal