Native Linux ABI Timestamp Transport

Nativní Linux podepisovací joby podporují skutečný RFC 3161 timestamp transport přes rozšířený operation záznam; původní ABI verze, operation prefix, exportovaná funkce i běžná velikost operation záznamu zůstávají nezměněné

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;

Záznam a JSON konfigurace

Inicializujte původní operation pole a nastavte operation.struct_size na sizeof(hpdf_signing_operation_v1); předejte &record.operation do hpdf_document_execute_json_v1 se sign jobem schemaVersion 1 a timestamp: true

Rozšíření má 72 bajtů na nativním Linux x86-64; původní hpdf_operation_v1 zůstává 56 bajtů a hpdf_abi_operation_v1_size dál reportuje tu původní velikost

timestampTrustedCAFile dodá TSA trust rooty; volitelné timestampTrustedCRLFile a requireTimestampRevocation zapnou explicitní revokační verifikaci

Callback dostane skutečný DER timestamp požadavek, tedy i imprint podpisu i vygenerované nonce; skutečné DER bajty odpovědi vraťte přes dodaný write callback a vraťte ABI status

Vlastnictví a zrušení

Transport běží synchronně na volajícím vlákně; bajty požadavku, tabulka response callbacků i response user data jsou vypůjčené jen do návratu transportu

Dotazujte response_io->is_cancelled během práce transportu, respektujte selhání zápisu odpovědi a vynucujte deadline sítě či podprocesů v aplikačním callbacku

maxTimestampResponseBytes má default menší z hodnot 4194304 bajtů a jedné osminy pracovního rozpočtu operace; nakonfigurovaný limit musí být kladný a nesmí přesáhnout ten podíl pracovního rozpočtu

Knihovna si ponechá neúspěšný či zrušený zápis odpovědi, i když aplikační callback později vrátí úspěch; selhání timestampu zachová nepodepsaný načtený kontext a nepublikuje žádný podepsaný výstup

Validace a výsledky

Nativní implementace verifikuje status odpovědi, imprint podpisu, nonce, účel TSA certifikátu, certifikátový řetězec i vyžádanou revokační politiku, dřív než přidá atribut signatureTimeStampToken a publikuje podpis

Podpisové výsledky zahrnují timestampCount, timestampValid a timestampTrustEvaluated; signatures.verify přijímá requireTimestamp a tytéž explicitní TSA volby důvěry/revokací

Akceptace

Oba nativní Linux kompilátory procházejí 319 skutečných ctypes asercí, 39 skutečných asercí C timestamp klienta, 33 stávajících asercí C ABI a 296 nezávislých kontrol výstupu

Nezávislá OpenSSL verifikace autentizuje CMS podpisy i vložené timestamp tokeny, odmítá změněné imprinty podpisů i revoked TSA certifikáty a verifikuje timestampované prosté i AES-256 R5/R6 dokumenty

Nativní podepisovací joby · Nativní C ABI · Pascal timestamp transport