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 2019/11/14 17:06:53 UTC

svn commit: r1869806 - /pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java

Author: tilman
Date: Thu Nov 14 17:06:53 2019
New Revision: 1869806

URL: http://svn.apache.org/viewvc?rev=1869806&view=rev
Log:
PDFBOX-3017: refactor previous commit

Modified:
    pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java

Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java?rev=1869806&r1=1869805&r2=1869806&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java Thu Nov 14 17:06:53 2019
@@ -112,29 +112,46 @@ public class CertInformationHelper
 
         while (objects.hasMoreElements())
         {
-            DLSequence obj = (DLSequence) objects.nextElement();
-
-            ASN1TaggedObject taggedObject = (ASN1TaggedObject) obj.getObjectAt(0);
-            taggedObject = (ASN1TaggedObject) taggedObject.getObject();
-            if (taggedObject.getObject() instanceof ASN1TaggedObject)
+            Object obj = objects.nextElement();
+            if (obj instanceof DLSequence)
             {
-                taggedObject = (ASN1TaggedObject) taggedObject.getObject();
+                String url = extractCrlUrlFromSequence((DLSequence) obj);
+                if (url != null)
+                {
+                    return url;
+                }
             }
-            else if (taggedObject.getObject() instanceof ASN1Sequence)
+        }
+        return null;
+    }
+
+    private static String extractCrlUrlFromSequence(DLSequence sequence)
+    {
+        ASN1TaggedObject taggedObject = (ASN1TaggedObject) sequence.getObjectAt(0);
+        taggedObject = (ASN1TaggedObject) taggedObject.getObject();
+        if (taggedObject.getObject() instanceof ASN1TaggedObject)
+        {
+            taggedObject = (ASN1TaggedObject) taggedObject.getObject();
+        }
+        else if (taggedObject.getObject() instanceof ASN1Sequence)
+        {
+            // multiple URLs (we take the first)
+            ASN1Sequence seq = (ASN1Sequence) taggedObject.getObject();
+            if (seq.getObjectAt(0) instanceof ASN1TaggedObject)
             {
-                // multiple URLs (we take the first)
-                ASN1Sequence seq = (ASN1Sequence) taggedObject.getObject();
                 taggedObject = (ASN1TaggedObject) seq.getObjectAt(0);
             }
             else
             {
-                continue;
-            }
-            if (!(taggedObject.getObject() instanceof ASN1OctetString))
-            {
-                // happens with http://blogs.adobe.com/security/SampleSignedPDFDocument.pdf
-                continue;
+                return null;
             }
+        }
+        else
+        {
+            return null;
+        }
+        if (taggedObject.getObject() instanceof ASN1OctetString)
+        {
             ASN1OctetString uri = (ASN1OctetString) taggedObject.getObject();
             String url = new String(uri.getOctets());
 
@@ -144,6 +161,7 @@ public class CertInformationHelper
                 return url;
             }
         }
+        // else happens with http://blogs.adobe.com/security/SampleSignedPDFDocument.pdf
         return null;
     }
-}
+}
\ No newline at end of file