summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2016-04-11 18:17:30 +0200
committerEndi S. Dewata <edewata@redhat.com>2016-04-12 16:27:14 +0200
commit5847a485a16471f6c3a2a7552b719df3aec909df (patch)
tree16e4a0d1af1bb1a9a17ca7c6e5200cb38ee92759
parent1cdfd17588dc2b83cb12cd11a8e5d86d28577940 (diff)
downloadpki-5847a485a16471f6c3a2a7552b719df3aec909df.tar.gz
pki-5847a485a16471f6c3a2a7552b719df3aec909df.tar.xz
pki-5847a485a16471f6c3a2a7552b719df3aec909df.zip
Fixed exception handling in CertificateExtensions.
The CertificateExtensions.parseExtension() and some extension classes have been modified to chain the original exception. https://fedorahosted.org/pki/ticket/1654
-rw-r--r--base/util/src/netscape/security/x509/AuthorityKeyIdentifierExtension.java4
-rw-r--r--base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java8
-rw-r--r--base/util/src/netscape/security/x509/CertificateExtensions.java17
-rw-r--r--base/util/src/netscape/security/x509/CertificateIssuerExtension.java5
-rw-r--r--base/util/src/netscape/security/x509/FreshestCRLExtension.java8
-rw-r--r--base/util/src/netscape/security/x509/IssuerAlternativeNameExtension.java5
-rw-r--r--base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java17
-rw-r--r--base/util/src/netscape/security/x509/SubjectAlternativeNameExtension.java2
8 files changed, 34 insertions, 32 deletions
diff --git a/base/util/src/netscape/security/x509/AuthorityKeyIdentifierExtension.java b/base/util/src/netscape/security/x509/AuthorityKeyIdentifierExtension.java
index ec15be4a0..a71a3b69a 100644
--- a/base/util/src/netscape/security/x509/AuthorityKeyIdentifierExtension.java
+++ b/base/util/src/netscape/security/x509/AuthorityKeyIdentifierExtension.java
@@ -100,7 +100,7 @@ public class AuthorityKeyIdentifierExtension extends Extension
true, TAG_NAMES), tmp1);
}
} catch (Exception e) {
- throw new IOException(e.toString());
+ throw new IOException(e);
}
if (serialNum != null) {
DerOutputStream tmp1 = new DerOutputStream();
@@ -199,7 +199,7 @@ public class AuthorityKeyIdentifierExtension extends Extension
opt.resetTag(DerValue.tag_Sequence);
names = new GeneralNames(opt);
} catch (GeneralNamesException e) {
- throw new IOException(e.toString());
+ throw new IOException(e);
}
} else if (opt.isContextSpecific(TAG_SERIAL_NUM) &&
diff --git a/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java b/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java
index 1cfb770df..0cd6505c3 100644
--- a/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java
+++ b/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java
@@ -27,13 +27,13 @@ import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
-import netscape.security.util.BitArray;
-import netscape.security.util.DerOutputStream;
-
import org.mozilla.jss.asn1.ASN1Util;
import org.mozilla.jss.asn1.InvalidBERException;
import org.mozilla.jss.asn1.SEQUENCE;
+import netscape.security.util.BitArray;
+import netscape.security.util.DerOutputStream;
+
/**
* An extension that tells applications where to find the CRL for
* this certificate.
@@ -95,7 +95,7 @@ public class CRLDistributionPointsExtension extends Extension
distributionPoints =
(SEQUENCE) ASN1Util.decode(seqOfCRLDP, extensionValue);
} catch (InvalidBERException e) {
- throw new IOException("Invalid BER-encoding: " + e.toString());
+ throw new IOException("Invalid BER-encoding: " + e, e);
}
} catch (IOException e) {
System.out.println("Big error");
diff --git a/base/util/src/netscape/security/x509/CertificateExtensions.java b/base/util/src/netscape/security/x509/CertificateExtensions.java
index 3a21c2f83..d76bfe196 100644
--- a/base/util/src/netscape/security/x509/CertificateExtensions.java
+++ b/base/util/src/netscape/security/x509/CertificateExtensions.java
@@ -88,12 +88,19 @@ public class CertificateExtensions extends Vector<Extension>
map.put(certExt.getName(), (Extension) certExt);
addElement((Extension) certExt);
}
- } catch (NoSuchMethodException nosuch) {
- throw new IOException(nosuch.toString());
- } catch (InvocationTargetException invk) {
- throw new IOException(invk.getTargetException().toString());
+
+ } catch (NoSuchMethodException e) {
+ throw new IOException(e);
+
+ } catch (InvocationTargetException e) {
+ Throwable t = e.getTargetException();
+ if (t instanceof IOException) {
+ throw (IOException)t;
+ }
+ throw new IOException(t);
+
} catch (Exception e) {
- throw new IOException(e.toString());
+ throw new IOException(e);
}
}
diff --git a/base/util/src/netscape/security/x509/CertificateIssuerExtension.java b/base/util/src/netscape/security/x509/CertificateIssuerExtension.java
index 4f20cb685..ae4c2093a 100644
--- a/base/util/src/netscape/security/x509/CertificateIssuerExtension.java
+++ b/base/util/src/netscape/security/x509/CertificateIssuerExtension.java
@@ -73,7 +73,7 @@ public class CertificateIssuerExtension extends Extension
try {
names.encode(os);
} catch (GeneralNamesException e) {
- throw new IOException(e.toString());
+ throw new IOException(e);
}
this.extensionValue = os.toByteArray();
}
@@ -139,8 +139,7 @@ public class CertificateIssuerExtension extends Extension
try {
names = new GeneralNames(val);
} catch (GeneralNamesException e) {
- throw new IOException("CertificateIssuerExtension: " +
- e.toString());
+ throw new IOException("CertificateIssuerExtension: " + e, e);
}
}
diff --git a/base/util/src/netscape/security/x509/FreshestCRLExtension.java b/base/util/src/netscape/security/x509/FreshestCRLExtension.java
index 222a5e959..c084956b5 100644
--- a/base/util/src/netscape/security/x509/FreshestCRLExtension.java
+++ b/base/util/src/netscape/security/x509/FreshestCRLExtension.java
@@ -27,13 +27,13 @@ import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
-import netscape.security.util.BitArray;
-import netscape.security.util.DerOutputStream;
-
import org.mozilla.jss.asn1.ASN1Util;
import org.mozilla.jss.asn1.InvalidBERException;
import org.mozilla.jss.asn1.SEQUENCE;
+import netscape.security.util.BitArray;
+import netscape.security.util.DerOutputStream;
+
/**
* An extension that tells applications where to find
* the latest (freshest) delta CRL for this certificate
@@ -115,7 +115,7 @@ public class FreshestCRLExtension extends Extension
distributionPoints =
(SEQUENCE) ASN1Util.decode(seqOfCRLDP, extensionValue);
} catch (InvalidBERException e) {
- throw new IOException("Invalid BER-encoding: " + e.toString());
+ throw new IOException("Invalid BER-encoding: " + e, e);
}
} catch (IOException e) {
System.out.println("Big error");
diff --git a/base/util/src/netscape/security/x509/IssuerAlternativeNameExtension.java b/base/util/src/netscape/security/x509/IssuerAlternativeNameExtension.java
index 62b3ecf94..469e4722b 100644
--- a/base/util/src/netscape/security/x509/IssuerAlternativeNameExtension.java
+++ b/base/util/src/netscape/security/x509/IssuerAlternativeNameExtension.java
@@ -71,7 +71,7 @@ public class IssuerAlternativeNameExtension
try {
names.encode(os);
} catch (GeneralNamesException e) {
- throw new IOException(e.toString());
+ throw new IOException(e);
}
this.extensionValue = os.toByteArray();
}
@@ -136,8 +136,7 @@ public class IssuerAlternativeNameExtension
try {
names = new GeneralNames(val);
} catch (GeneralNamesException e) {
- throw new IOException("IssuerAlternativeNameExtension"
- + e.toString());
+ throw new IOException("IssuerAlternativeNameExtension: " + e, e);
}
}
diff --git a/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java b/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java
index b78a891c2..d65dc44f0 100644
--- a/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java
+++ b/base/util/src/netscape/security/x509/IssuingDistributionPointExtension.java
@@ -26,12 +26,12 @@ import java.security.cert.CertificateException;
import java.util.Enumeration;
import java.util.Vector;
+import org.mozilla.jss.asn1.ASN1Util;
+
import netscape.security.util.BitArray;
import netscape.security.util.DerOutputStream;
import netscape.security.util.DerValue;
-import org.mozilla.jss.asn1.ASN1Util;
-
/**
* A critical CRL extension that identifies the CRL distribution point
* for a particular CRL
@@ -162,11 +162,9 @@ public class IssuingDistributionPointExtension extends Extension
issuingDistributionPoint.setFullName(fullName);
}
} catch (GeneralNamesException e) {
- throw new IOException("Invalid encoding of IssuingDistributionPoint "
- + e);
+ throw new IOException("Invalid encoding of IssuingDistributionPoint " + e, e);
} catch (IOException e) {
- throw new IOException("Invalid encoding of IssuingDistributionPoint "
- + e);
+ throw new IOException("Invalid encoding of IssuingDistributionPoint " + e, e);
}
} else {
throw new IOException("Invalid encoding of IssuingDistributionPoint");
@@ -182,8 +180,7 @@ public class IssuingDistributionPointExtension extends Extension
issuingDistributionPoint.setRelativeName(relativeName);
}
} catch (IOException e) {
- throw new IOException("Invalid encoding of IssuingDistributionPoint "
- + e);
+ throw new IOException("Invalid encoding of IssuingDistributionPoint " + e, e);
}
} else {
throw new IOException("Invalid encoding of IssuingDistributionPoint");
@@ -203,7 +200,7 @@ public class IssuingDistributionPointExtension extends Extension
@SuppressWarnings("unused")
byte[] a = reasons.toByteArray(); // check for errors
} catch (IOException e) {
- throw new IOException("Invalid encoding of IssuingDistributionPoint " + e);
+ throw new IOException("Invalid encoding of IssuingDistributionPoint " + e, e);
}
} else {
@@ -218,7 +215,7 @@ public class IssuingDistributionPointExtension extends Extension
issuingDistributionPoint.setIndirectCRL(b);
}
} catch (IOException e) {
- throw new IOException("Invalid encoding of IssuingDistributionPoint " + e);
+ throw new IOException("Invalid encoding of IssuingDistributionPoint " + e, e);
}
}
} else {
diff --git a/base/util/src/netscape/security/x509/SubjectAlternativeNameExtension.java b/base/util/src/netscape/security/x509/SubjectAlternativeNameExtension.java
index cdeff8f65..d96c82160 100644
--- a/base/util/src/netscape/security/x509/SubjectAlternativeNameExtension.java
+++ b/base/util/src/netscape/security/x509/SubjectAlternativeNameExtension.java
@@ -139,7 +139,7 @@ public class SubjectAlternativeNameExtension extends Extension
try {
names = new GeneralNames(val);
} catch (GeneralNamesException e) {
- throw new IOException("SubjectAlternativeName: " + e);
+ throw new IOException("SubjectAlternativeName: " + e, e);
}
}