Opnieuw laden van met publieke sleutel versleutelde documenten
Documenten die zijn versleuteld met de publieke-sleutel-veiligheidshandler (/Filter /Adobe.PPKLite of /Adobe.PubSec, /SubFilter adbe.pkcs7.s4/s5) laden nu wanneer de aanroeper de privésleutel van de ontvanger levert
Sleutelmateriaal
Ken THotPDF.PubSecKeyMaterial toe (een THPDFPFXKeyMaterial van HPDFParsePFX) vóór het aanroepen van LoadFromFile. Tijdens de begrensde-bereik-prescan wordt de bestandssleutel hersteld: elke /Recipients-envelop wordt geopend met de RSA-OAEP-privésleutel (seed en permissies hersteld uit de CMS-EnvelopedData), en de bestandssleutel wordt exact opnieuw afgeleid zoals de schrijver dat doet - SHA-256 van seed plus envelopes voor AES-256, SHA-1 voor de legacy-sleutellengten
Ontvanger-selectie
PubSecRecipientQuery (een reference to function(Context: Pointer; RecipientCount: Integer): Integer) selecteert welke envelop-index de geleverde sleutel opent; zonder callback wordt elke ontvanger geprobeerd totdat één opent. PubSecRecipientQueryContext draagt de aanroepertoestand
Schrijver-fixes
Round-tripping bracht drie schrijver-defecten aan het licht, allemaal gefixt: ontvanger-enveloppen werden beschadigd door een binair-door-Unicode-stringround-trip, de bestandssleutel-digest hashte envelopbytes met een één-byte-offset, en /Recipients-strings werden versleuteld zoals gewone strings (elke viewer heeft ze als platte tekst nodig); enveloppen weigeren nu via een expliciete SkipEncryption-vlag op het stringobject