Native Linux ABI Timestamp Transport'u

Native Linux imzalama işleri, genişletilmiş bir işlem kaydı üzerinden gerçek RFC 3161 timestamp transport'unu destekler; orijinal ABI sürümü, işlem öneki, dışa aktarılan fonksiyon ve sıradan işlem kayıt boyutu değişmeden kalır

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;

Kayıt ve JSON yapılandırması

Orijinal işlem alanlarını başlatın ve operation.struct_size'ı sizeof(hpdf_signing_operation_v1)'a ayarlayın; &record.operation'ı, schemaVersion 1 sign job ve timestamp: true ile hpdf_document_execute_json_v1'e geçirin

Uzantı, native Linux x86-64'te 72 bayttır; orijinal hpdf_operation_v1 56 bayt kalır ve hpdf_abi_operation_v1_size o orijinal boyutu bildirmeye devam eder

timestampTrustedCAFile, TSA trust köklerini sağlar; isteğe bağlı timestampTrustedCRLFile ve requireTimestampRevocation, açık revocation doğrulamasını sağlar

Callback, gerçek DER timestamp isteğini alır; imza imprint'i ve üretilmiş nonce dâhil; verilen yazma callback'i üzerinden gerçek DER yanıt baytları döndürün ve bir ABI durumu döndürün

Sahiplik ve cancellation

Transport, çağıran iş parçacığında senkron çalışır; istek baytları, yanıt callback tablosu ve yanıt user data yalnızca transport dönene kadar ödünç alınır

Transport işi sırasında response_io->is_cancelled yoklayın, yanıt yazma hatalarına uyun ve ağ veya subprocess son teslim sürelerini uygulama callback'inde uygulayın

maxTimestampResponseBytes, varsayılan olarak 4194304 bayt ve işlem working bütçesinin sekizde biri arasındaki küçük olanıdır; yapılandırılmış bir sınır pozitif olmalı ve o working-bütçe kesrini aşamaz

Kütüphane, uygulama callback'i daha sonra başarı döndürse bile başarısız veya iptal edilmiş yanıt yazmasını korur; timestamp hataları, imzasız yüklenmiş context'i korur ve imzalı çıktı yayınlamaz

Doğrulama ve sonuçlar

Native uygulama, signatureTimeStampToken özniteliğini ekleyip imzayı yayınlamadan önce yanıt durumunu, imza imprint'ini, nonce'u, TSA sertifika amacını, sertifika zincirini ve istenen revocation politikasını doğrular

İmzalama sonuçları timestampCount, timestampValid ve timestampTrustEvaluated içerir; signatures.verify, requireTimestamp ve aynı açık TSA trust/revocation options'larını kabul eder

Kabul

Her iki native Linux derleyicisi de 319 gerçek ctypes assertion, 39 gerçek C timestamp-client assertion, 33 mevcut C ABI assertion ve 296 bağımsız çıktı denetimi geçer

Bağımsız OpenSSL doğrulaması, CMS imzalarını ve gömülü timestamp token'larını kimikler, değişmiş imza imprint'lerini ve iptal edilmiş TSA sertifikalarını reddeder ve timestamp'li düz ve AES-256 R5/R6 belgelerini doğrular

Native imzalama işleri · Native C ABI · Pascal timestamp transport'u