summaryrefslogtreecommitdiffstats
path: root/pki/base/util/src/netscape/security/x509/Extension.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/util/src/netscape/security/x509/Extension.java')
-rw-r--r--pki/base/util/src/netscape/security/x509/Extension.java199
1 files changed, 0 insertions, 199 deletions
diff --git a/pki/base/util/src/netscape/security/x509/Extension.java b/pki/base/util/src/netscape/security/x509/Extension.java
deleted file mode 100644
index 7dc9e2890..000000000
--- a/pki/base/util/src/netscape/security/x509/Extension.java
+++ /dev/null
@@ -1,199 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program 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 for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package netscape.security.x509;
-
-import java.io.IOException;
-import java.io.Serializable;
-
-import netscape.security.util.DerInputStream;
-import netscape.security.util.DerOutputStream;
-import netscape.security.util.DerValue;
-import netscape.security.util.ObjectIdentifier;
-
-/**
- * Represent a X509 Extension Attribute.
- *
- * <p>
- * Extensions are addiitonal attributes which can be inserted in a X509 v3 certificate. For example a
- * "Driving License Certificate" could have the driving license number as a extension.
- *
- * <p>
- * Extensions are represented as a sequence of the extension identifier (Object Identifier), a boolean flag stating
- * whether the extension is to be treated as being critical and the extension value itself (this is again a DER encoding
- * of the extension value).
- *
- * <pre>
- * ASN.1 definition of Extension:
- * Extension ::= SEQUENCE {
- * ExtensionId OBJECT IDENTIFIER,
- * critical BOOLEAN DEFAULT FALSE,
- * extensionValue OCTET STRING
- * }
- * </pre>
- *
- * @author Amit Kapoor
- * @author Hemma Prafullchandra
- * @version 1.9
- */
-public class Extension implements Serializable {
- /**
- *
- */
- private static final long serialVersionUID = -643549610716024753L;
- protected ObjectIdentifier extensionId = null;
- protected boolean critical = false;
- protected byte[] extensionValue = null;
-
- /**
- * Default constructor. Used only by sub-classes.
- */
- public Extension() {
- }
-
- /**
- * Constructs an extension from a DER encoded array of bytes.
- */
- public Extension(DerValue derVal) throws IOException {
-
- DerInputStream in = derVal.toDerInputStream();
-
- // Object identifier
- extensionId = in.getOID();
-
- // If the criticality flag was false, it will not have been encoded.
- DerValue val = in.getDerValue();
- if (val.tag == DerValue.tag_Boolean) {
- critical = val.getBoolean();
-
- // Extension value (DER encoded)
- val = in.getDerValue();
- extensionValue = val.getOctetString();
- } else {
- critical = false;
- extensionValue = val.getOctetString();
- }
- }
-
- /**
- * Constructs an Extension from individual components of ObjectIdentifier,
- * criticality and the DER encoded OctetString.
- *
- * @param extensionId the ObjectIdentifier of the extension
- * @param critical the boolean indicating if the extension is critical
- * @param extensionValue the DER encoded octet string of the value.
- */
- public Extension(ObjectIdentifier extensionId, boolean critical,
- byte[] extensionValue) throws IOException {
- this.extensionId = extensionId;
- this.critical = critical;
- // passed in a DER encoded octet string, strip off the tag
- // and length
- DerValue inDerVal = new DerValue(extensionValue);
- this.extensionValue = inDerVal.getOctetString();
- }
-
- /**
- * Constructs an Extension from another extension. To be used for
- * creating decoded subclasses.
- *
- * @param ext the extension to create from.
- */
- public Extension(Extension ext) {
- this.extensionId = ext.extensionId;
- this.critical = ext.critical;
- this.extensionValue = ext.extensionValue;
- }
-
- /**
- * Write the extension to the DerOutputStream.
- *
- * @param out the DerOutputStream to write the extension to.
- * @exception IOException on encoding errors
- */
- public void encode(DerOutputStream out) throws IOException {
- DerOutputStream bytes = new DerOutputStream();
-
- if (extensionId == null)
- throw new IOException("Null OID to encode for the extension!");
-
- bytes.putOID(extensionId);
- if (critical)
- bytes.putBoolean(critical);
- if (extensionValue != null)
- bytes.putOctetString(extensionValue);
-
- out.write(DerValue.tag_Sequence, bytes);
- }
-
- /**
- * Returns true if extension is critical.
- */
- public boolean isCritical() {
- return (critical);
- }
-
- public void setCritical(boolean c) {
- critical = c;
- }
-
- public void clearValue() {
- extensionValue = null;
- }
-
- /**
- * Returns the ObjectIdentifier of the extension.
- */
- public ObjectIdentifier getExtensionId() {
- return (extensionId);
- }
-
- public void setExtensionId(ObjectIdentifier oid) {
- extensionId = oid;
- }
-
- /**
- * Returns the extension value as an byte array for further processing.
- * Note, this is the raw DER value of the extension, not the DER
- * encoded octet string which is in the certificate.
- */
- public byte[] getExtensionValue() {
- if (extensionValue == null)
- return null;
-
- byte[] dup = new byte[extensionValue.length];
- System.arraycopy(extensionValue, 0, dup, 0, dup.length);
- return dup;
- }
-
- public void setExtensionValue(byte value[]) {
- extensionValue = value;
- }
-
- /**
- * Returns the Extension in user readable form.
- */
- public String toString() {
- String s = "ObjectId: " + extensionId.toString();
- if (critical) {
- s += " Criticality=true\n";
- } else {
- s += " Criticality=false\n";
- }
- return (s);
- }
-}