diff options
Diffstat (limited to 'pki/base/util/src/netscape/security/x509/OIDMap.java')
-rw-r--r-- | pki/base/util/src/netscape/security/x509/OIDMap.java | 253 |
1 files changed, 125 insertions, 128 deletions
diff --git a/pki/base/util/src/netscape/security/x509/OIDMap.java b/pki/base/util/src/netscape/security/x509/OIDMap.java index 0b0fd5a3..56924f91 100644 --- a/pki/base/util/src/netscape/security/x509/OIDMap.java +++ b/pki/base/util/src/netscape/security/x509/OIDMap.java @@ -29,10 +29,10 @@ import java.util.Properties; import netscape.security.util.ObjectIdentifier; /** - * This class defines the mapping from OID & name to classes and vice - * versa. Used by CertificateExtensions & PKCS10 to get the java - * classes associated with a particular OID/name. - * + * This class defines the mapping from OID & name to classes and vice versa. + * Used by CertificateExtensions & PKCS10 to get the java classes associated + * with a particular OID/name. + * * @author Amit Kapoor * @author Hemma Prafullchandra * @version 1.12 @@ -40,57 +40,55 @@ import netscape.security.util.ObjectIdentifier; public class OIDMap { /** - * Location for where the OID/Classes maps are stored on - * the local system. + * Location for where the OID/Classes maps are stored on the local system. */ - public static final String EXTENSIONS_HOME = - (System.getProperty("java.home") + File.separator + "lib" - + File.separator + "security" + File.separator + "cert" - + File.separator); + public static final String EXTENSIONS_HOME = (System + .getProperty("java.home") + + File.separator + + "lib" + + File.separator + + "security" + File.separator + "cert" + File.separator); /** - * File names for where OIDs and Classes are registered - * for V3 extensions. + * File names for where OIDs and Classes are registered for V3 extensions. */ public static final String EXTENSIONS_OIDS = "x509extensions.oid"; public static final String EXTENSIONS_CLASSES = "x509extensions.classes"; // Make default names easier - private static final String ROOT = X509CertImpl.NAME + "." + - X509CertInfo.NAME + "." + - X509CertInfo.EXTENSIONS; - private static final String AUTH_KEY_IDENTIFIER = ROOT + "." + - AuthorityKeyIdentifierExtension.NAME; - private static final String SUB_KEY_IDENTIFIER = ROOT + "." + - SubjectKeyIdentifierExtension.NAME; - private static final String KEY_USAGE = ROOT + "." + - KeyUsageExtension.NAME; - private static final String PRIVATE_KEY_USAGE = ROOT + "." + - PrivateKeyUsageExtension.NAME; - private static final String POLICY_MAPPINGS = ROOT + "." + - PolicyMappingsExtension.NAME; - private static final String SUB_ALT_NAME = ROOT + "." + - SubjectAlternativeNameExtension.NAME; - private static final String ISSUER_ALT_NAME = ROOT + "." + - IssuerAlternativeNameExtension.NAME; - private static final String BASIC_CONSTRAINTS = ROOT + "." + - BasicConstraintsExtension.NAME; - private static final String NAME_CONSTRAINTS = ROOT + "." + - NameConstraintsExtension.NAME; - private static final String POLICY_CONSTRAINTS = ROOT + "." + - PolicyConstraintsExtension.NAME; - private static final String CERT_POLICIES = //ROOT + "." + - CertificatePoliciesExtension.NAME; - private static final String SUBJ_DIR_ATTR = //ROOT + "." + - SubjectDirAttributesExtension.NAME; + private static final String ROOT = X509CertImpl.NAME + "." + + X509CertInfo.NAME + "." + X509CertInfo.EXTENSIONS; + private static final String AUTH_KEY_IDENTIFIER = ROOT + "." + + AuthorityKeyIdentifierExtension.NAME; + private static final String SUB_KEY_IDENTIFIER = ROOT + "." + + SubjectKeyIdentifierExtension.NAME; + private static final String KEY_USAGE = ROOT + "." + KeyUsageExtension.NAME; + private static final String PRIVATE_KEY_USAGE = ROOT + "." + + PrivateKeyUsageExtension.NAME; + private static final String POLICY_MAPPINGS = ROOT + "." + + PolicyMappingsExtension.NAME; + private static final String SUB_ALT_NAME = ROOT + "." + + SubjectAlternativeNameExtension.NAME; + private static final String ISSUER_ALT_NAME = ROOT + "." + + IssuerAlternativeNameExtension.NAME; + private static final String BASIC_CONSTRAINTS = ROOT + "." + + BasicConstraintsExtension.NAME; + private static final String NAME_CONSTRAINTS = ROOT + "." + + NameConstraintsExtension.NAME; + private static final String POLICY_CONSTRAINTS = ROOT + "." + + PolicyConstraintsExtension.NAME; + private static final String CERT_POLICIES = // ROOT + "." + + CertificatePoliciesExtension.NAME; + private static final String SUBJ_DIR_ATTR = // ROOT + "." + + SubjectDirAttributesExtension.NAME; public static final String EXT_KEY_USAGE_NAME = "ExtendedKeyUsageExtension"; public static final String EXT_INHIBIT_ANY_POLICY_NAME = "InhibitAnyPolicyExtension"; - private static final String EXT_KEY_USAGE = //ROOT + "." + - EXT_KEY_USAGE_NAME; + private static final String EXT_KEY_USAGE = // ROOT + "." + + EXT_KEY_USAGE_NAME; - private static final String CRL_NUMBER = ROOT + "." + - CRLNumberExtension.NAME; - private static final String CRL_REASON = ROOT + "." + - CRLReasonExtension.NAME; + private static final String CRL_NUMBER = ROOT + "." + + CRLNumberExtension.NAME; + private static final String CRL_REASON = ROOT + "." + + CRLReasonExtension.NAME; private static final Hashtable oid2Name = new Hashtable(); private static final Hashtable name2OID = new Hashtable(); @@ -104,57 +102,56 @@ public class OIDMap { // Load the default name to oid map (EXTENSIONS_OIDS) private static void loadNamesDefault(Properties props) { - props.put(SUB_KEY_IDENTIFIER,"2.5.29.14"); - props.put(KEY_USAGE,"2.5.29.15"); - props.put(PRIVATE_KEY_USAGE,"2.5.29.16"); - props.put(SUB_ALT_NAME,"2.5.29.17"); - props.put(ISSUER_ALT_NAME,"2.5.29.18"); - props.put(BASIC_CONSTRAINTS,"2.5.29.19"); - props.put(CRL_NUMBER,"2.5.29.20"); - props.put(CRL_REASON,"2.5.29.21"); - props.put(NAME_CONSTRAINTS,"2.5.29.30"); - props.put(POLICY_MAPPINGS,"2.5.29.33"); - props.put(POLICY_CONSTRAINTS,"2.5.29.36"); - props.put(CERT_POLICIES,"2.5.29.32"); - props.put(AUTH_KEY_IDENTIFIER,"2.5.29.35"); - props.put(SUBJ_DIR_ATTR,"2.5.29.9"); - props.put(EXT_KEY_USAGE,"2.5.29.37"); + props.put(SUB_KEY_IDENTIFIER, "2.5.29.14"); + props.put(KEY_USAGE, "2.5.29.15"); + props.put(PRIVATE_KEY_USAGE, "2.5.29.16"); + props.put(SUB_ALT_NAME, "2.5.29.17"); + props.put(ISSUER_ALT_NAME, "2.5.29.18"); + props.put(BASIC_CONSTRAINTS, "2.5.29.19"); + props.put(CRL_NUMBER, "2.5.29.20"); + props.put(CRL_REASON, "2.5.29.21"); + props.put(NAME_CONSTRAINTS, "2.5.29.30"); + props.put(POLICY_MAPPINGS, "2.5.29.33"); + props.put(POLICY_CONSTRAINTS, "2.5.29.36"); + props.put(CERT_POLICIES, "2.5.29.32"); + props.put(AUTH_KEY_IDENTIFIER, "2.5.29.35"); + props.put(SUBJ_DIR_ATTR, "2.5.29.9"); + props.put(EXT_KEY_USAGE, "2.5.29.37"); } // Load the default name to class map (EXTENSIONS_CLASSES) - private static void loadClassDefault (Properties props) { + private static void loadClassDefault(Properties props) { props.put(AUTH_KEY_IDENTIFIER, - "netscape.security.x509.AuthorityKeyIdentifierExtension"); + "netscape.security.x509.AuthorityKeyIdentifierExtension"); props.put(SUB_KEY_IDENTIFIER, - "netscape.security.x509.SubjectKeyIdentifierExtension"); - props.put(KEY_USAGE, - "netscape.security.x509.KeyUsageExtension"); + "netscape.security.x509.SubjectKeyIdentifierExtension"); + props.put(KEY_USAGE, "netscape.security.x509.KeyUsageExtension"); props.put(PRIVATE_KEY_USAGE, - "netscape.security.x509.PrivateKeyUsageExtension"); + "netscape.security.x509.PrivateKeyUsageExtension"); props.put(POLICY_MAPPINGS, - "netscape.security.x509.PolicyMappingsExtension"); + "netscape.security.x509.PolicyMappingsExtension"); props.put(SUB_ALT_NAME, - "netscape.security.x509.SubjectAlternativeNameExtension"); + "netscape.security.x509.SubjectAlternativeNameExtension"); props.put(ISSUER_ALT_NAME, - "netscape.security.x509.IssuerAlternativeNameExtension"); + "netscape.security.x509.IssuerAlternativeNameExtension"); props.put(BASIC_CONSTRAINTS, - "netscape.security.x509.BasicConstraintsExtension"); + "netscape.security.x509.BasicConstraintsExtension"); props.put(NAME_CONSTRAINTS, - "netscape.security.x509.NameConstraintsExtension"); + "netscape.security.x509.NameConstraintsExtension"); props.put(POLICY_CONSTRAINTS, - "netscape.security.x509.PolicyConstraintsExtension"); + "netscape.security.x509.PolicyConstraintsExtension"); props.put(CERT_POLICIES, - "netscape.security.x509.CertificatePoliciesExtension"); + "netscape.security.x509.CertificatePoliciesExtension"); props.put(SUBJ_DIR_ATTR, - "netscape.security.x509.SubjectDirAttributesExtension"); + "netscape.security.x509.SubjectDirAttributesExtension"); props.put(EXT_KEY_USAGE, - "netscape.security.extensions.ExtendedKeyUsageExtension"); + "netscape.security.extensions.ExtendedKeyUsageExtension"); props.put(CRL_NUMBER, "netscape.security.x509.CRLNumberExtension"); props.put(CRL_REASON, "netscape.security.x509.CRLReasonExtension"); } // Return the file along with location - private static File certificatePropFile (String fileName) { + private static File certificatePropFile(String fileName) { return (new File(EXTENSIONS_HOME + fileName)); } @@ -167,17 +164,17 @@ public class OIDMap { loadNamesDefault(props); } else { try { - FileInputStream fis = new FileInputStream(namesMap); - props.load(fis); + FileInputStream fis = new FileInputStream(namesMap); + props.load(fis); fis.close(); } catch (IOException e) { - loadNamesDefault(props); + loadNamesDefault(props); } } Enumeration names = props.propertyNames(); while (names.hasMoreElements()) { - String name = (String)names.nextElement(); + String name = (String) names.nextElement(); String oidName = props.getProperty(name); ObjectIdentifier oid = new ObjectIdentifier(oidName); @@ -195,16 +192,16 @@ public class OIDMap { loadClassDefault(props); } else { try { - FileInputStream fis = new FileInputStream(classMap); - props.load(fis); + FileInputStream fis = new FileInputStream(classMap); + props.load(fis); } catch (IOException e) { - loadClassDefault(props); + loadClassDefault(props); } } Enumeration names = props.propertyNames(); while (names.hasMoreElements()) { - String name = (String)names.nextElement(); + String name = (String) names.nextElement(); String className = props.getProperty(name); name2Class.put(name, className); @@ -212,7 +209,7 @@ public class OIDMap { } // save to file - private static void saveDefaults(Properties props, String fileName) { + private static void saveDefaults(Properties props, String fileName) { try { FileOutputStream fos = new FileOutputStream(fileName); props.save(fos, "Registered classes"); @@ -224,92 +221,92 @@ public class OIDMap { /** * Add a name to lookup table. - * - * @param className the name of the fully qualified class implementing - * the asn object. - * @param oid the string representation of the object identifier for - * the class. + * + * @param className the name of the fully qualified class implementing the + * asn object. + * @param oid the string representation of the object identifier for the + * class. * @param name the name of the attribute. * @exception CertificateException on errors. */ public static void addAttribute(String className, String oid, String name) - throws CertificateException { + throws CertificateException { ObjectIdentifier objId = new ObjectIdentifier(oid); - if (oid2Name.get(objId) != null) { - throw new CertificateException("Object identifier already exists."); - } - if (name2OID.get(name) != null) { - throw new CertificateException("Name already exists."); - } - if (name2Class.get(className) != null) { - throw new CertificateException("Class already exists."); - } - oid2Name.put(objId, name); - name2OID.put(name, objId); - name2Class.put(name, className); + if (oid2Name.get(objId) != null) { + throw new CertificateException("Object identifier already exists."); + } + if (name2OID.get(name) != null) { + throw new CertificateException("Name already exists."); + } + if (name2Class.get(className) != null) { + throw new CertificateException("Class already exists."); + } + oid2Name.put(objId, name); + name2OID.put(name, objId); + name2Class.put(name, className); } /** * Return user friendly name associated with the OID. - * + * * @param oid the name of the object identifier to be returned. - * @return the user friendly name or null if no name - * is registered for this oid. + * @return the user friendly name or null if no name is registered for this + * oid. */ public static String getName(ObjectIdentifier oid) { - return (String)oid2Name.get(oid); - } + return (String) oid2Name.get(oid); + } /** * Return Object identifier for user friendly name. - * + * * @param name the user friendly name. - * @return the Object Identifier or null if no oid - * is registered for this name. + * @return the Object Identifier or null if no oid is registered for this + * name. */ public static ObjectIdentifier getOID(String name) { - return (ObjectIdentifier)name2OID.get(name); - } + return (ObjectIdentifier) name2OID.get(name); + } /** * Return the java class object associated with the user friendly name. - * + * * @param name the user friendly name. * @exception CertificateException if class cannot be instantiated. */ public static Class getClass(String name) throws CertificateException { - String className = (String)name2Class.get(name); + String className = (String) name2Class.get(name); if (className == null) return null; try { Class extClass = Class.forName(className); - return (extClass); - } catch (Exception e) { - throw new CertificateException("Error instantiating class for " - + name + " " + e.toString()); - } + return (extClass); + } catch (Exception e) { + throw new CertificateException("Error instantiating class for " + + name + " " + e.toString()); + } } /** * Return the java class object associated with the object identifier.. - * + * * @param oid the name of the object identifier to be returned. * @exception CertificateException if class cannot be instatiated. */ public static Class getClass(ObjectIdentifier oid) - throws CertificateException { + throws CertificateException { String name = getName(oid); if (name == null) return null; - String className = (String)name2Class.get(name); + String className = (String) name2Class.get(name); if (className == null) return null; try { Class extClass = Class.forName(className); - return (extClass); - } catch (Exception e) { - throw new CertificateException("Error instantiating class for " - + name + " " + e.toString()); - } + return (extClass); + } catch (Exception e) { + throw new CertificateException("Error instantiating class for " + + name + " " + e.toString()); + } } } |