You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2014/12/02 08:44:23 UTC
svn commit: r1642808 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Author: tilman
Date: Tue Dec 2 07:44:23 2014
New Revision: 1642808
URL: http://svn.apache.org/r1642808
Log:
PDFBOX-2533: DRY refactoring of decryption code that is used in PreflightParser and in NonSequentialParser
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java?rev=1642808&r1=1642807&r2=1642808&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java Tue Dec 2 07:44:23 2014
@@ -1546,26 +1546,7 @@ public class NonSequentialPDFParser exte
}
else if (securityHandler != null)
{
- // decrypt
- if (pb instanceof COSString)
- {
- decryptString((COSString) pb, objNr, objGenNr);
- }
- else if (pb instanceof COSDictionary)
- {
- decryptDictionary((COSDictionary) pb, objNr, objGenNr);
- }
- else if (pb instanceof COSArray)
- {
- final COSArray array = (COSArray) pb;
- for (int aIdx = 0, len = array.size(); aIdx < len; aIdx++)
- {
- if (array.get(aIdx) instanceof COSString)
- {
- decryptString((COSString) array.get(aIdx), objNr, objGenNr);
- }
- }
- }
+ decrypt(pb, objNr, objGenNr);
}
pdfObject.setObject(pb);
@@ -1669,6 +1650,38 @@ public class NonSequentialPDFParser exte
{
securityHandler.decryptString(str, objNr, objGenNr);
}
+
+ /**
+ * Decrypts given object.
+ *
+ * @param pb the object to be decrypted
+ * @param objNr the object number
+ * @param objGenNr the object generation number
+ * @throws IOException ff something went wrong
+ */
+ protected final void decrypt(COSBase pb, int objNr, int objGenNr) throws IOException
+ {
+ if (pb instanceof COSString)
+ {
+ decryptString((COSString) pb, objNr, objGenNr);
+ }
+ else if (pb instanceof COSDictionary)
+ {
+ decryptDictionary((COSDictionary) pb, objNr, objGenNr);
+ }
+ else if (pb instanceof COSArray)
+ {
+ final COSArray array = (COSArray) pb;
+ for (int aIdx = 0, len = array.size(); aIdx < len; aIdx++)
+ {
+ if (array.get(aIdx) instanceof COSString)
+ {
+ decryptString((COSString) array.get(aIdx), objNr, objGenNr);
+ }
+ }
+ }
+ }
+
// ------------------------------------------------------------------------
private boolean inGetLength = false;