Omladdning av publikt krypterade dokument

Dokument som krypterats med säkerhetshanteraren för publikt nyckelmaterial (/Filter /Adobe.PPKLite eller /Adobe.PubSec, /SubFilter adbe.pkcs7.s4/s5) läses nu in när anroparen tillhandahåller mottagarens privata nyckel

Nyckelmaterial

Tilldela THotPDF.PubSecKeyMaterial (en THPDFPFXKeyMaterial från HPDFParsePFX) innan du anropar LoadFromFile. Under förskanningen med begränsat intervall återvinns filnyckeln: varje /Recipients-kuvert packas upp med den privata RSA-OAEP-nyckeln (seed och behörigheter återvinns från CMS EnvelopedData), och filnyckeln härleds på nytt exakt som skrivaren gör - SHA-256 av seed plus kuvert för AES-256, SHA-1 för de äldre nyckellängderna

Mottagarval

PubSecRecipientQuery (en reference to function(Context: Pointer; RecipientCount: Integer): Integer) väljer vilket kuvertindex som den tillhandahållna nyckeln packar upp; utan återanropsfunktion provas varje mottagare tills en packas upp. PubSecRecipientQueryContext bär anroparens tillstånd

Skrivarfixar

Omladdningen blottade tre skrivarfel, alla åtgärdade: mottagarkuvert korrumperades av en binär-till-Unicode-strängrundresa, filnyckelns digest hashar kuvertbytes med en byte-offset, och /Recipients-strängar krypterades som vanliga strängar (varje visare behöver dem som klartext); kuverten väljer nu bort det genom en explicit SkipEncryption-flagga på strängobjektet