From commits-return-14242-archive-asf-public=cust-asf.ponee.io@pdfbox.apache.org Sun Feb 17 14:57:41 2019 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 1EE7F180657 for ; Sun, 17 Feb 2019 15:57:40 +0100 (CET) Received: (qmail 86168 invoked by uid 500); 17 Feb 2019 14:57:40 -0000 Mailing-List: contact commits-help@pdfbox.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@pdfbox.apache.org Delivered-To: mailing list commits@pdfbox.apache.org Received: (qmail 86159 invoked by uid 99); 17 Feb 2019 14:57:40 -0000 Received: from Unknown (HELO svn01-us-west.apache.org) (209.188.14.144) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 17 Feb 2019 14:57:40 +0000 Received: from svn01-us-west.apache.org (localhost [127.0.0.1]) by svn01-us-west.apache.org (ASF Mail Server at svn01-us-west.apache.org) with ESMTP id 4F35C3A075F for ; Sun, 17 Feb 2019 14:57:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1853759 - in /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox: pdfparser/NonSequentialPDFParser.java pdmodel/encryption/SecurityHandler.java Date: Sun, 17 Feb 2019 14:57:39 -0000 To: commits@pdfbox.apache.org From: tilman@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20190217145739.4F35C3A075F@svn01-us-west.apache.org> Author: tilman Date: Sun Feb 17 14:57:39 2019 New Revision: 1853759 URL: http://svn.apache.org/viewvc?rev=1853759&view=rev Log: PDFBOX-4466: add more heuristics to detect a signature dictionary because /Type is optional Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/NonSequentialPDFParser.java pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java 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=1853759&r1=1853758&r2=1853759&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 Sun Feb 17 14:57:39 2019 @@ -1560,7 +1560,7 @@ public class NonSequentialPDFParser exte * @param dict the dictionary to be decrypted * @param objNr the object number * @param objGenNr the object generation number - * @throws IOException ff something went wrong + * @throws IOException if something went wrong */ protected final void decryptDictionary(COSDictionary dict, long objNr, long objGenNr) throws IOException { @@ -1570,7 +1570,11 @@ public class NonSequentialPDFParser exte return; } COSBase type = dict.getDictionaryObject(COSName.TYPE); - boolean isSignature = COSName.SIG.equals(type) || COSName.DOC_TIME_STAMP.equals(type); + boolean isSignature = COSName.SIG.equals(type) || COSName.DOC_TIME_STAMP.equals(type) || + // PDFBOX-4466: /Type is optional, see + // https://ec.europa.eu/cefdigital/tracker/browse/DSS-1538 + (dict.getDictionaryObject(COSName.CONTENTS) instanceof COSString && + dict.getDictionaryObject(COSName.BYTERANGE) instanceof COSArray); for (Entry entry : dict.entrySet()) { if (isSignature && COSName.CONTENTS.equals(entry.getKey())) Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java?rev=1853759&r1=1853758&r2=1853759&view=diff ============================================================================== --- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java (original) +++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/encryption/SecurityHandler.java Sun Feb 17 14:57:39 2019 @@ -550,7 +550,11 @@ public abstract class SecurityHandler IOException { COSBase type = dictionary.getDictionaryObject(COSName.TYPE); - boolean isSignature = COSName.SIG.equals(type) || COSName.DOC_TIME_STAMP.equals(type); + boolean isSignature = COSName.SIG.equals(type) || COSName.DOC_TIME_STAMP.equals(type) || + // PDFBOX-4466: /Type is optional, see + // https://ec.europa.eu/cefdigital/tracker/browse/DSS-1538 + (dictionary.getDictionaryObject(COSName.CONTENTS) instanceof COSString && + dictionary.getDictionaryObject(COSName.BYTERANGE) instanceof COSArray); for (Map.Entry entry : dictionary.entrySet()) { if (isSignature && COSName.CONTENTS.equals(entry.getKey()))