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