Neuladen eines mit öffentlichem Schlüssel verschlüsselten Dokuments
Mit dem Public-Key-Sicherheits-Handler verschlüsselte Dokumente (/Filter /Adobe.PPKLite oder /Adobe.PubSec, /SubFilter adbe.pkcs7.s4/s5) werden geladen, wenn der Aufrufer den privaten Schlüssel des Empfängers bereitstellt
Schlüsselmaterial
Weisen Sie THotPDF.PubSecKeyMaterial (ein THPDFPFXKeyMaterial aus HPDFParsePFX) zu, bevor Sie LoadFromFile aufrufen. Während des Prescans des begrenzten Bereichs wird der Dateischlüssel wiederhergestellt: Jeder /Recipients-Envelope wird mit dem privaten RSA-OAEP-Schlüssel entpackt (Seed und Berechtigungen werden aus den CMS-EnvelopedData gewonnen), und der Dateischlüssel wird genauso neu abgeleitet wie beim Schreiben - SHA-256 über Seed plus Envelopes bei AES-256, SHA-1 bei den älteren Schlüssellängen
Empfängerauswahl
PubSecRecipientQuery, eine reference to function(Context: Pointer; RecipientCount: Integer): Integer, wählt den Umschlagindex, den der bereitgestellte Schlüssel öffnet. Ohne Rückruf werden alle Empfänger versucht, bis einer geöffnet werden kann. PubSecRecipientQueryContext trägt den Aufruferzustand
Korrekturen im Schreiber
Der Round-Trip hat drei Fehler im Writer aufgedeckt, die alle behoben sind: Recipient-Envelopes wurden durch einen binären Umweg über Unicode-Strings beschädigt, der Digest des Dateischlüssels hashte die Envelope-Bytes mit einem Byte Versatz, und /Recipients-Strings wurden wie gewöhnliche Strings verschlüsselt (jeder Viewer braucht sie im Klartext); Envelopes verzichten jetzt über ein explizites SkipEncryption-Flag am String-Objekt auf die Verschlüsselung