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/10/02 17:37:05 UTC
svn commit: r1867894 - in
/pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature:
cert/CRLVerifier.java cert/CertificateVerifier.java
validation/CertInformationHelper.java
Author: tilman
Date: Wed Oct 2 17:37:05 2019
New Revision: 1867894
URL: http://svn.apache.org/viewvc?rev=1867894&view=rev
Log:
PDFBOX-4662: avoid ClassCastException by using base classes, because of different BC behaviour 1.62 and 1.63
Modified:
pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CRLVerifier.java
pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CertificateVerifier.java
pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java
Modified: pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CRLVerifier.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CRLVerifier.java?rev=1867894&r1=1867893&r2=1867894&view=diff
==============================================================================
--- pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CRLVerifier.java (original)
+++ pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CRLVerifier.java Wed Oct 2 17:37:05 2019
@@ -47,9 +47,9 @@ import org.apache.commons.logging.LogFac
import org.apache.pdfbox.pdmodel.encryption.SecurityProvider;
import org.bouncycastle.asn1.ASN1InputStream;
+import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.DERIA5String;
-import org.bouncycastle.asn1.DEROctetString;
import org.bouncycastle.asn1.x509.CRLDistPoint;
import org.bouncycastle.asn1.x509.DistributionPoint;
import org.bouncycastle.asn1.x509.DistributionPointName;
@@ -305,7 +305,7 @@ public final class CRLVerifier
}
ASN1InputStream oAsnInStream = new ASN1InputStream(new ByteArrayInputStream(crldpExt));
ASN1Primitive derObjCrlDP = oAsnInStream.readObject();
- DEROctetString dosCrlDP = (DEROctetString) derObjCrlDP;
+ ASN1OctetString dosCrlDP = (ASN1OctetString) derObjCrlDP;
byte[] crldpExtOctets = dosCrlDP.getOctets();
ASN1InputStream oAsnInStream2 = new ASN1InputStream(new ByteArrayInputStream(crldpExtOctets));
ASN1Primitive derObj2 = oAsnInStream2.readObject();
Modified: pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CertificateVerifier.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CertificateVerifier.java?rev=1867894&r1=1867893&r2=1867894&view=diff
==============================================================================
--- pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CertificateVerifier.java (original)
+++ pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/cert/CertificateVerifier.java Wed Oct 2 17:37:05 2019
@@ -50,10 +50,10 @@ import org.apache.commons.logging.LogFac
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.encryption.SecurityProvider;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
+import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.ASN1Primitive;
import org.bouncycastle.asn1.ASN1Sequence;
-import org.bouncycastle.asn1.DEROctetString;
-import org.bouncycastle.asn1.DERTaggedObject;
+import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.ocsp.OCSPObjectIdentifiers;
import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.GeneralName;
@@ -302,8 +302,8 @@ public final class CertificateVerifier
{
continue;
}
- DERTaggedObject location = (DERTaggedObject) obj.getObjectAt(1);
- DEROctetString uri = (DEROctetString) location.getObject();
+ ASN1TaggedObject location = (ASN1TaggedObject) obj.getObjectAt(1);
+ ASN1OctetString uri = (ASN1OctetString) location.getObject();
InputStream in = null;
try
{
@@ -413,11 +413,11 @@ public final class CertificateVerifier
ASN1Sequence obj = (ASN1Sequence) objects.nextElement();
ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier) obj.getObjectAt(0);
// accessLocation
- DERTaggedObject location = (DERTaggedObject) obj.getObjectAt(1);
+ ASN1TaggedObject location = (ASN1TaggedObject) obj.getObjectAt(1);
if (oid.equals(X509ObjectIdentifiers.id_ad_ocsp)
&& location.getTagNo() == GeneralName.uniformResourceIdentifier)
{
- DEROctetString url = (DEROctetString) location.getObject();
+ ASN1OctetString url = (ASN1OctetString) location.getObject();
String ocspURL = new String(url.getOctets());
LOG.info("OCSP URL: " + ocspURL);
return ocspURL;
Modified: pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java?rev=1867894&r1=1867893&r2=1867894&view=diff
==============================================================================
--- pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java (original)
+++ pdfbox/branches/issue45/examples/src/main/java/org/apache/pdfbox/examples/signature/validation/CertInformationHelper.java Wed Oct 2 17:37:05 2019
@@ -26,8 +26,9 @@ import org.apache.commons.logging.LogFac
import org.apache.pdfbox.examples.signature.validation.CertInformationCollector.CertSignatureInformation;
import org.apache.pdfbox.util.Hex;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
+import org.bouncycastle.asn1.ASN1OctetString;
import org.bouncycastle.asn1.ASN1Sequence;
-import org.bouncycastle.asn1.DEROctetString;
+import org.bouncycastle.asn1.ASN1TaggedObject;
import org.bouncycastle.asn1.DERTaggedObject;
import org.bouncycastle.asn1.DLSequence;
import org.bouncycastle.asn1.x509.GeneralName;
@@ -81,17 +82,17 @@ public class CertInformationHelper
ASN1Sequence obj = (ASN1Sequence) objects.nextElement();
ASN1ObjectIdentifier oid = (ASN1ObjectIdentifier) obj.getObjectAt(0);
// accessLocation
- DERTaggedObject location = (DERTaggedObject) obj.getObjectAt(1);
+ ASN1TaggedObject location = (ASN1TaggedObject) obj.getObjectAt(1);
if (oid.equals(X509ObjectIdentifiers.id_ad_ocsp)
&& location.getTagNo() == GeneralName.uniformResourceIdentifier)
{
- DEROctetString url = (DEROctetString) location.getObject();
+ ASN1OctetString url = (ASN1OctetString) location.getObject();
certInfo.setOcspUrl(new String(url.getOctets()));
}
else if (oid.equals(X509ObjectIdentifiers.id_ad_caIssuers))
{
- DEROctetString uri = (DEROctetString) location.getObject();
+ ASN1OctetString uri = (ASN1OctetString) location.getObject();
certInfo.setIssuerUrl(new String(uri.getOctets()));
}
}
@@ -117,12 +118,12 @@ public class CertInformationHelper
DERTaggedObject derTagged = (DERTaggedObject) obj.getObjectAt(0);
derTagged = (DERTaggedObject) derTagged.getObject();
derTagged = (DERTaggedObject) derTagged.getObject();
- if (!(derTagged.getObject() instanceof DEROctetString))
+ if (!(derTagged.getObject() instanceof ASN1OctetString))
{
// happens with SampleSignedPDFDocument.pdf
continue;
}
- DEROctetString uri = (DEROctetString) derTagged.getObject();
+ ASN1OctetString uri = (ASN1OctetString) derTagged.getObject();
String url = new String(uri.getOctets());
// TODO Check for: DistributionPoint ::= SEQUENCE (see RFC 2459), multiples can be possible.