changeset 5847:7f081e14364e

4647343: IDENT variable in sun.security.x509 classes not used Reviewed-by: mullan Contributed-by: jason.uh@oracle.com
author mullan
date Fri, 07 Sep 2012 12:49:04 -0400
parents 3857114d8255
children fffbb33df102 a14d41fd6f51
files src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java src/share/classes/sun/security/x509/X509CertImpl.java src/share/classes/sun/security/x509/X509CertInfo.java
diffstat 4 files changed, 22 insertions(+), 405 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/sun/security/x509/CertificateIssuerUniqueIdentity.java	Fri Sep 07 15:30:17 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package sun.security.x509;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Enumeration;
-
-import sun.security.util.*;
-
-/**
- * This class defines the subject/issuer unique identity attribute
- * for the Certificate.
- *
- * @author Amit Kapoor
- * @author Hemma Prafullchandra
- * @see CertAttrSet
- */
-public class CertificateIssuerUniqueIdentity implements CertAttrSet<String> {
-    private UniqueIdentity      id;
-
-    /**
-     * Identifier for this attribute, to be used with the
-     * get, set, delete methods of Certificate, x509 type.
-     */
-    public static final String IDENT = "x509.info.issuerID";
-    /**
-     * Sub attributes name for this CertAttrSet.
-     */
-    public static final String NAME = "issuerID";
-    public static final String ID = "id";
-
-    /**
-     * Default constructor for the certificate attribute.
-     *
-     * @param key the UniqueIdentity
-     */
-    public CertificateIssuerUniqueIdentity(UniqueIdentity id) {
-        this.id = id;
-    }
-
-    /**
-     * Create the object, decoding the values from the passed DER stream.
-     *
-     * @param in the DerInputStream to read the UniqueIdentity from.
-     * @exception IOException on decoding errors.
-     */
-    public CertificateIssuerUniqueIdentity(DerInputStream in)
-    throws IOException {
-        id = new UniqueIdentity(in);
-    }
-
-    /**
-     * Create the object, decoding the values from the passed stream.
-     *
-     * @param in the InputStream to read the UniqueIdentity from.
-     * @exception IOException on decoding errors.
-     */
-    public CertificateIssuerUniqueIdentity(InputStream in)
-    throws IOException {
-        DerValue val = new DerValue(in);
-        id = new UniqueIdentity(val);
-    }
-
-    /**
-     * Create the object, decoding the values from the passed DER value.
-     *
-     * @param in the DerValue to read the UniqueIdentity from.
-     * @exception IOException on decoding errors.
-     */
-    public CertificateIssuerUniqueIdentity(DerValue val)
-    throws IOException {
-        id = new UniqueIdentity(val);
-    }
-
-    /**
-     * Return the identity as user readable string.
-     */
-    public String toString() {
-        if (id == null) return "";
-        return (id.toString());
-    }
-
-    /**
-     * Encode the identity in DER form to the stream.
-     *
-     * @param out the DerOutputStream to marshal the contents to.
-     * @exception IOException on errors.
-     */
-    public void encode(OutputStream out) throws IOException {
-        DerOutputStream tmp = new DerOutputStream();
-        id.encode(tmp,DerValue.createTag(DerValue.TAG_CONTEXT,false,(byte)1));
-
-        out.write(tmp.toByteArray());
-    }
-
-    /**
-     * Set the attribute value.
-     */
-    public void set(String name, Object obj) throws IOException {
-        if (!(obj instanceof UniqueIdentity)) {
-            throw new IOException("Attribute must be of type UniqueIdentity.");
-        }
-        if (name.equalsIgnoreCase(ID)) {
-            id = (UniqueIdentity)obj;
-        } else {
-            throw new IOException("Attribute name not recognized by " +
-                      "CertAttrSet: CertificateIssuerUniqueIdentity.");
-        }
-    }
-
-    /**
-     * Get the attribute value.
-     */
-    public UniqueIdentity get(String name) throws IOException {
-        if (name.equalsIgnoreCase(ID)) {
-            return (id);
-        } else {
-            throw new IOException("Attribute name not recognized by " +
-                      "CertAttrSet: CertificateIssuerUniqueIdentity.");
-        }
-    }
-
-    /**
-     * Delete the attribute value.
-     */
-    public void delete(String name) throws IOException {
-        if (name.equalsIgnoreCase(ID)) {
-            id = null;
-        } else {
-            throw new IOException("Attribute name not recognized by " +
-                      "CertAttrSet: CertificateIssuerUniqueIdentity.");
-        }
-    }
-
-    /**
-     * Return an enumeration of names of attributes existing within this
-     * attribute.
-     */
-    public Enumeration<String> getElements() {
-        AttributeNameEnumeration elements = new AttributeNameEnumeration();
-        elements.addElement(ID);
-
-        return (elements.elements());
-    }
-
-    /**
-     * Return the name of this attribute.
-     */
-    public String getName() {
-        return (NAME);
-    }
-}
--- a/src/share/classes/sun/security/x509/CertificateSubjectUniqueIdentity.java	Fri Sep 07 15:30:17 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package sun.security.x509;
-
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Enumeration;
-
-import sun.security.util.*;
-
-/**
- * This class defines the subject/issuer unique identity attribute
- * for the Certificate.
- *
- * @author Amit Kapoor
- * @author Hemma Prafullchandra
- * @see CertAttrSet
- */
-public class CertificateSubjectUniqueIdentity implements CertAttrSet<String> {
-    /**
-     * Identifier for this attribute, to be used with the
-     * get, set, delete methods of Certificate, x509 type.
-     */
-    public static final String IDENT = "x509.info.subjectID";
-    /**
-     * Sub attributes name for this CertAttrSet.
-     */
-    public static final String NAME = "subjectID";
-    public static final String ID = "id";
-
-    private UniqueIdentity      id;
-
-    /**
-     * Default constructor for the certificate attribute.
-     *
-     * @param key the UniqueIdentity
-     */
-    public CertificateSubjectUniqueIdentity(UniqueIdentity id) {
-        this.id = id;
-    }
-
-    /**
-     * Create the object, decoding the values from the passed DER stream.
-     *
-     * @param in the DerInputStream to read the UniqueIdentity from.
-     * @exception IOException on decoding errors.
-     */
-    public CertificateSubjectUniqueIdentity(DerInputStream in)
-    throws IOException {
-        id = new UniqueIdentity(in);
-    }
-
-    /**
-     * Create the object, decoding the values from the passed stream.
-     *
-     * @param in the InputStream to read the UniqueIdentity from.
-     * @exception IOException on decoding errors.
-     */
-    public CertificateSubjectUniqueIdentity(InputStream in)
-    throws IOException {
-        DerValue val = new DerValue(in);
-        id = new UniqueIdentity(val);
-    }
-
-    /**
-     * Create the object, decoding the values from the passed DER value.
-     *
-     * @param in the DerValue to read the UniqueIdentity from.
-     * @exception IOException on decoding errors.
-     */
-    public CertificateSubjectUniqueIdentity(DerValue val)
-    throws IOException {
-        id = new UniqueIdentity(val);
-    }
-
-    /**
-     * Return the identity as user readable string.
-     */
-    public String toString() {
-        if (id == null) return "";
-        return(id.toString());
-    }
-
-    /**
-     * Encode the identity in DER form to the stream.
-     *
-     * @param out the DerOutputStream to marshal the contents to.
-     * @exception IOException on errors.
-     */
-    public void encode(OutputStream out) throws IOException {
-        DerOutputStream tmp = new DerOutputStream();
-        id.encode(tmp,DerValue.createTag(DerValue.TAG_CONTEXT,false,(byte)2));
-
-        out.write(tmp.toByteArray());
-    }
-
-    /**
-     * Set the attribute value.
-     */
-    public void set(String name, Object obj) throws IOException {
-        if (!(obj instanceof UniqueIdentity)) {
-            throw new IOException("Attribute must be of type UniqueIdentity.");
-        }
-        if (name.equalsIgnoreCase(ID)) {
-            id = (UniqueIdentity)obj;
-        } else {
-            throw new IOException("Attribute name not recognized by " +
-                      "CertAttrSet: CertificateSubjectUniqueIdentity.");
-        }
-    }
-
-    /**
-     * Get the attribute value.
-     */
-    public UniqueIdentity get(String name) throws IOException {
-        if (name.equalsIgnoreCase(ID)) {
-            return(id);
-        } else {
-            throw new IOException("Attribute name not recognized by " +
-                      "CertAttrSet: CertificateSubjectUniqueIdentity.");
-        }
-    }
-
-    /**
-     * Delete the attribute value.
-     */
-    public void delete(String name) throws IOException {
-        if (name.equalsIgnoreCase(ID)) {
-            id = null;
-        } else {
-            throw new IOException("Attribute name not recognized by " +
-                      "CertAttrSet: CertificateSubjectUniqueIdentity.");
-        }
-    }
-
-    /**
-     * Return an enumeration of names of attributes existing within this
-     * attribute.
-     */
-    public Enumeration<String> getElements() {
-        AttributeNameEnumeration elements = new AttributeNameEnumeration();
-        elements.addElement(ID);
-
-        return (elements.elements());
-    }
-
-    /**
-     * Return the name of this attribute.
-     */
-    public String getName() {
-        return (NAME);
-    }
-}
--- a/src/share/classes/sun/security/x509/X509CertImpl.java	Fri Sep 07 15:30:17 2012 +0100
+++ b/src/share/classes/sun/security/x509/X509CertImpl.java	Fri Sep 07 12:49:04 2012 -0400
@@ -1070,8 +1070,7 @@
             return null;
         try {
             UniqueIdentity id = (UniqueIdentity)info.get(
-                                 CertificateIssuerUniqueIdentity.NAME
-                            + DOT + CertificateIssuerUniqueIdentity.ID);
+                                 X509CertInfo.ISSUER_ID);
             if (id == null)
                 return null;
             else
@@ -1091,8 +1090,7 @@
             return null;
         try {
             UniqueIdentity id = (UniqueIdentity)info.get(
-                                 CertificateSubjectUniqueIdentity.NAME
-                            + DOT + CertificateSubjectUniqueIdentity.ID);
+                                 X509CertInfo.SUBJECT_ID);
             if (id == null)
                 return null;
             else
--- a/src/share/classes/sun/security/x509/X509CertInfo.java	Fri Sep 07 15:30:17 2012 +0100
+++ b/src/share/classes/sun/security/x509/X509CertInfo.java	Fri Sep 07 12:49:04 2012 -0400
@@ -75,8 +75,8 @@
     public static final String VALIDITY = CertificateValidity.NAME;
     public static final String SUBJECT = CertificateSubjectName.NAME;
     public static final String KEY = CertificateX509Key.NAME;
-    public static final String ISSUER_ID = CertificateIssuerUniqueIdentity.NAME;
-    public static final String SUBJECT_ID = CertificateSubjectUniqueIdentity.NAME;
+    public static final String ISSUER_ID = "issuerID";
+    public static final String SUBJECT_ID = "subjectID";
     public static final String EXTENSIONS = CertificateExtensions.NAME;
 
     // X509.v1 data
@@ -89,8 +89,8 @@
     protected CertificateX509Key        pubKey = null;
 
     // X509.v2 & v3 extensions
-    protected CertificateIssuerUniqueIdentity   issuerUniqueId = null;
-    protected CertificateSubjectUniqueIdentity  subjectUniqueId = null;
+    protected UniqueIdentity   issuerUniqueId = null;
+    protected UniqueIdentity  subjectUniqueId = null;
 
     // X509.v3 extensions
     protected CertificateExtensions     extensions = null;
@@ -431,19 +431,11 @@
             break;
 
         case ATTR_ISSUER_ID:
-            if (suffix == null) {
-                setIssuerUniqueId(val);
-            } else {
-                issuerUniqueId.set(suffix, val);
-            }
+            setIssuerUniqueId(val);
             break;
 
         case ATTR_SUBJECT_ID:
-            if (suffix == null) {
-                setSubjectUniqueId(val);
-            } else {
-                subjectUniqueId.set(suffix, val);
-            }
+            setSubjectUniqueId(val);
             break;
 
         case ATTR_EXTENSIONS:
@@ -529,18 +521,10 @@
             }
             break;
         case (ATTR_ISSUER_ID):
-            if (suffix == null) {
-                issuerUniqueId = null;
-            } else {
-                issuerUniqueId.delete(suffix);
-            }
+            issuerUniqueId = null;
             break;
         case (ATTR_SUBJECT_ID):
-            if (suffix == null) {
-                subjectUniqueId = null;
-            } else {
-                subjectUniqueId.delete(suffix);
-            }
+            subjectUniqueId = null;
             break;
         case (ATTR_EXTENSIONS):
             if (suffix == null) {
@@ -626,23 +610,9 @@
                 return(serialNum.get(suffix));
             }
         case (ATTR_ISSUER_ID):
-            if (suffix == null) {
-                return(issuerUniqueId);
-            } else {
-                if (issuerUniqueId == null)
-                    return null;
-                else
-                    return(issuerUniqueId.get(suffix));
-            }
+            return(issuerUniqueId);
         case (ATTR_SUBJECT_ID):
-            if (suffix == null) {
-                return(subjectUniqueId);
-            } else {
-                if (subjectUniqueId == null)
-                    return null;
-                else
-                    return(subjectUniqueId.get(suffix));
-            }
+            return(subjectUniqueId);
         }
         return null;
     }
@@ -711,7 +681,7 @@
         // Get the issuerUniqueId if present
         tmp = in.getDerValue();
         if (tmp.isContextSpecific((byte)1)) {
-            issuerUniqueId = new CertificateIssuerUniqueIdentity(tmp);
+            issuerUniqueId = new UniqueIdentity(tmp);
             if (in.available() == 0)
                 return;
             tmp = in.getDerValue();
@@ -719,7 +689,7 @@
 
         // Get the subjectUniqueId if present.
         if (tmp.isContextSpecific((byte)2)) {
-            subjectUniqueId = new CertificateSubjectUniqueIdentity(tmp);
+            subjectUniqueId = new UniqueIdentity(tmp);
             if (in.available() == 0)
                 return;
             tmp = in.getDerValue();
@@ -814,10 +784,12 @@
 
         // Encode issuerUniqueId & subjectUniqueId.
         if (issuerUniqueId != null) {
-            issuerUniqueId.encode(tmp);
+            issuerUniqueId.encode(tmp, DerValue.createTag(DerValue.TAG_CONTEXT,
+                                                          false,(byte)1));
         }
         if (subjectUniqueId != null) {
-            subjectUniqueId.encode(tmp);
+            subjectUniqueId.encode(tmp, DerValue.createTag(DerValue.TAG_CONTEXT,
+                                                           false,(byte)2));
         }
 
         // Write all the extensions.
@@ -946,11 +918,11 @@
         if (version.compare(CertificateVersion.V2) < 0) {
             throw new CertificateException("Invalid version");
         }
-        if (!(val instanceof CertificateIssuerUniqueIdentity)) {
+        if (!(val instanceof UniqueIdentity)) {
             throw new CertificateException(
                              "IssuerUniqueId class type invalid.");
         }
-        issuerUniqueId = (CertificateIssuerUniqueIdentity)val;
+        issuerUniqueId = (UniqueIdentity)val;
     }
 
     /**
@@ -963,11 +935,11 @@
         if (version.compare(CertificateVersion.V2) < 0) {
             throw new CertificateException("Invalid version");
         }
-        if (!(val instanceof CertificateSubjectUniqueIdentity)) {
+        if (!(val instanceof UniqueIdentity)) {
             throw new CertificateException(
                              "SubjectUniqueId class type invalid.");
         }
-        subjectUniqueId = (CertificateSubjectUniqueIdentity)val;
+        subjectUniqueId = (UniqueIdentity)val;
     }
 
     /**