private void readDecryptObj() { if (encrypted) return; PdfDictionary enc = trailer.getAsDictionary(PdfName.Encrypt); if (enc == null) return; encrypted = true; PdfName filter = enc.getAsName(PdfName.Filter); if (PdfName.Adobe_PubSec.equals(filter)) { if (properties.certificate == null) { throw new PdfException(PdfException.CertificateIsNotProvidedDocumentIsEncryptedWithPublicKeyCertificate); } decrypt = new PdfEncryption(enc, properties.certificateKey, properties.certificate, properties.certificateKeyProvider, properties.externalDecryptionProcess); } else if (PdfName.Standard.equals(filter)) { decrypt = new PdfEncryption(enc, properties.password, getOriginalFileId()); } else { throw new UnsupportedSecurityHandlerException(MessageFormatUtil.format(UnsupportedSecurityHandlerException.UnsupportedSecurityHandler, filter)); } }
originalFileId = getReader().getOriginalFileId(); documentIsModified = true;