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:19:25 UTC
svn commit: r1636933 -
/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
Author: lehmi
Date: Wed Nov 5 18:19:25 2014
New Revision: 1636933
URL: http://svn.apache.org/r1636933
Log:
PDFBOX-2469: the signature dictionary must not be decrypted
Modified:
pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java (contents, props changed)
Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java?rev=1636933&r1=1636932&r2=1636933&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java Wed Nov 5 18:19:25 2014
@@ -1443,28 +1443,30 @@ 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.getItem(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);
- }
- else if (entry.getValue() instanceof COSArray)
- {
- try
+ if (entry.getValue() instanceof COSString)
{
- securityHandler.decryptArray((COSArray) entry.getValue(), objNr, objGenNr);
+ decrypt((COSString) entry.getValue(), objNr, objGenNr);
}
- catch (CryptographyException ce)
+ else if (entry.getValue() instanceof COSArray)
{
- throw new IOException("Error decrypting stream object " + objNr + ": "
- + ce.getMessage()
- /* , ce // TODO: remove remark with Java 1.6 */);
- }
- }
+ try
+ {
+ securityHandler.decryptArray((COSArray) entry.getValue(), objNr, objGenNr);
+ }
+ catch (CryptographyException ce)
+ {
+ throw new IOException("Error decrypting stream object " + objNr + ": "
+ + ce.getMessage()
+ /* , ce // TODO: remove remark with Java 1.6 */);
+ }
+ }
+ }
}
}
else if (pb instanceof COSArray)
Propchange: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java
------------------------------------------------------------------------------
Merged /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java:r1636929