[Pki-devel] [PATCH] 0083 Add CRL dist points extension to OIDMap unconditionally
Fraser Tweedale
ftweedal at redhat.com
Fri Mar 18 00:58:12 UTC 2016
Hello all,
The attached patch fixes https://fedorahosted.org/pki/ticket/2237.
Cheers,
Fraser
-------------- next part --------------
From 54d1a922789c500d5e2aebbbb828105861227093 Mon Sep 17 00:00:00 2001
From: Fraser Tweedale <ftweedal at redhat.com>
Date: Fri, 18 Mar 2016 10:53:18 +1100
Subject: [PATCH] Add CRL dist points extension to OIDMap unconditionally
It is possible to encounter a case where the
CRLDistributionPointsExtension static initialiser, which adds the
class to the OIDMap, has not been invoked. This can cause a
ClassCastException, e.g. in CRLDistributionPointsExtDefault.
Update OIDMap to add CRLDistributionPointsExtension in its own
static initialiser.
Fixes: https://fedorahosted.org/pki/ticket/2237
---
.../security/x509/CRLDistributionPointsExtension.java | 8 --------
base/util/src/netscape/security/x509/OIDMap.java | 17 +++++++++++++++++
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java b/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java
index d8dee03a7f3fcbc21c9392d55d577acbfaa907c8..1cfb770df60b26a7a849b8bc4bea70424e9416df 100644
--- a/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java
+++ b/base/util/src/netscape/security/x509/CRLDistributionPointsExtension.java
@@ -178,14 +178,6 @@ public class CRLDistributionPointsExtension extends Extension
/////////////////////////////////////////////////////////////
public static final String NAME = "CRLDistributionPoints";
- static {
- try {
- OIDMap.addAttribute(CRLDistributionPointsExtension.class.getName(),
- OID, NAME);
- } catch (CertificateException e) {
- }
- }
-
@Override
public String toString() {
return NAME;
diff --git a/base/util/src/netscape/security/x509/OIDMap.java b/base/util/src/netscape/security/x509/OIDMap.java
index 4cebcf2c82f7cba3b773cc4911f1df749f9c1213..20765c934df16ee4fba2bad99c1d7abdfb910280 100644
--- a/base/util/src/netscape/security/x509/OIDMap.java
+++ b/base/util/src/netscape/security/x509/OIDMap.java
@@ -99,6 +99,7 @@ public class OIDMap {
static {
loadNames();
loadClasses();
+ addClass(CRLDistributionPointsExtension.class);
}
// Load the default name to oid map (EXTENSIONS_OIDS)
@@ -228,6 +229,22 @@ public class OIDMap {
}
/**
+ * Add an extension to the OIDMap.
+ *
+ * Assumes existence of static OID and NAME fields with unique values.
+ */
+ public static void addClass(Class<? extends Extension> clazz) {
+ try {
+ addAttribute(clazz.getName(),
+ (String) clazz.getField("OID").get(null),
+ (String) clazz.getField("NAME").get(null));
+ } catch (Throwable e) {
+ System.out.println(
+ "Error adding class " + clazz.getName() + " to OIDMap: " + e);
+ }
+ }
+
+ /**
* Add a name to lookup table.
*
* @param className the name of the fully qualified class implementing
--
2.5.0
More information about the Pki-devel
mailing list