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