نقل الطوابع الزمنية عبر ABI لـ Linux الأصلي
مهام التوقيع الأصلية على Linux تدعم نقل طابع زمني حقيقي بـ RFC 3161 عبر سجل عملية موسّع؛ ونسخة ABI الأصلية وبادئة العملية والدالة المصدَّرة وحجم سجل العملية العادي تبقى دون تغيير
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;
السجل وتهيئة JSON
هيّئ حقول العملية الأصلية واضبط operation.struct_size إلى sizeof(hpdf_signing_operation_v1)؛ ومرّر &record.operation إلى hpdf_document_execute_json_v1 مع مهمة توقيع بـ schemaVersion 1 وtimestamp: true
الامتداد 72 بايتًا على Linux x86-64 الأصلي؛ وhpdf_operation_v1 الأصلي يبقى 56 بايتًا وhpdf_abi_operation_v1_size يستمر بالإبلاغ عن ذلك الحجم الأصلي
timestampTrustedCAFile تزوّد جذور ثقة TSA؛ وtimestampTrustedCRLFile وrequireTimestampRevocation الاختياريتان تفعّلان التحقق الصريح من الإبطال
الـ callback يتلقى طلب الطابع الزمني الفعلي بـ DER، بما يشمل بصمة التوقيع وnonce المولَّدة؛ وأعِد بايتات استجابة DER الفعلية عبر callback الكتابة المقدَّم وأعِد حالة ABI
الملكية والإلغاء
النقل يعمل تزامنيًا على خيط المستدعي؛ وبايتات الطلب وجدول callback الاستجابة وبيانات المستخدم للاستجابة مستعارة فقط حتى تعود الناقلة
استقصِ response_io->is_cancelled أثناء عمل النقل، وكرّم فشل كتابة الاستجابة، وفرض مواعيد نهائية للشبكة أو العملية الفرعية في callback التطبيق
maxTimestampResponseBytes يقصّر افتراضيًا إلى الأصغر بين 4194304 بايت وثُمن ميزانية العمل؛ والحد المهيأ يجب أن يكون موجبًا ولا يمكن أن يتجاوز تلك النسبة من ميزانية العمل
تحتفظ المكتبة بكتابة استجابة فاشلة أو ملغاة حتى لو أعاد callback التطبيق لاحقًا النجاح؛ وفشل الطابع الزمني يحفظ السياق المحمَّل غير الموقَّع ولا ينشر مخرجًا موقَّعًا
التحقق والنتائج
التنفيذ الأصلي يتحقق من حالة الاستجابة وبصمة التوقيع وnonce وغرض شهادة TSA وسلسلة الشهادات وسياسة الإبطال المطلوبة قبل إضافة سمة signatureTimeStampToken ونشر التوقيع
نتائج التوقيع تتضمن timestampCount وtimestampValid وtimestampTrustEvaluated؛ وsignatures.verify تقبل requireTimestamp وخيارات ثقة TSA/الإبطال الصريحة نفسها
القبول
كلا مترجمي Linux الأصليين ينجز 319 تأكيد ctypes حقيقي و39 تأكيد عميل طابع زمني C فعلي و33 تأكيد C ABI قائمًا و296 فحص مخرجات مستقلًا
التحقق المستقل بـ OpenSSL يصادق على تواقيع CMS وtokens الطابع الزمني المضمّنة، ويرفض بصمات التوقيع المتغيّرة وشهادات TSA الملغاة، ويتحقق من مستندات plain وAES-256 R5/R6 ذات الطوابع الزمنية
مهام التوقيع الأصلية · ABI الأصلي بلغة C · نقل الطوابع الزمنية في Pascal