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