You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2014/11/05 19:03:31 UTC
svn commit: r1636929 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Author: lehmi
Date: Wed Nov 5 18:03:30 2014
New Revision: 1636929
URL: http://svn.apache.org/r1636929
Log:
PDFBOX-2469: the signature dictionary must not be decrypted
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=1636929&r1=1636928&r2=1636929&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 Wed Nov 5 18:03:30 2014
@@ -1449,19 +1449,21 @@ public class NonSequentialPDFParser exte
}
else if (pb instanceof COSDictionary)
{
- for (Entry<COSName, COSBase> entry : ((COSDictionary) pb).entrySet())
+ COSDictionary dict = (COSDictionary) pb;
+ // skip signature dictionary
+ if (!dict.getCOSName(COSName.TYPE).equals(COSName.SIG))
{
- // TODO: specially handle 'Contents' entry of
- // signature dictionary like in
- // SecurityHandler#decryptDictionary
- if (entry.getValue() instanceof COSString)
+ for (Entry<COSName, COSBase> entry : dict.entrySet())
{
- decrypt((COSString) entry.getValue(), objNr, objGenNr);
+ if (entry.getValue() instanceof COSString)
+ {
+ decrypt((COSString) entry.getValue(), objNr, objGenNr);
+ }
+ else if (entry.getValue() instanceof COSArray)
+ {
+ securityHandler.decryptArray((COSArray) entry.getValue(), objNr, objGenNr);
+ }
}
- else if (entry.getValue() instanceof COSArray)
- {
- securityHandler.decryptArray((COSArray) entry.getValue(), objNr, objGenNr);
- }
}
}
else if (pb instanceof COSArray)