Native Linux ABI timestamp-transport
Native Linux signeringsjobs understøtter rigtig RFC 3161 timestamp-transport gennem en udvidet operation record; den originale ABI-version, operationspræfiks, eksporterede funktion og almindelige operation record-størrelse forbliver uændret
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- og JSON-konfiguration
Initialisér de originale operationsfelter og sæt operation.struct_size til sizeof(hpdf_signing_operation_v1); send &record.operation til hpdf_document_execute_json_v1 med et schemaVersion 1 sign-job og timestamp: true
Udvidelsen er 72 bytes på native Linux x86-64; den originale hpdf_operation_v1 forbliver 56 bytes, og hpdf_abi_operation_v1_size fortsætter med at rapportere den originale størrelse
timestampTrustedCAFile leverer TSA trust roots; valgfri timestampTrustedCRLFile og requireTimestampRevocation aktiverer eksplicit revocation-verifikation
Callbacken modtager den faktiske DER timestamp-anmodning, inklusive signaturaftrykket og genereret nonce; returnér faktiske DER responsbytes gennem den leverede skrive-callback og returnér en ABI-status
Ejerskab og cancellation
Transporten kører synkront på den kaldende tråd; anmodningsbytes, respons callback-tabel og respons user data er kun lånt, indtil transporten returnerer
Poll response_io->is_cancelled under transportarbejde, honorér respons skrivefejl og håndhæv netværks- eller subprocess-frister i applikations-callbacken
maxTimestampResponseBytes er som standard det mindste af 4194304 bytes og en ottendedel af operationens arbejdsbudget; en konfigureret grænse skal være positiv og må ikke overstige den arbejdsbudget-fraktion
Biblioteket tilbageholder en mislykket eller annulleret respons-skrivning, selv hvis applikations-callbacken senere returnerer succes; timestamp-fejl bevarer den usignerede indlæste kontekst og publicerer intet signeret output
Validering og resultater
Den native implementering verificerer responsstatus, signaturaftryk, nonce, TSA certifikatformål, certifikatkæde og anmodet revocation-politik, før signatureTimeStampToken-attributten tilføjes og signaturen publiceres
Signeringsresultater inkluderer timestampCount, timestampValid og timestampTrustEvaluated; signatures.verify accepterer requireTimestamp og de samme eksplicitte TSA trust/revocation-options
Accept
Begge native Linux-kompilatorer består 319 rigtige ctypes-assertions, 39 faktiske C timestamp-klient-assertions, 33 eksisterende C ABI-assertions og 296 uafhængige outputtjek
Uafhængig OpenSSL-verifikation autentificerer CMS-signaturerne og indlejrede timestamp-tokens, afviser ændrede signaturaftryk og revokerede TSA-certifikater og verificerer timestampede plain- og AES-256 R5/R6-dokumenter
Native signeringsjobs · Native C ABI · Pascal timestamp-transport