Recarregamento de documento criptografado por chave pública
Documentos criptografados com o manipulador de segurança de chave pública (/Filter /Adobe.PPKLite ou /Adobe.PubSec, /SubFilter adbe.pkcs7.s4/s5) agora são carregados quando o chamador fornece a chave privada do destinatário
Material de chave
Atribua THotPDF.PubSecKeyMaterial (um THPDFPFXKeyMaterial de HPDFParsePFX) antes de chamar LoadFromFile. Durante o pré-scan de faixa limitada, a chave do arquivo é recuperada: cada envelope /Recipients é aberto com a chave privada RSA-OAEP (seed e permissões recuperadas do CMS EnvelopedData), e a chave do arquivo é rederivada exatamente como o gravador faz - SHA-256 de seed mais envelopes para AES-256, SHA-1 para os comprimentos de chave legados
Seleção de destinatário
PubSecRecipientQuery (uma reference to function(Context: Pointer; RecipientCount: Integer): Integer) seleciona qual índice de envelope a chave fornecida abre; sem um callback, todo destinatário é tentado até que um abra. PubSecRecipientQueryContext carrega o estado do chamador
Correções do gravador
O round-trip expôs três defeitos do gravador, todos corrigidos: envelopes de destinatário eram corrompidos por um round-trip de string binário-por-Unicode, o digest da chave do arquivo fazia hash de bytes de envelope com um deslocamento de um byte, e strings /Recipients eram criptografadas como strings comuns (todo visualizador precisa delas em texto simples); os envelopes agora optam por sair por meio de uma flag explícita SkipEncryption no objeto de string