@Override public boolean isOwnerAuthorised() { for (final PDFDecrypter decrypter : decrypters.values()) { if (decrypter.isOwnerAuthorised()) { return true; } } return false; }
@Override public boolean isEncryptionPresent() { for (final PDFDecrypter decrypter : decrypters.values()) { if (decrypter.isEncryptionPresent()) { return true; } } return false; }
@Override public ByteBuffer decryptBuffer(String cryptFilterName, PDFObject streamObj, ByteBuffer streamBuf) throws PDFParseException { final PDFDecrypter decrypter; if (cryptFilterName == null) { decrypter = defaultStreamDecrypter; } else { decrypter = decrypters.get(cryptFilterName); if (decrypter == null) { throw new PDFParseException("Unknown CryptFilter: " + cryptFilterName); } } return decrypter.decryptBuffer( // elide the filter name to prevent V2 decrypters from // complaining about a crypt filter name null, // if there's a specific crypt filter being used then objNum // and objGen shouldn't contribute to the key, so we // should make sure that no streamObj makes its way through cryptFilterName != null ? null : streamObj, streamBuf); }
@Override public String decryptString(int objNum, int objGen, String inputBasicString) throws PDFParseException { return defaultStringDecrypter.decryptString(objNum, objGen, inputBasicString); }
@Override public boolean isEncryptionPresent(String cryptFilterName) { PDFDecrypter decrypter = decrypters.get(cryptFilterName); return decrypter != null && decrypter.isEncryptionPresent(cryptFilterName); }