مزوّدو التوقيع الحديثون
HPDFSignatureProvider يفصل تحليل وترميز CMS عن تخزين المفتاح الخاص وتشفير المنصة
خوارزميات التحقق
تتحقق HPDFVerifyCMSSignatureEx من توقيعات CMS بالنمط النقي Ed25519 وEd448 عبر THPDFPlatformSignatureProvider أو مزوّد يوفره المستدعي، وتسجّل معرّف OID الدقيق للتوقيع في THPDFSignatureInfo.SignatureAlgorithmOID
يتحقق تحليل CMS بشكل متبادل من مجموعة اختصار الحاوية واختصار الموقِّع ومعاملات آلية التوقيع وسمة حماية الخوارزمية الاختيارية وفق RFC 6211 قبل التجزئة أو إرسال الطلب إلى المزوّد؛ راجع اتساق خوارزمية اختصار CMS للاطلاع على الحالات وأكواد المشكلات التفصيلية
تستخدم ML-DSA-44 وML-DSA-65 وML-DSA-87 مزوّد المنصة عند توفره، لكن التحقق من المستند المحمّل يُمكّنها فقط عندما يعلن الكتالوج امتداد المطوّر الخاص بـ HotPDF وفق PDF 2.0
مزوّدو التوقيع
تختار THotPDF.SignPDFWithPFX وتحميلات HPDFCMSSignPDFStream المدعومة بـ PFX خوارزمية RSA أو ECDSA أو Ed25519 أو Ed448 من هوية PKCS#12 المطابقة دون رد نداء توقيع يوفره المستدعي
تُوقَّع القيم العددية الخاصة بـ ECDSA عبر Windows CNG وتُعاد بصيغة DER صارمة لقيم ECDSA، بينما يستخدم Ed25519 وEd448 مكتبة libcrypto اختيارية من OpenSSL 3 يحددها THPDFCMSSignOptions.OpenSSLLibraryPath أو مسار البحث المعتاد عن المكتبات
يوقِّع PureEdDSA مجموعة السمات الموقَّعة الكاملة SET OF بصيغة DER بدلًا من اختصار سمات محسوب مسبقًا؛ يقرن Ed25519 هذا الإدخال باختصارات مستند SHA-512، بينما يستخدم Ed448 معرّف id-shake256-len بمخرجات SHAKE256 بطول 512 بت
تختار THPDFCMSSignOptions.SignerIdentifier ترميز الهوية بطريقة المُصدر والرقم التسلسلي أو SubjectKeyIdentifier من X.509 بشكل مستقل عن مزوّد المفتاح الخاص؛ راجع موقِّعو CMS SubjectKeyIdentifier
يكيّف THPDFCallbackSignatureProvider ردود نداء التطبيق، بينما تطبق THPDFRemoteSignatureProvider حدودًا لإعادة المحاولة والإلغاء والإدخال والتوقيع حول نقل بعيد
تنفذ THPDFCSCSignatureProvider توقيعًا بعيدًا وفق واجهة CSC API v2 عبر نقل HTTP يوفره التطبيق، بما يشمل تجديد رمز OAuth، واكتشاف بيانات الاعتماد وسلسلة الشهادات، والحصول الصريح على SAD مثبَّت بالاختصار، ودفعات multisign مرتَّبة ومحدودة، وطلبات signatures/signHash المتزامنة أو غير المتزامنة، والاستطلاع المحدود، وطوابع RFC 3161 الزمنية، والإلغاء، وإعادة التشغيل الآمنة المعتمدة على المحتوى
تسلسل THPDFPKCS11SignatureProvider عمليات RSA وECDSA عبر جلسة PKCS#11 مصدَّقة ومعالج مفتاح خاص يملكهما المستدعي، منتقيًا آليات RSA PKCS#1 v1.5 أو RSA-PSS الخاصة بكل digest أو آليات ECDSA الخام دون تصدير مادة المفتاح
يفتح THPDFWindowsKeyStorageSignatureProvider المفاتيح المحفوظة في KSP الخاص بالبطاقات الذكية من Microsoft أو في أي مزوّد تخزين مفاتيح CNG مسمّى، ويرفض اختياريًا المفاتيح البرمجية عبر الخاصية Impl Type، ويطبق سياسة وصول صامتة أو تفاعلية، ويوقّع digests بصيغ SHA-2 أو SHA3 عبر RSA PKCS#1 v1.5 أو RSA-PSS أو ECDSA
يكيّف CreateFromKeyHandle قيمة NCRYPT_KEY_HANDLE قائمة ويمكنه استعارتها أو تملّكها، ما يتيح للتطبيقات التي تدير أصلًا مصادقة البطاقات الذكية أو TPM أو HSM الخاص بالمورّد الاحتفاظ بالتحكم في دورة الحياة
يبني HPDFCMSBuildSignedDataWithProvider بيانات CMS منفصلة من الـ digest الذي تحدده THPDFCMSSignOptions.DigestAlgorithm، بينما يوقّع HPDFCMSSignPDFStreamWithProvider عنصرًا نائبًا قائمًا لتوقيع PDF عبر نسخ تدفق محدودة وتجزئة نطاقات متدفقة وترقيع seek بعرض ثابت، دون الاحتفاظ بنسخة PDF ثانية كاملة
يشتق HPDFCMSEstimatePlaceholder حجم CMS خالٍ من الأثر الجانبي من طول توقيع صريح أو من تقدير يقدمه المزوّد أو من حجم مفتاح شهادة RSA، ثم يراعي بدقة شكل CMS الثابت والاحتياطيات الديناميكية المهيأة للطابع الزمني أو التوقيع المضاد
يعيد HPDFCMSSignPDFStreamWithProviderAutoSize وHPDFCMSSignPDFStreamWithExternalSignerAutoSize بناء العناصر النائبة غير الموقعة الأصغر من اللازم قبل التوقيع؛ وتتطلب إعادة المحاولة بعد التوقيع قدرة المزوّد spcSafeSignRetry، أما استدعاءات الموقّع الخارجي فلا تُعاد بعد إرجاع توقيع
راجع التحجيم التلقائي للعناصر النائبة في CMS للاطلاع على خيارات الحجم وعقود إعادة البناء وسياسة إعادة المحاولة والتشخيص
راجع مزوّد توقيع CSC البعيد للاطلاع على عقود النقل والتفويض وإعادة المحاولة والاستطلاع والميزانية
راجع توقيعات PDF بـ SHA3 وطوابعها الزمنية للاطلاع على سياسة الاختصار، وRFC 3161، وSeed Value، والمزوّد، وعقود البث
راجع توقيعات Brainpool ECDSA للاطلاع على متطلبات الشهادة ذات المنحنى المسمّى، ومصفوفة SHA-2 وSHA3 الخاصة بالمنحنى، وترميز DER الصارم، والتحقق المنتِج الذي يفشل قبل المزوّد
عقد طلب المزوّد
تحمل THPDFSignatureProviderRequest خوارزمية التوقيع ومعرّفها OID، ومعرّف OID للاختصار، ونوع إدخال الرسالة أو الاختصار، وطول ملح PSS، والمفتاح العام أو الشهادة، ومعرّف المفتاح، ومعرّف العملية، والتوقيع، وسياق الخوارزمية
يُعيد مزوّد التوقيع spsValid مع توقيع غير فارغ، بينما تستخدم مزوّدات التحقق spsValid أو spsInvalid؛ وتبقى نتائج عدم الدعم والتشوّه وخطأ المزوّد والإلغاء متمايزة