You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/01/25 05:13:34 UTC
[2/4] directory-kerberos git commit: Replaced the ASN1 parser
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERInputStream.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERInputStream.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERInputStream.java
deleted file mode 100644
index 403b2ce..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERInputStream.java
+++ /dev/null
@@ -1,179 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Vector;
-
-/** @deprecated use ASN1InputStream */
-public class BERInputStream
- extends DERInputStream {
- private static final DERObject END_OF_STREAM = new DERObject() {
- void encode(
- DEROutputStream out)
- throws IOException {
- throw new IOException("Eeek!");
- }
- public int hashCode() {
- return 0;
- }
- public boolean equals(
- Object o) {
- return o == this;
- }
- };
- public BERInputStream(
- InputStream is) {
- super(is);
- }
-
- /** read a string of bytes representing an indefinite length object. */
- private byte[] readIndefiniteLengthFully()
- throws IOException {
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- int b, b1;
-
- b1 = read();
-
- while ((b = read()) >= 0) {
- if (b1 == 0 && b == 0) {
- break;
- }
-
- bOut.write(b1);
- b1 = b;
- }
-
- return bOut.toByteArray();
- }
-
- private BERConstructedOctetString buildConstructedOctetString()
- throws IOException {
- Vector octs = new Vector();
-
- for (; ;) {
- DERObject o = readObject();
-
- if (o == END_OF_STREAM) {
- break;
- }
-
- octs.addElement(o);
- }
-
- return new BERConstructedOctetString(octs);
- }
-
- public DERObject readObject()
- throws IOException {
- int tag = read();
- if (tag == -1) {
- throw new EOFException();
- }
-
- int length = readLength();
-
- if (length < 0) // indefinite length method
- {
- switch (tag) {
- case NULL:
- return null;
- case SEQUENCE | CONSTRUCTED:
- BERConstructedSequence seq = new BERConstructedSequence();
-
- for (; ;) {
- DERObject obj = readObject();
-
- if (obj == END_OF_STREAM) {
- break;
- }
-
- seq.addObject(obj);
- }
- return seq;
- case OCTET_STRING | CONSTRUCTED:
- return buildConstructedOctetString();
- case SET | CONSTRUCTED:
- ASN1EncodableVector v = new ASN1EncodableVector();
-
- for (; ;) {
- DERObject obj = readObject();
-
- if (obj == END_OF_STREAM) {
- break;
- }
-
- v.add(obj);
- }
- return new BERSet(v);
- default:
- //
- // with tagged object tag number is bottom 5 bits
- //
- if ((tag & TAGGED) != 0) {
- if ((tag & 0x1f) == 0x1f) {
- throw new IOException("unsupported high tag encountered");
- }
-
- //
- // simple type - implicit... return an octet string
- //
- if ((tag & CONSTRUCTED) == 0) {
- byte[] bytes = readIndefiniteLengthFully();
-
- return new BERTaggedObject(false, tag & 0x1f, new DEROctetString(bytes));
- }
-
- //
- // either constructed or explicitly tagged
- //
- DERObject dObj = readObject();
-
- if (dObj == END_OF_STREAM) // empty tag!
- {
- return new DERTaggedObject(tag & 0x1f);
- }
-
- DERObject next = readObject();
-
- //
- // explicitly tagged (probably!) - if it isn't we'd have to
- // tell from the context
- //
- if (next == END_OF_STREAM) {
- return new BERTaggedObject(tag & 0x1f, dObj);
- }
-
- //
- // another implicit object, we'll create a sequence...
- //
- seq = new BERConstructedSequence();
-
- seq.addObject(dObj);
-
- do {
- seq.addObject(next);
- next = readObject();
- }
- while (next != END_OF_STREAM);
-
- return new BERTaggedObject(false, tag & 0x1f, seq);
- }
-
- throw new IOException("unknown BER object encountered");
- }
- } else {
- if (tag == 0 && length == 0) // end of contents marker.
- {
- return END_OF_STREAM;
- }
-
- byte[] bytes = new byte[length];
-
- readFully(bytes);
-
- return buildObject(tag, bytes);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERNull.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERNull.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERNull.java
deleted file mode 100644
index e5c1626..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERNull.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-/** A BER NULL object. */
-public class BERNull
- extends DERNull {
- public static final BERNull INSTANCE = new BERNull();
-
- public BERNull() {
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- if (out instanceof ASN1OutputStream || out instanceof BEROutputStream) {
- out.write(NULL);
- } else {
- super.encode(out);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringGenerator.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringGenerator.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringGenerator.java
deleted file mode 100644
index b21fade..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringGenerator.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-public class BEROctetStringGenerator
- extends BERGenerator {
- public BEROctetStringGenerator(OutputStream out)
- throws IOException {
- super(out);
-
- writeBERHeader(DERTags.CONSTRUCTED | DERTags.OCTET_STRING);
- }
-
- public BEROctetStringGenerator(
- OutputStream out,
- int tagNo,
- boolean isExplicit)
- throws IOException {
- super(out, tagNo, isExplicit);
-
- writeBERHeader(DERTags.CONSTRUCTED | DERTags.OCTET_STRING);
- }
-
- public OutputStream getOctetOutputStream() {
- return getOctetOutputStream(new byte[1000]); // limit for CER encoding.
- }
-
- public OutputStream getOctetOutputStream(
- byte[] buf) {
- return new BufferedBEROctetStream(buf);
- }
-
- private class BufferedBEROctetStream
- extends OutputStream {
- private byte[] _buf;
- private int _off;
-
- BufferedBEROctetStream(
- byte[] buf) {
- _buf = buf;
- _off = 0;
- }
-
- public void write(
- int b)
- throws IOException {
- _buf[_off++] = (byte) b;
-
- if (_off == _buf.length) {
- _out.write(new DEROctetString(_buf).getEncoded());
- _off = 0;
- }
- }
-
- public void write(byte[] b, int off, int len) throws IOException {
- while (len > 0) {
- int numToCopy = Math.min(len, _buf.length - _off);
- System.arraycopy(b, off, _buf, _off, numToCopy);
-
- _off += numToCopy;
- if (_off < _buf.length) {
- break;
- }
-
- _out.write(new DEROctetString(_buf).getEncoded());
- _off = 0;
-
- off += numToCopy;
- len -= numToCopy;
- }
- }
-
- public void close()
- throws IOException {
- if (_off != 0) {
- byte[] bytes = new byte[_off];
- System.arraycopy(_buf, 0, bytes, 0, _off);
-
- _out.write(new DEROctetString(bytes).getEncoded());
- }
-
- writeBEREnd();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringParser.java
deleted file mode 100644
index 2123c2b..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROctetStringParser.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class BEROctetStringParser
- implements ASN1OctetStringParser {
- private ASN1ObjectParser _parser;
-
- protected BEROctetStringParser(
- ASN1ObjectParser parser) {
- _parser = parser;
- }
-
- public InputStream getOctetStream() {
- return new ConstructedOctetStream(_parser);
- }
-
- public DERObject getDERObject() {
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- InputStream in = this.getOctetStream();
- int ch;
-
- try {
- while ((ch = in.read()) >= 0) {
- bOut.write(ch);
- }
- }
- catch (IOException e) {
- throw new IllegalStateException("IOException converting stream to byte array: " + e.getMessage());
- }
-
- return new BERConstructedOctetString(bOut.toByteArray());
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROutputStream.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROutputStream.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROutputStream.java
deleted file mode 100644
index 36f99ee..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BEROutputStream.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-public class BEROutputStream
- extends DEROutputStream {
- public BEROutputStream(
- OutputStream os) {
- super(os);
- }
-
- public void writeObject(
- Object obj)
- throws IOException {
- if (obj == null) {
- writeNull();
- } else if (obj instanceof DERObject) {
- ((DERObject) obj).encode(this);
- } else if (obj instanceof DEREncodable) {
- ((DEREncodable) obj).getDERObject().encode(this);
- } else {
- throw new IOException("object not BEREncodable");
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequence.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequence.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequence.java
deleted file mode 100644
index cc7667e..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequence.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.util.Enumeration;
-
-public class BERSequence
- extends DERSequence {
- /** create an empty sequence */
- public BERSequence() {
- }
-
- /** create a sequence containing one object */
- public BERSequence(
- DEREncodable obj) {
- super(obj);
- }
-
- /** create a sequence containing a vector of objects. */
- public BERSequence(
- DEREncodableVector v) {
- super(v);
- }
-
- /*
- */
- void encode(
- DEROutputStream out)
- throws IOException {
- if (out instanceof ASN1OutputStream || out instanceof BEROutputStream) {
- out.write(SEQUENCE | CONSTRUCTED);
- out.write(0x80);
-
- Enumeration e = getObjects();
- while (e.hasMoreElements()) {
- out.writeObject(e.nextElement());
- }
-
- out.write(0x00);
- out.write(0x00);
- } else {
- super.encode(out);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceGenerator.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceGenerator.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceGenerator.java
deleted file mode 100644
index 0e821ce..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceGenerator.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-public class BERSequenceGenerator
- extends BERGenerator {
- public BERSequenceGenerator(
- OutputStream out)
- throws IOException {
- super(out);
-
- writeBERHeader(DERTags.CONSTRUCTED | DERTags.SEQUENCE);
- }
-
- public BERSequenceGenerator(
- OutputStream out,
- int tagNo,
- boolean isExplicit)
- throws IOException {
- super(out, tagNo, isExplicit);
-
- writeBERHeader(DERTags.CONSTRUCTED | DERTags.SEQUENCE);
- }
-
- public void addObject(
- DEREncodable object)
- throws IOException {
- object.getDERObject().encode(new DEROutputStream(_out));
- }
-
- public void close()
- throws IOException {
- writeBEREnd();
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceParser.java
deleted file mode 100644
index fb7dad3..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSequenceParser.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public class BERSequenceParser
- implements ASN1SequenceParser {
- private ASN1ObjectParser _parser;
-
- BERSequenceParser(ASN1ObjectParser parser) {
- this._parser = parser;
- }
-
- public DEREncodable readObject()
- throws IOException {
- return _parser.readObject();
- }
-
- public DERObject getDERObject() {
- return new BERSequence(_parser.readVector());
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSet.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSet.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSet.java
deleted file mode 100644
index db80cf4..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSet.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.util.Enumeration;
-
-public class BERSet
- extends DERSet {
- /** create an empty sequence */
- public BERSet() {
- }
-
- /** create a set containing one object */
- public BERSet(
- DEREncodable obj) {
- super(obj);
- }
-
- /** @param v - a vector of objects making up the set. */
- public BERSet(
- DEREncodableVector v) {
- super(v, false);
- }
-
- /** @param v - a vector of objects making up the set. */
- BERSet(
- DEREncodableVector v,
- boolean needsSorting) {
- super(v, needsSorting);
- }
-
- /*
- */
- void encode(
- DEROutputStream out)
- throws IOException {
- if (out instanceof ASN1OutputStream || out instanceof BEROutputStream) {
- out.write(SET | CONSTRUCTED);
- out.write(0x80);
-
- Enumeration e = getObjects();
- while (e.hasMoreElements()) {
- out.writeObject(e.nextElement());
- }
-
- out.write(0x00);
- out.write(0x00);
- } else {
- super.encode(out);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSetParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSetParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSetParser.java
deleted file mode 100644
index 7f88189..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERSetParser.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public class BERSetParser
- implements ASN1SetParser {
- private ASN1ObjectParser _parser;
-
- BERSetParser(ASN1ObjectParser parser) {
- this._parser = parser;
- }
-
- public DEREncodable readObject()
- throws IOException {
- return _parser.readObject();
- }
-
- public DERObject getDERObject() {
- return new BERSet(_parser.readVector());
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObject.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObject.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObject.java
deleted file mode 100644
index c0be868..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObject.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.util.Enumeration;
-
-/**
- * BER TaggedObject - in ASN.1 nottation this is any object proceeded by
- * a [n] where n is some number - these are assume to follow the construction
- * rules (as with sequences).
- */
-public class BERTaggedObject
- extends DERTaggedObject {
- /**
- * @param tagNo the tag number for this object.
- * @param obj the tagged object.
- */
- public BERTaggedObject(
- int tagNo,
- DEREncodable obj) {
- super(tagNo, obj);
- }
-
- /**
- * @param explicit true if an explicitly tagged object.
- * @param tagNo the tag number for this object.
- * @param obj the tagged object.
- */
- public BERTaggedObject(
- boolean explicit,
- int tagNo,
- DEREncodable obj) {
- super(explicit, tagNo, obj);
- }
-
- /**
- * create an implicitly tagged object that contains a zero
- * length sequence.
- */
- public BERTaggedObject(
- int tagNo) {
- super(false, tagNo, new BERSequence());
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- if (out instanceof ASN1OutputStream || out instanceof BEROutputStream) {
- out.write(CONSTRUCTED | TAGGED | tagNo);
- out.write(0x80);
-
- if (!empty) {
- if (!explicit) {
- if (obj instanceof ASN1OctetString) {
- Enumeration e;
-
- if (obj instanceof BERConstructedOctetString) {
- e = ((BERConstructedOctetString) obj).getObjects();
- } else {
- ASN1OctetString octs = (ASN1OctetString) obj;
- BERConstructedOctetString berO = new BERConstructedOctetString(octs.getOctets());
-
- e = berO.getObjects();
- }
-
- while (e.hasMoreElements()) {
- out.writeObject(e.nextElement());
- }
- } else if (obj instanceof ASN1Sequence) {
- Enumeration e = ((ASN1Sequence) obj).getObjects();
-
- while (e.hasMoreElements()) {
- out.writeObject(e.nextElement());
- }
- } else if (obj instanceof ASN1Set) {
- Enumeration e = ((ASN1Set) obj).getObjects();
-
- while (e.hasMoreElements()) {
- out.writeObject(e.nextElement());
- }
- } else {
- throw new RuntimeException("not implemented: " + obj.getClass().getName());
- }
- } else {
- out.writeObject(obj);
- }
- }
-
- out.write(0x00);
- out.write(0x00);
- } else {
- super.encode(out);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObjectParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObjectParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObjectParser.java
deleted file mode 100644
index 0f45cdb..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERTaggedObjectParser.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public class BERTaggedObjectParser
- implements ASN1TaggedObjectParser {
- private int _baseTag;
- private int _tagNumber;
- private InputStream _contentStream;
-
- private boolean _indefiniteLength;
-
- protected BERTaggedObjectParser(
- int baseTag,
- int tagNumber,
- InputStream contentStream) {
- _baseTag = baseTag;
- _tagNumber = tagNumber;
- _contentStream = contentStream;
- _indefiniteLength = contentStream instanceof IndefiniteLengthInputStream;
- }
-
- public boolean isConstructed() {
- return (_baseTag & DERTags.CONSTRUCTED) != 0;
- }
-
- public int getTagNo() {
- return _tagNumber;
- }
-
- public DEREncodable getObjectParser(
- int tag,
- boolean isExplicit)
- throws IOException {
- if (isExplicit) {
- return new ASN1StreamParser(_contentStream).readObject();
- } else {
- switch (tag) {
- case DERTags.SET:
- if (_indefiniteLength) {
- return new BERSetParser(new ASN1ObjectParser(_baseTag, _tagNumber, _contentStream));
- } else {
- return new DERSet(loadVector(_contentStream)).parser();
- }
- case DERTags.SEQUENCE:
- if (_indefiniteLength) {
- return new BERSequenceParser(new ASN1ObjectParser(_baseTag, _tagNumber, _contentStream));
- } else {
- return new DERSequence(loadVector(_contentStream)).parser();
- }
- case DERTags.OCTET_STRING:
- if (_indefiniteLength || this.isConstructed()) {
- return new BEROctetStringParser(new ASN1ObjectParser(_baseTag, _tagNumber, _contentStream));
- } else {
- return new DEROctetString(((DefiniteLengthInputStream) _contentStream).toByteArray()).parser();
- }
- }
- }
-
- throw new RuntimeException("implicit tagging not implemented");
- }
-
- private ASN1EncodableVector loadVector(InputStream in)
- throws IOException {
- ASN1StreamParser aIn = new ASN1StreamParser(in);
- ASN1EncodableVector v = new ASN1EncodableVector();
- DEREncodable obj = aIn.readObject();
-
- while (obj != null) {
- v.add(obj.getDERObject());
- obj = aIn.readObject();
- }
-
- return v;
- }
-
- private ASN1EncodableVector rLoadVector(InputStream in) {
- try {
- return loadVector(in);
- }
- catch (IOException e) {
- throw new IllegalStateException(e.getMessage());
- }
- }
-
- public DERObject getDERObject() {
- if (_indefiniteLength) {
- ASN1EncodableVector v = rLoadVector(_contentStream);
-
- if (v.size() > 1) {
- return new BERTaggedObject(false, _tagNumber, new BERSequence(v));
- } else if (v.size() == 1) {
- return new BERTaggedObject(true, _tagNumber, v.get(0));
- } else {
- return new BERTaggedObject(false, _tagNumber, new BERSequence());
- }
- } else {
- if (this.isConstructed()) {
- ASN1EncodableVector v = rLoadVector(_contentStream);
-
- if (v.size() == 1) {
- return new DERTaggedObject(true, _tagNumber, v.get(0));
- }
-
- return new DERTaggedObject(false, _tagNumber, new DERSequence(v));
- }
-
- try {
- return new DERTaggedObject(false, _tagNumber, new DEROctetString(((DefiniteLengthInputStream) _contentStream).toByteArray()));
- }
- catch (IOException e) {
- throw new IllegalStateException(e.getMessage());
- }
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ConstructedOctetStream.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ConstructedOctetStream.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ConstructedOctetStream.java
deleted file mode 100644
index 18565bb..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ConstructedOctetStream.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-class ConstructedOctetStream
- extends InputStream {
- private final ASN1ObjectParser _parser;
-
- private boolean _first = true;
- private InputStream _currentStream;
-
- ConstructedOctetStream(
- ASN1ObjectParser parser) {
- _parser = parser;
- }
-
- public int read(byte[] b, int off, int len) throws IOException {
- if (_currentStream == null) {
- if (!_first) {
- return -1;
- }
-
- ASN1OctetStringParser s = (ASN1OctetStringParser) _parser.readObject();
-
- if (s == null) {
- return -1;
- }
-
- _first = false;
- _currentStream = s.getOctetStream();
- }
-
- int totalRead = 0;
-
- for (; ;) {
- int numRead = _currentStream.read(b, off + totalRead, len - totalRead);
-
- if (numRead >= 0) {
- totalRead += numRead;
-
- if (totalRead == len) {
- return totalRead;
- }
- } else {
- ASN1OctetStringParser aos = (ASN1OctetStringParser) _parser.readObject();
-
- if (aos == null) {
- _currentStream = null;
- return totalRead < 1 ? -1 : totalRead;
- }
-
- _currentStream = aos.getOctetStream();
- }
- }
- }
-
- public int read()
- throws IOException {
- if (_currentStream == null) {
- if (!_first) {
- return -1;
- }
-
- ASN1OctetStringParser s = (ASN1OctetStringParser) _parser.readObject();
-
- if (s == null) {
- return -1;
- }
-
- _first = false;
- _currentStream = s.getOctetStream();
- }
-
- for (; ;) {
- int b = _currentStream.read();
-
- if (b >= 0) {
- return b;
- }
-
- ASN1OctetStringParser s = (ASN1OctetStringParser) _parser.readObject();
-
- if (s == null) {
- _currentStream = null;
- return -1;
- }
-
- _currentStream = s.getOctetStream();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERApplicationSpecific.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERApplicationSpecific.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERApplicationSpecific.java
deleted file mode 100644
index 1396f91..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERApplicationSpecific.java
+++ /dev/null
@@ -1,143 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-/** Base class for an application specific object */
-public class DERApplicationSpecific
- extends ASN1Object {
- private int tag;
- private byte[] octets;
-
- public DERApplicationSpecific(
- int tag,
- byte[] octets) {
- this.tag = tag;
- this.octets = octets;
- }
-
- public DERApplicationSpecific(
- int tag,
- DEREncodable object)
- throws IOException {
- this(true, tag, object);
- }
-
- public DERApplicationSpecific(
- boolean explicit,
- int tag,
- DEREncodable object)
- throws IOException {
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- DEROutputStream dos = new DEROutputStream(bOut);
-
- dos.writeObject(object);
-
- byte[] data = bOut.toByteArray();
-
- if (tag >= 0x1f) {
- throw new IOException("unsupported tag number");
- }
-
- if (explicit) {
- this.tag = tag | DERTags.CONSTRUCTED;
- this.octets = data;
- } else {
- this.tag = tag;
- int lenBytes = getLengthOfLength(data);
- byte[] tmp = new byte[data.length - lenBytes];
- System.arraycopy(data, lenBytes, tmp, 0, tmp.length);
- this.octets = tmp;
- }
- }
-
- private int getLengthOfLength(byte[] data) {
- int count = 2; // TODO: assumes only a 1 byte tag number
-
- while ((data[count - 1] & 0x80) != 0) {
- count++;
- }
-
- return count;
- }
-
- public boolean isConstructed() {
- return (tag & DERTags.CONSTRUCTED) != 0;
- }
-
- public byte[] getContents() {
- return octets;
- }
-
- public int getApplicationTag() {
- return tag;
- }
-
- public DERObject getObject()
- throws IOException {
- return new ASN1InputStream(getContents()).readObject();
- }
-
- /**
- * Return the enclosed object assuming implicit tagging.
- *
- * @param derTagNo the type tag that should be applied to the object's contents.
- * @return the resulting object
- * @throws java.io.IOException if reconstruction fails.
- */
- public DERObject getObject(int derTagNo)
- throws IOException {
- if (tag >= 0x1f) {
- throw new IOException("unsupported tag number");
- }
-
- byte[] tmp = this.getEncoded();
-
- tmp[0] = (byte) derTagNo;
-
- return new ASN1InputStream(tmp).readObject();
- }
-
- /* (non-Javadoc)
- * @see org.apache.commons.ssl.asn1.DERObject#encode(org.apache.commons.ssl.asn1.DEROutputStream)
- */
- void encode(DEROutputStream out) throws IOException {
- out.writeEncoded(DERTags.APPLICATION | tag, octets);
- }
-
- boolean asn1Equals(
- DERObject o) {
- if (!(o instanceof DERApplicationSpecific)) {
- return false;
- }
-
- DERApplicationSpecific other = (DERApplicationSpecific) o;
-
- if (tag != other.tag) {
- return false;
- }
-
- if (octets.length != other.octets.length) {
- return false;
- }
-
- for (int i = 0; i < octets.length; i++) {
- if (octets[i] != other.octets[i]) {
- return false;
- }
- }
-
- return true;
- }
-
- public int hashCode() {
- byte[] b = this.getContents();
- int value = 0;
-
- for (int i = 0; i != b.length; i++) {
- value ^= (b[i] & 0xff) << (i % 4);
- }
-
- return value ^ this.getApplicationTag();
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBMPString.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBMPString.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBMPString.java
deleted file mode 100644
index e093582..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBMPString.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-/** DER BMPString object. */
-public class DERBMPString
- extends ASN1Object
- implements DERString {
- String string;
-
- /**
- * return a BMP String from the given object.
- *
- * @param obj the object we want converted.
- * @throws IllegalArgumentException if the object cannot be converted.
- */
- public static DERBMPString getInstance(
- Object obj) {
- if (obj == null || obj instanceof DERBMPString) {
- return (DERBMPString) obj;
- }
-
- if (obj instanceof ASN1OctetString) {
- return new DERBMPString(((ASN1OctetString) obj).getOctets());
- }
-
- if (obj instanceof ASN1TaggedObject) {
- return getInstance(((ASN1TaggedObject) obj).getObject());
- }
-
- throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
- }
-
- /**
- * return a BMP String from a tagged object.
- *
- * @param obj the tagged object holding the object we want
- * @param explicit true if the object is meant to be explicitly
- * tagged false otherwise.
- * @throws IllegalArgumentException if the tagged object cannot
- * be converted.
- */
- public static DERBMPString getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
-
- /** basic constructor - byte encoded string. */
- public DERBMPString(
- byte[] string) {
- char[] cs = new char[string.length / 2];
-
- for (int i = 0; i != cs.length; i++) {
- cs[i] = (char) ((string[2 * i] << 8) | (string[2 * i + 1] & 0xff));
- }
-
- this.string = new String(cs);
- }
-
- /** basic constructor */
- public DERBMPString(
- String string) {
- this.string = string;
- }
-
- public String getString() {
- return string;
- }
-
- public String toString() {
- return string;
- }
-
- public int hashCode() {
- return this.getString().hashCode();
- }
-
- protected boolean asn1Equals(
- DERObject o) {
- if (!(o instanceof DERBMPString)) {
- return false;
- }
-
- DERBMPString s = (DERBMPString) o;
-
- return this.getString().equals(s.getString());
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- char[] c = string.toCharArray();
- byte[] b = new byte[c.length * 2];
-
- for (int i = 0; i != c.length; i++) {
- b[2 * i] = (byte) (c[i] >> 8);
- b[2 * i + 1] = (byte) c[i];
- }
-
- out.writeEncoded(BMP_STRING, b);
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBitString.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBitString.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBitString.java
deleted file mode 100644
index 2cb649c..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBitString.java
+++ /dev/null
@@ -1,245 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-public class DERBitString
- extends ASN1Object
- implements DERString {
- private static final char[] table = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
-
- protected byte[] data;
- protected int padBits;
-
- /**
- * return the correct number of pad bits for a bit string defined in
- * a 32 bit constant
- */
- static protected int getPadBits(
- int bitString) {
- int val = 0;
- for (int i = 3; i >= 0; i--) {
- //
- // this may look a little odd, but if it isn't done like this pre jdk1.2
- // JVM's break!
- //
- if (i != 0) {
- if ((bitString >> (i * 8)) != 0) {
- val = (bitString >> (i * 8)) & 0xFF;
- break;
- }
- } else {
- if (bitString != 0) {
- val = bitString & 0xFF;
- break;
- }
- }
- }
-
- if (val == 0) {
- return 7;
- }
-
-
- int bits = 1;
-
- while (((val <<= 1) & 0xFF) != 0) {
- bits++;
- }
-
- return 8 - bits;
- }
-
- /**
- * return the correct number of bytes for a bit string defined in
- * a 32 bit constant
- */
- static protected byte[] getBytes(int bitString) {
- int bytes = 4;
- for (int i = 3; i >= 1; i--) {
- if ((bitString & (0xFF << (i * 8))) != 0) {
- break;
- }
- bytes--;
- }
-
- byte[] result = new byte[bytes];
- for (int i = 0; i < bytes; i++) {
- result[i] = (byte) ((bitString >> (i * 8)) & 0xFF);
- }
-
- return result;
- }
-
- /**
- * return a Bit String from the passed in object
- *
- * @throws IllegalArgumentException if the object cannot be converted.
- */
- public static DERBitString getInstance(
- Object obj) {
- if (obj == null || obj instanceof DERBitString) {
- return (DERBitString) obj;
- }
-
- if (obj instanceof ASN1OctetString) {
- byte[] bytes = ((ASN1OctetString) obj).getOctets();
- int padBits = bytes[0];
- byte[] data = new byte[bytes.length - 1];
-
- System.arraycopy(bytes, 1, data, 0, bytes.length - 1);
-
- return new DERBitString(data, padBits);
- }
-
- if (obj instanceof ASN1TaggedObject) {
- return getInstance(((ASN1TaggedObject) obj).getObject());
- }
-
- throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
- }
-
- /**
- * return a Bit String from a tagged object.
- *
- * @param obj the tagged object holding the object we want
- * @param explicit true if the object is meant to be explicitly
- * tagged false otherwise.
- * @throws IllegalArgumentException if the tagged object cannot
- * be converted.
- */
- public static DERBitString getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
- protected DERBitString(
- byte data,
- int padBits) {
- this.data = new byte[1];
- this.data[0] = data;
- this.padBits = padBits;
- }
-
- /**
- * @param data the octets making up the bit string.
- * @param padBits the number of extra bits at the end of the string.
- */
- public DERBitString(
- byte[] data,
- int padBits) {
- this.data = data;
- this.padBits = padBits;
- }
-
- public DERBitString(
- byte[] data) {
- this(data, 0);
- }
-
- public DERBitString(
- DEREncodable obj) {
- try {
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- DEROutputStream dOut = new DEROutputStream(bOut);
-
- dOut.writeObject(obj);
- dOut.close();
-
- this.data = bOut.toByteArray();
- this.padBits = 0;
- }
- catch (IOException e) {
- throw new IllegalArgumentException("Error processing object : " + e.toString());
- }
- }
-
- public byte[] getBytes() {
- return data;
- }
-
- public int getPadBits() {
- return padBits;
- }
-
-
- /** @return the value of the bit string as an int (truncating if necessary) */
- public int intValue() {
- int value = 0;
-
- for (int i = 0; i != data.length && i != 4; i++) {
- value |= (data[i] & 0xff) << (8 * i);
- }
-
- return value;
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- byte[] bytes = new byte[getBytes().length + 1];
-
- bytes[0] = (byte) getPadBits();
- System.arraycopy(getBytes(), 0, bytes, 1, bytes.length - 1);
-
- out.writeEncoded(BIT_STRING, bytes);
- }
-
- public int hashCode() {
- int value = 0;
-
- for (int i = 0; i != data.length; i++) {
- value ^= (data[i] & 0xff) << (i % 4);
- }
-
- return value;
- }
-
- protected boolean asn1Equals(
- DERObject o) {
- if (!(o instanceof DERBitString)) {
- return false;
- }
-
- DERBitString other = (DERBitString) o;
-
- if (data.length != other.data.length) {
- return false;
- }
-
- for (int i = 0; i != data.length; i++) {
- if (data[i] != other.data[i]) {
- return false;
- }
- }
-
- return (padBits == other.padBits);
- }
-
- public String getString() {
- StringBuffer buf = new StringBuffer("#");
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- ASN1OutputStream aOut = new ASN1OutputStream(bOut);
-
- try {
- aOut.writeObject(this);
- }
- catch (IOException e) {
- throw new RuntimeException("internal error encoding BitString");
- }
-
- byte[] string = bOut.toByteArray();
-
- for (int i = 0; i != string.length; i++) {
- buf.append(table[(string[i] >>> 4) & 0xf]);
- buf.append(table[string[i] & 0xf]);
- }
-
- return buf.toString();
- }
-
- public String toString() {
- return getString();
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBoolean.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBoolean.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBoolean.java
deleted file mode 100644
index e49ec6c..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERBoolean.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public class DERBoolean
- extends ASN1Object {
- byte value;
-
- public static final DERBoolean FALSE = new DERBoolean(false);
- public static final DERBoolean TRUE = new DERBoolean(true);
-
- /**
- * return a boolean from the passed in object.
- *
- * @throws IllegalArgumentException if the object cannot be converted.
- */
- public static DERBoolean getInstance(
- Object obj) {
- if (obj == null || obj instanceof DERBoolean) {
- return (DERBoolean) obj;
- }
-
- if (obj instanceof ASN1OctetString) {
- return new DERBoolean(((ASN1OctetString) obj).getOctets());
- }
-
- if (obj instanceof ASN1TaggedObject) {
- return getInstance(((ASN1TaggedObject) obj).getObject());
- }
-
- throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
- }
-
- /** return a DERBoolean from the passed in boolean. */
- public static DERBoolean getInstance(
- boolean value) {
- return (value ? TRUE : FALSE);
- }
-
- /**
- * return a Boolean from a tagged object.
- *
- * @param obj the tagged object holding the object we want
- * @param explicit true if the object is meant to be explicitly
- * tagged false otherwise.
- * @throws IllegalArgumentException if the tagged object cannot
- * be converted.
- */
- public static DERBoolean getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
- public DERBoolean(
- byte[] value) {
- this.value = value[0];
- }
-
- public DERBoolean(
- boolean value) {
- this.value = (value) ? (byte) 0xff : (byte) 0;
- }
-
- public boolean isTrue() {
- return (value != 0);
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- byte[] bytes = new byte[1];
-
- bytes[0] = value;
-
- out.writeEncoded(BOOLEAN, bytes);
- }
-
- protected boolean asn1Equals(
- DERObject o) {
- if ((o == null) || !(o instanceof DERBoolean)) {
- return false;
- }
-
- return (value == ((DERBoolean) o).value);
- }
-
- public int hashCode() {
- return value;
- }
-
-
- public String toString() {
- return (value != 0) ? "TRUE" : "FALSE";
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSequence.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSequence.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSequence.java
deleted file mode 100644
index f7cad53..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSequence.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Enumeration;
-
-/** @deprecated use DERSequence. */
-public class DERConstructedSequence
- extends ASN1Sequence {
- public void addObject(
- DEREncodable obj) {
- super.addObject(obj);
- }
-
- public int getSize() {
- return size();
- }
-
- /*
- * A note on the implementation:
- * <p>
- * As DER requires the constructed, definite-length model to
- * be used for structured types, this varies slightly from the
- * ASN.1 descriptions given. Rather than just outputing SEQUENCE,
- * we also have to specify CONSTRUCTED, and the objects length.
- */
- void encode(
- DEROutputStream out)
- throws IOException {
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- DEROutputStream dOut = new DEROutputStream(bOut);
- Enumeration e = this.getObjects();
-
- while (e.hasMoreElements()) {
- Object obj = e.nextElement();
-
- dOut.writeObject(obj);
- }
-
- dOut.close();
-
- byte[] bytes = bOut.toByteArray();
-
- out.writeEncoded(SEQUENCE | CONSTRUCTED, bytes);
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSet.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSet.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSet.java
deleted file mode 100644
index 50adf8e..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERConstructedSet.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Enumeration;
-
-/** @deprecated use DERSet */
-public class DERConstructedSet
- extends ASN1Set {
- public DERConstructedSet() {
- }
-
- /** @param obj - a single object that makes up the set. */
- public DERConstructedSet(
- DEREncodable obj) {
- this.addObject(obj);
- }
-
- /** @param v - a vector of objects making up the set. */
- public DERConstructedSet(
- DEREncodableVector v) {
- for (int i = 0; i != v.size(); i++) {
- this.addObject(v.get(i));
- }
- }
-
- public void addObject(
- DEREncodable obj) {
- super.addObject(obj);
- }
-
- public int getSize() {
- return size();
- }
-
- /*
- * A note on the implementation:
- * <p>
- * As DER requires the constructed, definite-length model to
- * be used for structured types, this varies slightly from the
- * ASN.1 descriptions given. Rather than just outputing SET,
- * we also have to specify CONSTRUCTED, and the objects length.
- */
- void encode(
- DEROutputStream out)
- throws IOException {
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
- DEROutputStream dOut = new DEROutputStream(bOut);
- Enumeration e = this.getObjects();
-
- while (e.hasMoreElements()) {
- Object obj = e.nextElement();
-
- dOut.writeObject(obj);
- }
-
- dOut.close();
-
- byte[] bytes = bOut.toByteArray();
-
- out.writeEncoded(SET | CONSTRUCTED, bytes);
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodable.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodable.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodable.java
deleted file mode 100644
index cbaebf9..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodable.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-public interface DEREncodable {
- public DERObject getDERObject();
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodableVector.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodableVector.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodableVector.java
deleted file mode 100644
index d441a44..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREncodableVector.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.util.Vector;
-
-/**
- * a general class for building up a vector of DER encodable objects -
- * this will eventually be superceded by ASN1EncodableVector so you should
- * use that class in preference.
- */
-public class DEREncodableVector {
- private Vector v = new Vector();
-
- /** @deprecated use ASN1EncodableVector instead. */
- public DEREncodableVector() {
-
- }
-
- public void add(
- DEREncodable obj) {
- v.addElement(obj);
- }
-
- public DEREncodable get(
- int i) {
- return (DEREncodable) v.elementAt(i);
- }
-
- public int size() {
- return v.size();
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREnumerated.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREnumerated.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREnumerated.java
deleted file mode 100644
index faacf13..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DEREnumerated.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.math.BigInteger;
-
-public class DEREnumerated
- extends ASN1Object {
- byte[] bytes;
-
- /**
- * return an integer from the passed in object
- *
- * @throws IllegalArgumentException if the object cannot be converted.
- */
- public static DEREnumerated getInstance(
- Object obj) {
- if (obj == null || obj instanceof DEREnumerated) {
- return (DEREnumerated) obj;
- }
-
- if (obj instanceof ASN1OctetString) {
- return new DEREnumerated(((ASN1OctetString) obj).getOctets());
- }
-
- if (obj instanceof ASN1TaggedObject) {
- return getInstance(((ASN1TaggedObject) obj).getObject());
- }
-
- throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
- }
-
- /**
- * return an Enumerated from a tagged object.
- *
- * @param obj the tagged object holding the object we want
- * @param explicit true if the object is meant to be explicitly
- * tagged false otherwise.
- * @throws IllegalArgumentException if the tagged object cannot
- * be converted.
- */
- public static DEREnumerated getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
- public DEREnumerated(
- int value) {
- bytes = BigInteger.valueOf(value).toByteArray();
- }
-
- public DEREnumerated(
- BigInteger value) {
- bytes = value.toByteArray();
- }
-
- public DEREnumerated(
- byte[] bytes) {
- this.bytes = bytes;
- }
-
- public BigInteger getValue() {
- return new BigInteger(bytes);
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- out.writeEncoded(ENUMERATED, bytes);
- }
-
- boolean asn1Equals(
- DERObject o) {
- if (!(o instanceof DEREnumerated)) {
- return false;
- }
-
- DEREnumerated other = (DEREnumerated) o;
-
- if (bytes.length != other.bytes.length) {
- return false;
- }
-
- for (int i = 0; i != bytes.length; i++) {
- if (bytes[i] != other.bytes[i]) {
- return false;
- }
- }
-
- return true;
- }
-
- public int hashCode() {
- return this.getValue().hashCode();
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralString.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralString.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralString.java
deleted file mode 100644
index d571a1d..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralString.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public class DERGeneralString
- extends ASN1Object implements DERString {
- private String string;
-
- public static DERGeneralString getInstance(
- Object obj) {
- if (obj == null || obj instanceof DERGeneralString) {
- return (DERGeneralString) obj;
- }
- if (obj instanceof ASN1OctetString) {
- return new DERGeneralString(((ASN1OctetString) obj).getOctets());
- }
- if (obj instanceof ASN1TaggedObject) {
- return getInstance(((ASN1TaggedObject) obj).getObject());
- }
- throw new IllegalArgumentException("illegal object in getInstance: "
- + obj.getClass().getName());
- }
-
- public static DERGeneralString getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
- public DERGeneralString(byte[] string) {
- char[] cs = new char[string.length];
- for (int i = 0; i != cs.length; i++) {
- cs[i] = (char) (string[i] & 0xff);
- }
- this.string = new String(cs);
- }
-
- public DERGeneralString(String string) {
- this.string = string;
- }
-
- public String getString() {
- return string;
- }
-
- public String toString() {
- return string;
- }
-
- public byte[] getOctets() {
- char[] cs = string.toCharArray();
- byte[] bs = new byte[cs.length];
- for (int i = 0; i != cs.length; i++) {
- bs[i] = (byte) cs[i];
- }
- return bs;
- }
-
- void encode(DEROutputStream out)
- throws IOException {
- out.writeEncoded(GENERAL_STRING, this.getOctets());
- }
-
- public int hashCode() {
- return this.getString().hashCode();
- }
-
- boolean asn1Equals(DERObject o) {
- if (!(o instanceof DERGeneralString)) {
- return false;
- }
- DERGeneralString s = (DERGeneralString) o;
- return this.getString().equals(s.getString());
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralizedTime.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralizedTime.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralizedTime.java
deleted file mode 100644
index 0e2de28..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGeneralizedTime.java
+++ /dev/null
@@ -1,242 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.SimpleTimeZone;
-import java.util.TimeZone;
-
-/** Generalized time object. */
-public class DERGeneralizedTime
- extends ASN1Object {
- String time;
-
- /**
- * return a generalized time from the passed in object
- *
- * @throws IllegalArgumentException if the object cannot be converted.
- */
- public static DERGeneralizedTime getInstance(
- Object obj) {
- if (obj == null || obj instanceof DERGeneralizedTime) {
- return (DERGeneralizedTime) obj;
- }
-
- if (obj instanceof ASN1OctetString) {
- return new DERGeneralizedTime(((ASN1OctetString) obj).getOctets());
- }
-
- throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
- }
-
- /**
- * return a Generalized Time object from a tagged object.
- *
- * @param obj the tagged object holding the object we want
- * @param explicit true if the object is meant to be explicitly
- * tagged false otherwise.
- * @throws IllegalArgumentException if the tagged object cannot
- * be converted.
- */
- public static DERGeneralizedTime getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
- /**
- * The correct format for this is YYYYMMDDHHMMSS[.f]Z, or without the Z
- * for local time, or Z+-HHMM on the end, for difference between local
- * time and UTC time. The fractional second amount f must consist of at
- * least one number with trailing zeroes removed.
- *
- * @param time the time string.
- * @throws IllegalArgumentException if String is an illegal format.
- */
- public DERGeneralizedTime(
- String time) {
- this.time = time;
- try {
- this.getDate();
- }
- catch (ParseException e) {
- throw new IllegalArgumentException("invalid date string: " + e.getMessage());
- }
- }
-
- /** base constructer from a java.util.date object */
- public DERGeneralizedTime(
- Date time) {
- SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMddHHmmss'Z'");
-
- dateF.setTimeZone(new SimpleTimeZone(0, "Z"));
-
- this.time = dateF.format(time);
- }
-
- DERGeneralizedTime(
- byte[] bytes) {
- //
- // explicitly convert to characters
- //
- char[] dateC = new char[bytes.length];
-
- for (int i = 0; i != dateC.length; i++) {
- dateC[i] = (char) (bytes[i] & 0xff);
- }
-
- this.time = new String(dateC);
- }
-
- /**
- * Return the time.
- *
- * @return The time string as it appeared in the encoded object.
- */
- public String getTimeString() {
- return time;
- }
-
- /**
- * return the time - always in the form of
- * YYYYMMDDhhmmssGMT(+hh:mm|-hh:mm).
- * <p/>
- * Normally in a certificate we would expect "Z" rather than "GMT",
- * however adding the "GMT" means we can just use:
- * <pre>
- * dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
- * </pre>
- * To read in the time and get a date which is compatible with our local
- * time zone.
- */
- public String getTime() {
- //
- // standardise the format.
- //
- if (time.charAt(time.length() - 1) == 'Z') {
- return time.substring(0, time.length() - 1) + "GMT+00:00";
- } else {
- int signPos = time.length() - 5;
- char sign = time.charAt(signPos);
- if (sign == '-' || sign == '+') {
- return time.substring(0, signPos)
- + "GMT"
- + time.substring(signPos, signPos + 3)
- + ":"
- + time.substring(signPos + 3);
- } else {
- signPos = time.length() - 3;
- sign = time.charAt(signPos);
- if (sign == '-' || sign == '+') {
- return time.substring(0, signPos)
- + "GMT"
- + time.substring(signPos)
- + ":00";
- }
- }
- }
- return time + calculateGMTOffset();
- }
-
- private String calculateGMTOffset() {
- String sign = "+";
- TimeZone timeZone = TimeZone.getDefault();
- int offset = timeZone.getRawOffset();
- if (offset < 0) {
- sign = "-";
- offset = -offset;
- }
- int hours = offset / (60 * 60 * 1000);
- int minutes = (offset - (hours * 60 * 60 * 1000)) / (60 * 1000);
-
- try {
- if (timeZone.useDaylightTime() && timeZone.inDaylightTime(this.getDate())) {
- hours += sign.equals("+") ? 1 : -1;
- }
- }
- catch (ParseException e) {
- // we'll do our best and ignore daylight savings
- }
-
- return "GMT" + sign + convert(hours) + ":" + convert(minutes);
- }
-
- private String convert(int time) {
- if (time < 10) {
- return "0" + time;
- }
-
- return Integer.toString(time);
- }
-
- public Date getDate()
- throws ParseException {
- SimpleDateFormat dateF;
- String d = time;
-
- if (time.endsWith("Z")) {
- if (hasFractionalSeconds()) {
- dateF = new SimpleDateFormat("yyyyMMddHHmmss.SSSS'Z'");
- } else {
- dateF = new SimpleDateFormat("yyyyMMddHHmmss'Z'");
- }
-
- dateF.setTimeZone(new SimpleTimeZone(0, "Z"));
- } else if (time.indexOf('-') > 0 || time.indexOf('+') > 0) {
- d = this.getTime();
- if (hasFractionalSeconds()) {
- dateF = new SimpleDateFormat("yyyyMMddHHmmss.SSSSz");
- } else {
- dateF = new SimpleDateFormat("yyyyMMddHHmmssz");
- }
-
- dateF.setTimeZone(new SimpleTimeZone(0, "Z"));
- } else {
- if (hasFractionalSeconds()) {
- dateF = new SimpleDateFormat("yyyyMMddHHmmss.SSSS");
- } else {
- dateF = new SimpleDateFormat("yyyyMMddHHmmss");
- }
-
- dateF.setTimeZone(new SimpleTimeZone(0, TimeZone.getDefault().getID()));
- }
-
- return dateF.parse(d);
- }
-
- private boolean hasFractionalSeconds() {
- return time.indexOf('.') == 14;
- }
-
- private byte[] getOctets() {
- char[] cs = time.toCharArray();
- byte[] bs = new byte[cs.length];
-
- for (int i = 0; i != cs.length; i++) {
- bs[i] = (byte) cs[i];
- }
-
- return bs;
- }
-
-
- void encode(
- DEROutputStream out)
- throws IOException {
- out.writeEncoded(GENERALIZED_TIME, this.getOctets());
- }
-
- boolean asn1Equals(
- DERObject o) {
- if (!(o instanceof DERGeneralizedTime)) {
- return false;
- }
-
- return time.equals(((DERGeneralizedTime) o).time);
- }
-
- public int hashCode() {
- return time.hashCode();
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGenerator.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGenerator.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGenerator.java
deleted file mode 100644
index 359d931..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERGenerator.java
+++ /dev/null
@@ -1,108 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public abstract class DERGenerator
- extends ASN1Generator {
- private boolean _tagged = false;
- private boolean _isExplicit;
- private int _tagNo;
-
- protected DERGenerator(
- OutputStream out) {
- super(out);
- }
-
- public DERGenerator(
- OutputStream out,
- int tagNo,
- boolean isExplicit) {
- super(out);
-
- _tagged = true;
- _isExplicit = isExplicit;
- _tagNo = tagNo;
- }
-
- private void writeLength(
- OutputStream out,
- int length)
- throws IOException {
- if (length > 127) {
- int size = 1;
- int val = length;
-
- while ((val >>>= 8) != 0) {
- size++;
- }
-
- out.write((byte) (size | 0x80));
-
- for (int i = (size - 1) * 8; i >= 0; i -= 8) {
- out.write((byte) (length >> i));
- }
- } else {
- out.write((byte) length);
- }
- }
-
- void writeDEREncoded(
- OutputStream out,
- int tag,
- byte[] bytes)
- throws IOException {
- out.write(tag);
- writeLength(out, bytes.length);
- out.write(bytes);
- }
-
- void writeDEREncoded(
- int tag,
- byte[] bytes)
- throws IOException {
- if (_tagged) {
- int tagNum = _tagNo | DERTags.TAGGED;
-
- if (_isExplicit) {
- int newTag = _tagNo | DERTags.CONSTRUCTED | DERTags.TAGGED;
-
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-
- writeDEREncoded(bOut, tag, bytes);
-
- writeDEREncoded(_out, newTag, bOut.toByteArray());
- } else {
- if ((tag & DERTags.CONSTRUCTED) != 0) {
- writeDEREncoded(_out, tagNum | DERTags.CONSTRUCTED, bytes);
- } else {
- writeDEREncoded(_out, tagNum, bytes);
- }
- }
- } else {
- writeDEREncoded(_out, tag, bytes);
- }
- }
-
- void writeDEREncoded(
- OutputStream out,
- int tag,
- InputStream in)
- throws IOException {
- out.write(tag);
-
- ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-
- int b = 0;
- while ((b = in.read()) >= 0) {
- bOut.write(b);
- }
-
- byte[] bytes = bOut.toByteArray();
-
- writeLength(out, bytes.length);
- out.write(bytes);
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERIA5String.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERIA5String.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERIA5String.java
deleted file mode 100644
index 53d1abf..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERIA5String.java
+++ /dev/null
@@ -1,142 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-/** DER IA5String object - this is an ascii string. */
-public class DERIA5String
- extends ASN1Object
- implements DERString {
- String string;
-
- /**
- * return a IA5 string from the passed in object
- *
- * @throws IllegalArgumentException if the object cannot be converted.
- */
- public static DERIA5String getInstance(
- Object obj) {
- if (obj == null || obj instanceof DERIA5String) {
- return (DERIA5String) obj;
- }
-
- if (obj instanceof ASN1OctetString) {
- return new DERIA5String(((ASN1OctetString) obj).getOctets());
- }
-
- if (obj instanceof ASN1TaggedObject) {
- return getInstance(((ASN1TaggedObject) obj).getObject());
- }
-
- throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
- }
-
- /**
- * return an IA5 String from a tagged object.
- *
- * @param obj the tagged object holding the object we want
- * @param explicit true if the object is meant to be explicitly
- * tagged false otherwise.
- * @throws IllegalArgumentException if the tagged object cannot
- * be converted.
- */
- public static DERIA5String getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
- /** basic constructor - with bytes. */
- public DERIA5String(
- byte[] string) {
- char[] cs = new char[string.length];
-
- for (int i = 0; i != cs.length; i++) {
- cs[i] = (char) (string[i] & 0xff);
- }
-
- this.string = new String(cs);
- }
-
- /** basic constructor - without validation. */
- public DERIA5String(
- String string) {
- this(string, false);
- }
-
- /**
- * Constructor with optional validation.
- *
- * @param string the base string to wrap.
- * @param validate whether or not to check the string.
- * @throws IllegalArgumentException if validate is true and the string
- * contains characters that should not be in an IA5String.
- */
- public DERIA5String(
- String string,
- boolean validate) {
- if (validate && !isIA5String(string)) {
- throw new IllegalArgumentException("string contains illegal characters");
- }
-
- this.string = string;
- }
-
- public String getString() {
- return string;
- }
-
- public String toString() {
- return string;
- }
-
- public byte[] getOctets() {
- char[] cs = string.toCharArray();
- byte[] bs = new byte[cs.length];
-
- for (int i = 0; i != cs.length; i++) {
- bs[i] = (byte) cs[i];
- }
-
- return bs;
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- out.writeEncoded(IA5_STRING, this.getOctets());
- }
-
- public int hashCode() {
- return this.getString().hashCode();
- }
-
- boolean asn1Equals(
- DERObject o) {
- if (!(o instanceof DERIA5String)) {
- return false;
- }
-
- DERIA5String s = (DERIA5String) o;
-
- return this.getString().equals(s.getString());
- }
-
- /**
- * return true if the passed in String can be represented without
- * loss as an IA5String, false otherwise.
- *
- * @return true if in printable set, false otherwise.
- */
- public static boolean isIA5String(
- String str) {
- for (int i = str.length() - 1; i >= 0; i--) {
- char ch = str.charAt(i);
-
- if (ch > 0x007f) {
- return false;
- }
- }
-
- return true;
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInputStream.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInputStream.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInputStream.java
deleted file mode 100644
index 5d35bd3..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInputStream.java
+++ /dev/null
@@ -1,237 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayInputStream;
-import java.io.EOFException;
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-/**
- * Don't use this class. It will eventually disappear, use ASN1InputStream.
- * <br>
- * This class is scheduled for removal.
- *
- * @deprecated use ASN1InputStream
- */
-public class DERInputStream
- extends FilterInputStream implements DERTags {
- /** @deprecated use ASN1InputStream */
- public DERInputStream(
- InputStream is) {
- super(is);
- }
-
- protected int readLength()
- throws IOException {
- int length = read();
- if (length < 0) {
- throw new IOException("EOF found when length expected");
- }
-
- if (length == 0x80) {
- return -1; // indefinite-length encoding
- }
-
- if (length > 127) {
- int size = length & 0x7f;
-
- if (size > 4) {
- throw new IOException("DER length more than 4 bytes");
- }
-
- length = 0;
- for (int i = 0; i < size; i++) {
- int next = read();
-
- if (next < 0) {
- throw new IOException("EOF found reading length");
- }
-
- length = (length << 8) + next;
- }
-
- if (length < 0) {
- throw new IOException("corrupted stream - negative length found");
- }
- }
-
- return length;
- }
-
- protected void readFully(
- byte[] bytes)
- throws IOException {
- int left = bytes.length;
-
- if (left == 0) {
- return;
- }
-
- while (left > 0) {
- int l = read(bytes, bytes.length - left, left);
-
- if (l < 0) {
- throw new EOFException("unexpected end of stream");
- }
-
- left -= l;
- }
- }
-
- /**
- * build an object given its tag and a byte stream to construct it
- * from.
- */
- protected DERObject buildObject(
- int tag,
- byte[] bytes)
- throws IOException {
- switch (tag) {
- case NULL:
- return null;
- case SEQUENCE | CONSTRUCTED:
- ByteArrayInputStream bIn = new ByteArrayInputStream(bytes);
- BERInputStream dIn = new BERInputStream(bIn);
- DERConstructedSequence seq = new DERConstructedSequence();
-
- try {
- for (; ;) {
- DERObject obj = dIn.readObject();
-
- seq.addObject(obj);
- }
- }
- catch (EOFException ex) {
- return seq;
- }
- case SET | CONSTRUCTED:
- bIn = new ByteArrayInputStream(bytes);
- dIn = new BERInputStream(bIn);
-
- ASN1EncodableVector v = new ASN1EncodableVector();
-
- try {
- for (; ;) {
- DERObject obj = dIn.readObject();
-
- v.add(obj);
- }
- }
- catch (EOFException ex) {
- return new DERConstructedSet(v);
- }
- case BOOLEAN:
- return new DERBoolean(bytes);
- case INTEGER:
- return new DERInteger(bytes);
- case ENUMERATED:
- return new DEREnumerated(bytes);
- case OBJECT_IDENTIFIER:
- return new DERObjectIdentifier(bytes);
- case BIT_STRING:
- int padBits = bytes[0];
- byte[] data = new byte[bytes.length - 1];
-
- System.arraycopy(bytes, 1, data, 0, bytes.length - 1);
-
- return new DERBitString(data, padBits);
- case UTF8_STRING:
- return new DERUTF8String(bytes);
- case PRINTABLE_STRING:
- return new DERPrintableString(bytes);
- case IA5_STRING:
- return new DERIA5String(bytes);
- case T61_STRING:
- return new DERT61String(bytes);
- case VISIBLE_STRING:
- return new DERVisibleString(bytes);
- case UNIVERSAL_STRING:
- return new DERUniversalString(bytes);
- case GENERAL_STRING:
- return new DERGeneralString(bytes);
- case BMP_STRING:
- return new DERBMPString(bytes);
- case OCTET_STRING:
- return new DEROctetString(bytes);
- case UTC_TIME:
- return new DERUTCTime(bytes);
- case GENERALIZED_TIME:
- return new DERGeneralizedTime(bytes);
- default:
- //
- // with tagged object tag number is bottom 5 bits
- //
- if ((tag & TAGGED) != 0) {
- if ((tag & 0x1f) == 0x1f) {
- throw new IOException("unsupported high tag encountered");
- }
-
- if (bytes.length == 0) // empty tag!
- {
- if ((tag & CONSTRUCTED) == 0) {
- return new DERTaggedObject(false, tag & 0x1f, new DERNull());
- } else {
- return new DERTaggedObject(false, tag & 0x1f, new DERConstructedSequence());
- }
- }
-
- //
- // simple type - implicit... return an octet string
- //
- if ((tag & CONSTRUCTED) == 0) {
- return new DERTaggedObject(false, tag & 0x1f, new DEROctetString(bytes));
- }
-
- bIn = new ByteArrayInputStream(bytes);
- dIn = new BERInputStream(bIn);
-
- DEREncodable dObj = dIn.readObject();
-
- //
- // explicitly tagged (probably!) - if it isn't we'd have to
- // tell from the context
- //
- if (dIn.available() == 0) {
- return new DERTaggedObject(tag & 0x1f, dObj);
- }
-
- //
- // another implicit object, we'll create a sequence...
- //
- seq = new DERConstructedSequence();
-
- seq.addObject(dObj);
-
- try {
- for (; ;) {
- dObj = dIn.readObject();
-
- seq.addObject(dObj);
- }
- }
- catch (EOFException ex) {
- // ignore --
- }
-
- return new DERTaggedObject(false, tag & 0x1f, seq);
- }
-
- return new DERUnknownTag(tag, bytes);
- }
- }
-
- public DERObject readObject()
- throws IOException {
- int tag = read();
- if (tag == -1) {
- throw new EOFException();
- }
-
- int length = readLength();
- byte[] bytes = new byte[length];
-
- readFully(bytes);
-
- return buildObject(tag, bytes);
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInteger.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInteger.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInteger.java
deleted file mode 100644
index 4265efe..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/DERInteger.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.math.BigInteger;
-
-public class DERInteger
- extends ASN1Object {
- byte[] bytes;
-
- /**
- * return an integer from the passed in object
- *
- * @throws IllegalArgumentException if the object cannot be converted.
- */
- public static DERInteger getInstance(
- Object obj) {
- if (obj == null || obj instanceof DERInteger) {
- return (DERInteger) obj;
- }
-
- if (obj instanceof ASN1OctetString) {
- return new DERInteger(((ASN1OctetString) obj).getOctets());
- }
-
- if (obj instanceof ASN1TaggedObject) {
- return getInstance(((ASN1TaggedObject) obj).getObject());
- }
-
- throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
- }
-
- /**
- * return an Integer from a tagged object.
- *
- * @param obj the tagged object holding the object we want
- * @param explicit true if the object is meant to be explicitly
- * tagged false otherwise.
- * @throws IllegalArgumentException if the tagged object cannot
- * be converted.
- */
- public static DERInteger getInstance(
- ASN1TaggedObject obj,
- boolean explicit) {
- return getInstance(obj.getObject());
- }
-
- public DERInteger(
- int value) {
- bytes = BigInteger.valueOf(value).toByteArray();
- }
-
- public DERInteger(
- BigInteger value) {
- bytes = value.toByteArray();
- }
-
- public DERInteger(
- byte[] bytes) {
- this.bytes = bytes;
- }
-
- public BigInteger getValue() {
- return new BigInteger(bytes);
- }
-
- /**
- * in some cases positive values get crammed into a space,
- * that's not quite big enough...
- */
- public BigInteger getPositiveValue() {
- return new BigInteger(1, bytes);
- }
-
- void encode(
- DEROutputStream out)
- throws IOException {
- out.writeEncoded(INTEGER, bytes);
- }
-
- public int hashCode() {
- int value = 0;
-
- for (int i = 0; i != bytes.length; i++) {
- value ^= (bytes[i] & 0xff) << (i % 4);
- }
-
- return value;
- }
-
- boolean asn1Equals(
- DERObject o) {
- if (!(o instanceof DERInteger)) {
- return false;
- }
-
- DERInteger other = (DERInteger) o;
-
- if (bytes.length != other.bytes.length) {
- return false;
- }
-
- for (int i = 0; i != bytes.length; i++) {
- if (bytes[i] != other.bytes[i]) {
- return false;
- }
- }
-
- return true;
- }
-
- public String toString() {
- return getValue().toString();
- }
-}