Public-Key Şifreli Belgeyi Yeniden Yükleme

Public-key security handler ile şifrelenmiş belgeler (/Filter /Adobe.PPKLite veya /Adobe.PubSec, /SubFilter adbe.pkcs7.s4/s5), çağıran alıcı private key'ini sağladığında artık yüklenir

Key malzemesi

LoadFromFile'u çağırmadan önce THotPDF.PubSecKeyMaterial'ı atayın (HPDFParsePFX'ten bir THPDFPFXKeyMaterial). Sınırlı aralıklı prescan sırasında dosya anahtarı kurtarılır: her /Recipients zarfı RSA-OAEP private key'iyle açılır (seed ve izinler CMS EnvelopedData'dan kurtarılır) ve dosya anahtarı, yazanın yaptığı gibi tam olarak yeniden türetilir - AES-256 için seed artı zarfların SHA-256'sı, eski key uzunlukları için SHA-1

Alıcı seçimi

PubSecRecipientQuery (bir reference to function(Context: Pointer; RecipientCount: Integer): Integer), sağlanan anahtarın hangi zarf indeksini açacağını seçer; callback olmadan biri açılana kadar her alıcı denenir. PubSecRecipientQueryContext, çağıranın durumunu taşır

Writer düzeltmeleri

Round-trip üç writer kusurunu ortaya çıkardı ve tamamı düzeltildi: alıcı zarfları, binary-through-Unicode string round-trip'iyle bozuluyordu; dosya anahtarı digest'i zarf baytlarını bir baytlık kaymayla hash'liyordu; /Recipients string'leri sıradan string'ler gibi şifreleniyordu (her görüntüleyici bunlara plaintext olarak ihtiyaç duyar). Zarf'lar artık string object üzerindeki açık bir SkipEncryption bayrağıyla şifrelemeden muaf oluyor