مرجع HotPDF
أصبحت المستندات المشفّرة بمعالج الأمان ذي المفتاح العام (/Filter /Adobe.PPKLite أو /Adobe.PubSec، /SubFilter adbe.pkcs7.s4/s5) تُحمَّل الآن عندما يوفر المستدعي المفتاح الخاص للمستلم
مادة المفتاح
عيّن THotPDF.PubSecKeyMaterial (وهي THPDFPFXKeyMaterial من HPDFParsePFX) قبل استدعاء LoadFromFile. أثناء الفحص المسبق المحدود النطاق يُستعاد مفتاح الملف: يُفكّ تغليف كل envelope من /Recipients بالمفتاح الخاص RSA-OAEP (يُستعاد الـseed والصلاحيات من CMS EnvelopedData)، ويُعاد اشتقاق مفتاح الملف تمامًا كما يفعل الكاتب - SHA-256 لـseed زائد envelopes لـAES-256، وSHA-1 لأطوال المفاتيح القديمة
اختيار المستلم
يحدد PubSecRecipientQuery (وهو reference to function(Context: Pointer; RecipientCount: Integer): Integer) رقم فهرس الـenvelope الذي يفكّه المفتاح المُعطى؛ وبدون callback تجرَّب كل مستلم حتى ينجح أحدها. يحمل PubSecRecipientQueryContext حالة المستدعي
اختيار المستلم
كشف اختبار round-trip عن ثلاثة عيوب في الكاتب، وجميعها تم إصلاحها: كانت envelopes المستلمين تتلف بسبب تمرير binary عبر سلسلة Unicode ذهابًا وإيابًا، وكان digest مفتاح الملف يجزّئ بايتات الـenvelope بإزاحة بايت واحد، وكانت سلاسل /Recipients تُشفَّر كسلاسل عادية (بينما تحتاجها كل العارضات نصًا صريحًا)؛ والآن تستثني الـenvelopes نفسها صراحةً عبر علم SkipEncryption على كائن السلسلة