directory-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dran...@apache.org
Subject [3/4] directory-kerberos git commit: Replaced the ASN1 parser
Date Sun, 25 Jan 2015 04:13:35 GMT
Replaced the ASN1 parser


Project: http://git-wip-us.apache.org/repos/asf/directory-kerberos/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerberos/commit/e95b711d
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerberos/tree/e95b711d
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerberos/diff/e95b711d

Branch: refs/heads/cleanpki
Commit: e95b711d8bbc74c49ccf872fbd39646176a5fe00
Parents: f6a5c7f
Author: Drankye <drankye@gmail.com>
Authored: Sun Jan 25 08:53:07 2015 +0800
Committer: Drankye <drankye@gmail.com>
Committed: Sun Jan 25 08:53:07 2015 +0800

----------------------------------------------------------------------
 .../apache/commons/ssl/Asn1PkcsStructure.java   |   9 +-
 .../org/apache/commons/ssl/Asn1PkcsUtil.java    |   2 +-
 .../org/apache/commons/ssl/KeyStoreBuilder.java |  72 ++--
 .../java/org/apache/commons/ssl/PKCS8Key.java   |  93 ++--
 .../org/apache/commons/ssl/asn1/ASN1Choice.java |  13 -
 .../apache/commons/ssl/asn1/ASN1Encodable.java  |  74 ----
 .../commons/ssl/asn1/ASN1EncodableVector.java   |  10 -
 .../apache/commons/ssl/asn1/ASN1Generator.java  |  13 -
 .../commons/ssl/asn1/ASN1InputStream.java       | 420 -------------------
 .../org/apache/commons/ssl/asn1/ASN1Null.java   |  30 --
 .../org/apache/commons/ssl/asn1/ASN1Object.java |  34 --
 .../commons/ssl/asn1/ASN1ObjectParser.java      |  55 ---
 .../commons/ssl/asn1/ASN1OctetString.java       | 137 ------
 .../commons/ssl/asn1/ASN1OctetStringParser.java |   8 -
 .../commons/ssl/asn1/ASN1OutputStream.java      |  26 --
 .../apache/commons/ssl/asn1/ASN1Sequence.java   | 183 --------
 .../commons/ssl/asn1/ASN1SequenceParser.java    |   9 -
 .../org/apache/commons/ssl/asn1/ASN1Set.java    | 281 -------------
 .../apache/commons/ssl/asn1/ASN1SetParser.java  |   9 -
 .../commons/ssl/asn1/ASN1StreamParser.java      | 193 ---------
 .../commons/ssl/asn1/ASN1TaggedObject.java      | 177 --------
 .../ssl/asn1/ASN1TaggedObjectParser.java        |  11 -
 .../ssl/asn1/BERConstructedOctetString.java     | 137 ------
 .../ssl/asn1/BERConstructedSequence.java        |  29 --
 .../apache/commons/ssl/asn1/BERGenerator.java   |  82 ----
 .../apache/commons/ssl/asn1/BERInputStream.java | 179 --------
 .../org/apache/commons/ssl/asn1/BERNull.java    |  22 -
 .../ssl/asn1/BEROctetStringGenerator.java       |  86 ----
 .../commons/ssl/asn1/BEROctetStringParser.java  |  36 --
 .../commons/ssl/asn1/BEROutputStream.java       |  26 --
 .../apache/commons/ssl/asn1/BERSequence.java    |  44 --
 .../commons/ssl/asn1/BERSequenceGenerator.java  |  36 --
 .../commons/ssl/asn1/BERSequenceParser.java     |  21 -
 .../org/apache/commons/ssl/asn1/BERSet.java     |  51 ---
 .../apache/commons/ssl/asn1/BERSetParser.java   |  21 -
 .../commons/ssl/asn1/BERTaggedObject.java       |  94 -----
 .../commons/ssl/asn1/BERTaggedObjectParser.java | 118 ------
 .../ssl/asn1/ConstructedOctetStream.java        |  92 ----
 .../ssl/asn1/DERApplicationSpecific.java        | 143 -------
 .../apache/commons/ssl/asn1/DERBMPString.java   | 104 -----
 .../apache/commons/ssl/asn1/DERBitString.java   | 245 -----------
 .../org/apache/commons/ssl/asn1/DERBoolean.java |  96 -----
 .../ssl/asn1/DERConstructedSequence.java        |  46 --
 .../commons/ssl/asn1/DERConstructedSet.java     |  63 ---
 .../apache/commons/ssl/asn1/DEREncodable.java   |   5 -
 .../commons/ssl/asn1/DEREncodableVector.java    |  31 --
 .../apache/commons/ssl/asn1/DEREnumerated.java  |  96 -----
 .../commons/ssl/asn1/DERGeneralString.java      |  75 ----
 .../commons/ssl/asn1/DERGeneralizedTime.java    | 242 -----------
 .../apache/commons/ssl/asn1/DERGenerator.java   | 108 -----
 .../apache/commons/ssl/asn1/DERIA5String.java   | 142 -------
 .../apache/commons/ssl/asn1/DERInputStream.java | 237 -----------
 .../org/apache/commons/ssl/asn1/DERInteger.java | 114 -----
 .../org/apache/commons/ssl/asn1/DERNull.java    |  20 -
 .../commons/ssl/asn1/DERNumericString.java      | 148 -------
 .../org/apache/commons/ssl/asn1/DERObject.java  |  18 -
 .../commons/ssl/asn1/DERObjectIdentifier.java   | 245 -----------
 .../apache/commons/ssl/asn1/DEROctetString.java |  23 -
 .../commons/ssl/asn1/DEROutputStream.java       |  73 ----
 .../commons/ssl/asn1/DERPrintableString.java    | 172 --------
 .../apache/commons/ssl/asn1/DERSequence.java    |  62 ---
 .../commons/ssl/asn1/DERSequenceGenerator.java  |  39 --
 .../org/apache/commons/ssl/asn1/DERSet.java     |  76 ----
 .../org/apache/commons/ssl/asn1/DERString.java  |   6 -
 .../apache/commons/ssl/asn1/DERT61String.java   | 103 -----
 .../commons/ssl/asn1/DERTaggedObject.java       |  74 ----
 .../org/apache/commons/ssl/asn1/DERTags.java    |  35 --
 .../org/apache/commons/ssl/asn1/DERUTCTime.java | 214 ----------
 .../apache/commons/ssl/asn1/DERUTF8String.java  |  83 ----
 .../commons/ssl/asn1/DERUniversalString.java    | 100 -----
 .../apache/commons/ssl/asn1/DERUnknownTag.java  |  71 ----
 .../commons/ssl/asn1/DERVisibleString.java      | 103 -----
 .../ssl/asn1/DefiniteLengthInputStream.java     |  83 ----
 .../ssl/asn1/IndefiniteLengthInputStream.java   |  98 -----
 .../commons/ssl/asn1/LimitedInputStream.java    |  23 -
 .../apache/commons/ssl/asn1/OIDTokenizer.java   |  42 --
 .../org/apache/commons/ssl/asn1/Strings.java    | 195 ---------
 .../org/apache/commons/ssl/TestPKCS8Key.java    |  21 +-
 .../org/apache/kerby/asn1/type/Asn1Null.java    |   2 +-
 .../org/apache/kerby/asn1/type/Asn1Simple.java  |   2 +-
 80 files changed, 81 insertions(+), 6730 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsStructure.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsStructure.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsStructure.java
index f183ae6..37f30a9 100644
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsStructure.java
+++ b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsStructure.java
@@ -1,9 +1,4 @@
 /*
- * $HeadURL: http://juliusdavies.ca/svn/not-yet-commons-ssl/tags/commons-ssl-0.3.16/src/java/org/apache/commons/ssl/ASN1Structure.java $
- * $Revision: 121 $
- * $Date: 2007-11-13 21:26:57 -0800 (Tue, 13 Nov 2007) $
- *
- * ====================================================================
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -20,7 +15,6 @@
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
- * ====================================================================
  *
  * This software consists of voluntary contributions made by many
  * individuals on behalf of the Apache Software Foundation.  For more
@@ -32,6 +26,7 @@
 package org.apache.commons.ssl;
 
 import org.apache.commons.ssl.util.Hex;
+import org.apache.kerby.asn1.type.Asn1BigInteger;
 
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -50,7 +45,7 @@ import java.util.TreeSet;
  * Adapted from not-yet-commons-ssl ASN1Structure
  */
 class Asn1PkcsStructure {
-    List derIntegers = new LinkedList();
+    List<Asn1BigInteger> derIntegers = new LinkedList<Asn1BigInteger>();
     Set oids = new TreeSet();
     String oid1;
     String oid2;

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
index 4cfe0ea..db47c5a 100644
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
+++ b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/Asn1PkcsUtil.java
@@ -100,7 +100,7 @@ public class Asn1PkcsUtil {
         if (obj instanceof Asn1Integer) {
             Asn1Integer dInt = (Asn1Integer) obj;
             if (pkcs8.derIntegers != null) {
-                pkcs8.derIntegers.add(dInt);
+                pkcs8.derIntegers.add(new Asn1BigInteger(dInt.getValue()));
             }
         } else if (obj instanceof Asn1BigInteger) {
             Asn1BigInteger dInt = (Asn1BigInteger) obj;

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/KeyStoreBuilder.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/KeyStoreBuilder.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/KeyStoreBuilder.java
index e9619d1..7d0828b 100644
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/KeyStoreBuilder.java
+++ b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/KeyStoreBuilder.java
@@ -31,26 +31,12 @@
 
 package org.apache.commons.ssl;
 
-import org.apache.commons.ssl.asn1.ASN1EncodableVector;
-import org.apache.commons.ssl.asn1.DERInteger;
-import org.apache.commons.ssl.asn1.DERSequence;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
+import org.apache.kerby.asn1.type.Asn1BigInteger;
+import org.apache.kerby.asn1.type.Asn1Sequence;
+
+import java.io.*;
 import java.math.BigInteger;
-import java.security.GeneralSecurityException;
-import java.security.InvalidKeyException;
-import java.security.Key;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.UnrecoverableKeyException;
+import java.security.*;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
@@ -59,13 +45,7 @@ import java.security.interfaces.DSAParams;
 import java.security.interfaces.DSAPrivateKey;
 import java.security.interfaces.RSAPrivateCrtKey;
 import java.security.interfaces.RSAPublicKey;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
+import java.util.*;
 
 /**
  * Builds Java Key Store files out of pkcs12 files, or out of pkcs8 files +
@@ -632,18 +612,17 @@ public class KeyStoreBuilder {
             byte[] pkcs8DerBytes = null;
             if (key instanceof RSAPrivateCrtKey) {
                 RSAPrivateCrtKey rsa = (RSAPrivateCrtKey) key;
-                ASN1EncodableVector vec = new ASN1EncodableVector();
-                vec.add(new DERInteger(BigInteger.ZERO));
-                vec.add(new DERInteger(rsa.getModulus()));
-                vec.add(new DERInteger(rsa.getPublicExponent()));
-                vec.add(new DERInteger(rsa.getPrivateExponent()));
-                vec.add(new DERInteger(rsa.getPrimeP()));
-                vec.add(new DERInteger(rsa.getPrimeQ()));
-                vec.add(new DERInteger(rsa.getPrimeExponentP()));
-                vec.add(new DERInteger(rsa.getPrimeExponentQ()));
-                vec.add(new DERInteger(rsa.getCrtCoefficient()));
-                DERSequence seq = new DERSequence(vec);
-                byte[] derBytes = PKCS8Key.encode(seq);
+                Asn1Sequence seq = new Asn1Sequence();
+                seq.addItem(new Asn1BigInteger(BigInteger.ZERO));
+                seq.addItem(new Asn1BigInteger(rsa.getModulus()));
+                seq.addItem(new Asn1BigInteger(rsa.getPublicExponent()));
+                seq.addItem(new Asn1BigInteger(rsa.getPrivateExponent()));
+                seq.addItem(new Asn1BigInteger(rsa.getPrimeP()));
+                seq.addItem(new Asn1BigInteger(rsa.getPrimeQ()));
+                seq.addItem(new Asn1BigInteger(rsa.getPrimeExponentP()));
+                seq.addItem(new Asn1BigInteger(rsa.getPrimeExponentQ()));
+                seq.addItem(new Asn1BigInteger(rsa.getCrtCoefficient()));
+                byte[] derBytes = seq.encode();
                 PKCS8Key pkcs8 = new PKCS8Key(derBytes, null);
                 pkcs8DerBytes = pkcs8.getDecryptedBytes();
             } else if (key instanceof DSAPrivateKey) {
@@ -655,15 +634,14 @@ public class KeyStoreBuilder {
                 BigInteger x = dsa.getX();
                 BigInteger y = q.modPow(x, p);
 
-                ASN1EncodableVector vec = new ASN1EncodableVector();
-                vec.add(new DERInteger(BigInteger.ZERO));
-                vec.add(new DERInteger(p));
-                vec.add(new DERInteger(q));
-                vec.add(new DERInteger(g));
-                vec.add(new DERInteger(y));
-                vec.add(new DERInteger(x));
-                DERSequence seq = new DERSequence(vec);
-                byte[] derBytes = PKCS8Key.encode(seq);
+                Asn1Sequence seq = new Asn1Sequence();
+                seq.addItem(new Asn1BigInteger(BigInteger.ZERO));
+                seq.addItem(new Asn1BigInteger(p));
+                seq.addItem(new Asn1BigInteger(q));
+                seq.addItem(new Asn1BigInteger(g));
+                seq.addItem(new Asn1BigInteger(y));
+                seq.addItem(new Asn1BigInteger(x));
+                byte[] derBytes = seq.encode();
                 PKCS8Key pkcs8 = new PKCS8Key(derBytes, null);
                 pkcs8DerBytes = pkcs8.getDecryptedBytes();
             }

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/e95b711d/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/PKCS8Key.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/PKCS8Key.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/PKCS8Key.java
index 9345708..6de244e 100644
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/PKCS8Key.java
+++ b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/PKCS8Key.java
@@ -31,7 +31,7 @@
 
 package org.apache.commons.ssl;
 
-import org.apache.commons.ssl.asn1.*;
+import org.apache.kerby.asn1.type.*;
 
 import javax.crypto.*;
 import javax.crypto.spec.IvParameterSpec;
@@ -899,56 +899,49 @@ public class PKCS8Key {
 
     public static byte[] formatAsPKCS8(byte[] privateKey, String oid,
                                        Asn1PkcsStructure pkcs8) {
-        DERInteger derZero = new DERInteger(BigInteger.ZERO);
-        ASN1EncodableVector outterVec = new ASN1EncodableVector();
-        ASN1EncodableVector innerVec = new ASN1EncodableVector();
-        DEROctetString octetsToAppend;
-        try {
-            DERObjectIdentifier derOID = new DERObjectIdentifier(oid);
-            innerVec.add(derOID);
-            if (DSA_OID.equals(oid)) {
-                if (pkcs8 == null) {
-                    try {
-                        pkcs8 = Asn1PkcsUtil.analyze(privateKey);
-                    }
-                    catch (Exception e) {
-                        throw new RuntimeException("asn1 parse failure " + e);
-                    }
+        Asn1BigInteger derZero = new Asn1BigInteger(BigInteger.ZERO);
+        Asn1Sequence outterSeq = new Asn1Sequence();
+        Asn1Sequence innerSeq = new Asn1Sequence();
+        Asn1OctetString octetsToAppend;
+        Asn1ObjectIdentifier derOID = new Asn1ObjectIdentifier(oid);
+        innerSeq.addItem(derOID);
+        if (DSA_OID.equals(oid)) {
+            if (pkcs8 == null) {
+                try {
+                    pkcs8 = Asn1PkcsUtil.analyze(privateKey);
                 }
-                if (pkcs8.derIntegers == null || pkcs8.derIntegers.size() < 6) {
-                    throw new RuntimeException("invalid DSA key - can't find P, Q, G, X");
+                catch (Exception e) {
+                    throw new RuntimeException("asn1 parse failure " + e);
                 }
-
-                DERInteger[] ints = new DERInteger[pkcs8.derIntegers.size()];
-                pkcs8.derIntegers.toArray(ints);
-                DERInteger p = ints[1];
-                DERInteger q = ints[2];
-                DERInteger g = ints[3];
-                DERInteger x = ints[5];
-
-                byte[] encodedX = encode(x);
-                octetsToAppend = new DEROctetString(encodedX);
-                ASN1EncodableVector pqgVec = new ASN1EncodableVector();
-                pqgVec.add(p);
-                pqgVec.add(q);
-                pqgVec.add(g);
-                DERSequence pqg = new DERSequence(pqgVec);
-                innerVec.add(pqg);
-            } else {
-                innerVec.add(DERNull.INSTANCE);
-                octetsToAppend = new DEROctetString(privateKey);
+            }
+            if (pkcs8.derIntegers == null || pkcs8.derIntegers.size() < 6) {
+                throw new RuntimeException("invalid DSA key - can't find P, Q, G, X");
             }
 
-            DERSequence inner = new DERSequence(innerVec);
-            outterVec.add(derZero);
-            outterVec.add(inner);
-            outterVec.add(octetsToAppend);
-            DERSequence outter = new DERSequence(outterVec);
-            return encode(outter);
-        }
-        catch (IOException ioe) {
-            throw JavaImpl.newRuntimeException(ioe);
+            Asn1BigInteger[] ints = new Asn1BigInteger[pkcs8.derIntegers.size()];
+            pkcs8.derIntegers.toArray(ints);
+            Asn1BigInteger p = ints[1];
+            Asn1BigInteger q = ints[2];
+            Asn1BigInteger g = ints[3];
+            Asn1BigInteger x = ints[5];
+
+            byte[] encodedX = x.encode();
+            octetsToAppend = new Asn1OctetString(encodedX);
+            Asn1Sequence pqgSeq = new Asn1Sequence();
+            pqgSeq.addItem(p);
+            pqgSeq.addItem(q);
+            pqgSeq.addItem(g);
+            innerSeq.addItem(pqgSeq);
+        } else {
+            innerSeq.addItem(Asn1Null.INSTANCE);
+            octetsToAppend = new Asn1OctetString(privateKey);
         }
+
+        outterSeq.addItem(derZero);
+        outterSeq.addItem(innerSeq);
+        outterSeq.addItem(octetsToAppend);
+
+        return outterSeq.encode();
     }
 
     private static boolean allZeroes(byte[] b) {
@@ -960,14 +953,6 @@ public class PKCS8Key {
         return true;
     }
 
-    public static byte[] encode(DEREncodable der) throws IOException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);
-        ASN1OutputStream out = new ASN1OutputStream(baos);
-        out.writeObject(der);
-        out.close();
-        return baos.toByteArray();
-    }
-
     public static void main(String[] args) throws Exception {
         String password = "changeit";
         if (args.length == 0) {

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/ASN1Choice.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Choice.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Choice.java
deleted file mode 100644
index c08485e..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Choice.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-/**
- * Marker interface for CHOICE objects - if you implement this in a role your
- * own object any attempt to tag the object implicitly will convert the tag to
- * an explicit one as the encoding rules require.
- * <p/>
- * If you use this interface your class should also implement the getInstance
- * pattern which takes a tag object and the tagging mode used.
- */
-public interface ASN1Choice {
-    // marker interface
-}

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/ASN1Encodable.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Encodable.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Encodable.java
deleted file mode 100644
index 99900cb..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Encodable.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-
-public abstract class ASN1Encodable
-    implements DEREncodable {
-    public static final String DER = "DER";
-    public static final String BER = "BER";
-
-    public byte[] getEncoded()
-        throws IOException {
-        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-        ASN1OutputStream aOut = new ASN1OutputStream(bOut);
-
-        aOut.writeObject(this);
-
-        return bOut.toByteArray();
-    }
-
-    public byte[] getEncoded(
-        String encoding)
-        throws IOException {
-        if (encoding.equals(DER)) {
-            ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-            DEROutputStream dOut = new DEROutputStream(bOut);
-
-            dOut.writeObject(this);
-
-            return bOut.toByteArray();
-        }
-
-        return this.getEncoded();
-    }
-
-    /**
-     * Return the DER encoding of the object, null if the DER encoding can not be made.
-     *
-     * @return a DER byte array, null otherwise.
-     */
-    public byte[] getDEREncoded() {
-        try {
-            return this.getEncoded(DER);
-        }
-        catch (IOException e) {
-            return null;
-        }
-    }
-
-    public int hashCode() {
-        return this.toASN1Object().hashCode();
-    }
-
-    public boolean equals(
-        Object o) {
-        if (this == o) {
-            return true;
-        }
-
-        if (!(o instanceof DEREncodable)) {
-            return false;
-        }
-
-        DEREncodable other = (DEREncodable) o;
-
-        return this.toASN1Object().equals(other.getDERObject());
-    }
-
-    public DERObject getDERObject() {
-        return this.toASN1Object();
-    }
-
-    public abstract DERObject toASN1Object();
-}

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/ASN1EncodableVector.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1EncodableVector.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1EncodableVector.java
deleted file mode 100644
index b769758..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1EncodableVector.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-/** the parent class for this will eventually disappear. Use this one! */
-public class ASN1EncodableVector
-    extends DEREncodableVector {
-    // migrating from DEREncodeableVector
-    public ASN1EncodableVector() {
-
-    }
-}

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/ASN1Generator.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Generator.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Generator.java
deleted file mode 100644
index b39d994..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Generator.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.OutputStream;
-
-public abstract class ASN1Generator {
-    protected OutputStream _out;
-
-    public ASN1Generator(OutputStream out) {
-        _out = out;
-    }
-
-    public abstract OutputStream getRawOutputStream();
-}

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/ASN1InputStream.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1InputStream.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1InputStream.java
deleted file mode 100644
index e68c231..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1InputStream.java
+++ /dev/null
@@ -1,420 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.EOFException;
-import java.io.FilterInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Vector;
-
-/**
- * a general purpose ASN.1 decoder - note: this class differs from the
- * others in that it returns null after it has read the last object in
- * the stream. If an ASN.1 NULL is encountered a DER/BER Null object is
- * returned.
- */
-public class ASN1InputStream
-    extends FilterInputStream
-    implements DERTags {
-    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;
-        }
-    };
-
-    boolean eofFound = false;
-    int limit = Integer.MAX_VALUE;
-
-    public ASN1InputStream(
-        InputStream is) {
-        super(is);
-    }
-
-    /**
-     * Create an ASN1InputStream based on the input byte array. The length of DER objects in
-     * the stream is automatically limited to the length of the input array.
-     *
-     * @param input array containing ASN.1 encoded data.
-     */
-    public ASN1InputStream(
-        byte[] input) {
-        this(new ByteArrayInputStream(input), input.length);
-    }
-
-    /**
-     * Create an ASN1InputStream where no DER object will be longer than limit.
-     *
-     * @param input stream containing ASN.1 encoded data.
-     * @param limit maximum size of a DER encoded object.
-     */
-    public ASN1InputStream(
-        InputStream input,
-        int limit) {
-        super(input);
-        this.limit = limit;
-    }
-
-    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");
-            }
-
-            if (length >= limit)   // after all we must have read at least 1 byte
-            {
-                throw new IOException("corrupted stream - out of bounds length found");
-            }
-        }
-
-        return length;
-    }
-
-    protected void readFully(
-        byte[] bytes)
-        throws IOException {
-        int left = bytes.length;
-        int len;
-
-        if (left == 0) {
-            return;
-        }
-
-        while ((len = read(bytes, bytes.length - left, left)) > 0) {
-            if ((left -= len) == 0) {
-                return;
-            }
-        }
-
-        if (left != 0) {
-            throw new EOFException("EOF encountered in middle of object");
-        }
-    }
-
-    /** build an object given its tag and the number of bytes to construct it from. */
-    protected DERObject buildObject(
-        int tag,
-        int tagNo,
-        int length)
-        throws IOException {
-        if ((tag & APPLICATION) != 0) {
-            return new DERApplicationSpecific(tagNo, readDefiniteLengthFully(length));
-        }
-
-        boolean isConstructed = (tag & CONSTRUCTED) != 0;
-
-        if (isConstructed) {
-            switch (tag) {
-                case SEQUENCE | CONSTRUCTED:
-                    return new DERSequence(buildDerEncodableVector(length));
-                case SET | CONSTRUCTED:
-                    return new DERSet(buildDerEncodableVector(length), false);
-                case OCTET_STRING | CONSTRUCTED:
-                    return buildDerConstructedOctetString(length);
-                default: {
-                    //
-                    // with tagged object tag number is bottom 5 bits
-                    //
-                    if ((tag & TAGGED) != 0) {
-                        if (length == 0)     // empty tag!
-                        {
-                            return new DERTaggedObject(false, tagNo, new DERSequence());
-                        }
-
-                        ASN1EncodableVector v = buildDerEncodableVector(length);
-
-                        if (v.size() == 1) {
-                            //
-                            // explicitly tagged (probably!) - if it isn't we'd have to
-                            // tell from the context
-                            //
-                            return new DERTaggedObject(tagNo, v.get(0));
-                        }
-
-                        return new DERTaggedObject(false, tagNo, new DERSequence(v));
-                    }
-
-                    return new DERUnknownTag(tag, readDefiniteLengthFully(length));
-                }
-            }
-        }
-
-        byte[] bytes = readDefiniteLengthFully(length);
-
-        switch (tag) {
-            case NULL:
-                return DERNull.INSTANCE;
-            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 NUMERIC_STRING:
-                return new DERNumericString(bytes);
-            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 GENERAL_STRING:
-                return new DERGeneralString(bytes);
-            case UNIVERSAL_STRING:
-                return new DERUniversalString(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 (bytes.length == 0)     // empty tag!
-                    {
-                        return new DERTaggedObject(false, tagNo, DERNull.INSTANCE);
-                    }
-
-                    //
-                    // simple type - implicit... return an octet string
-                    //
-                    return new DERTaggedObject(false, tagNo, new DEROctetString(bytes));
-                }
-
-                return new DERUnknownTag(tag, bytes);
-            }
-        }
-    }
-
-    private byte[] readDefiniteLengthFully(int length)
-        throws IOException {
-        byte[] bytes = new byte[length];
-        readFully(bytes);
-        return bytes;
-    }
-
-    /** 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(DERObject sentinel)
-        throws IOException {
-        Vector octs = new Vector();
-        DERObject o;
-
-        while ((o = readObject()) != sentinel) {
-            octs.addElement(o);
-        }
-
-        return new BERConstructedOctetString(octs);
-    }
-
-    //
-    // yes, people actually do this...
-    //
-    private BERConstructedOctetString buildDerConstructedOctetString(int length)
-        throws IOException {
-        DefiniteLengthInputStream dIn = new DefiniteLengthInputStream(this, length);
-        ASN1InputStream aIn = new ASN1InputStream(dIn, length);
-
-        return aIn.buildConstructedOctetString(null);
-    }
-
-    private ASN1EncodableVector buildEncodableVector(DERObject sentinel)
-        throws IOException {
-        ASN1EncodableVector v = new ASN1EncodableVector();
-        DERObject o;
-
-        while ((o = readObject()) != sentinel) {
-            v.add(o);
-        }
-
-        return v;
-    }
-
-    private ASN1EncodableVector buildDerEncodableVector(int length)
-        throws IOException {
-        DefiniteLengthInputStream dIn = new DefiniteLengthInputStream(this, length);
-        ASN1InputStream aIn = new ASN1InputStream(dIn, length);
-
-        return aIn.buildEncodableVector(null);
-    }
-
-    public DERObject readObject()
-        throws IOException {
-        int tag = read();
-        if (tag == -1) {
-            if (eofFound) {
-                throw new EOFException("attempt to read past end of file.");
-            }
-
-            eofFound = true;
-
-            return null;
-        }
-
-        int tagNo = 0;
-
-        if ((tag & TAGGED) != 0 || (tag & APPLICATION) != 0) {
-            tagNo = readTagNumber(tag);
-        }
-
-        int length = readLength();
-
-        if (length < 0)    // indefinite length method
-        {
-            switch (tag) {
-                case NULL:
-                    return BERNull.INSTANCE;
-                case SEQUENCE | CONSTRUCTED:
-                    return new BERSequence(buildEncodableVector(END_OF_STREAM));
-                case SET | CONSTRUCTED:
-                    return new BERSet(buildEncodableVector(END_OF_STREAM), false);
-                case OCTET_STRING | CONSTRUCTED:
-                    return buildConstructedOctetString(END_OF_STREAM);
-                default: {
-                    //
-                    // with tagged object tag number is bottom 5 bits
-                    //
-                    if ((tag & TAGGED) != 0) {
-                        //
-                        // simple type - implicit... return an octet string
-                        //
-                        if ((tag & CONSTRUCTED) == 0) {
-                            byte[] bytes = readIndefiniteLengthFully();
-
-                            return new BERTaggedObject(false, tagNo, new DEROctetString(bytes));
-                        }
-
-                        //
-                        // either constructed or explicitly tagged
-                        //
-                        ASN1EncodableVector v = buildEncodableVector(END_OF_STREAM);
-
-                        if (v.size() == 0)     // empty tag!
-                        {
-                            return new DERTaggedObject(tagNo);
-                        }
-
-                        if (v.size() == 1) {
-                            //
-                            // explicitly tagged (probably!) - if it isn't we'd have to
-                            // tell from the context
-                            //
-                            return new BERTaggedObject(tagNo, v.get(0));
-                        }
-
-                        return new BERTaggedObject(false, tagNo, new BERSequence(v));
-                    }
-
-                    throw new IOException("unknown BER object encountered");
-                }
-            }
-        } else {
-            if (tag == 0 && length == 0)    // end of contents marker.
-            {
-                return END_OF_STREAM;
-            }
-
-            return buildObject(tag, tagNo, length);
-        }
-    }
-
-    private int readTagNumber(int tag)
-        throws IOException {
-        int tagNo = tag & 0x1f;
-
-        if (tagNo == 0x1f) {
-            int b = read();
-
-            tagNo = 0;
-
-            while ((b >= 0) && ((b & 0x80) != 0)) {
-                tagNo |= (b & 0x7f);
-                tagNo <<= 7;
-                b = read();
-            }
-
-            if (b < 0) {
-                eofFound = true;
-                throw new EOFException("EOF found inside tag value.");
-            }
-
-            tagNo |= (b & 0x7f);
-        }
-
-        return tagNo;
-    }
-}
-

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/ASN1Null.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Null.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Null.java
deleted file mode 100644
index 7f56bbd..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Null.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-/** A NULL object. */
-public abstract class ASN1Null
-    extends ASN1Object {
-    public ASN1Null() {
-    }
-
-    public int hashCode() {
-        return 0;
-    }
-
-    boolean asn1Equals(
-        DERObject o) {
-        if (!(o instanceof ASN1Null)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    abstract void encode(DEROutputStream out)
-        throws IOException;
-
-    public String toString() {
-        return "NULL";
-    }
-}

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/ASN1Object.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Object.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Object.java
deleted file mode 100644
index a2ec57a..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Object.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public abstract class ASN1Object
-    extends DERObject {
-    /**
-     * Create a base ASN.1 object from a byte stream.
-     *
-     * @param data the byte stream to parse.
-     * @return the base ASN.1 object represented by the byte stream.
-     * @throws java.io.IOException if there is a problem parsing the data.
-     */
-    public static ASN1Object fromByteArray(byte[] data)
-        throws IOException {
-        ASN1InputStream aIn = new ASN1InputStream(data);
-
-        return (ASN1Object) aIn.readObject();
-    }
-
-    public final boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        }
-
-        return (o instanceof DEREncodable) && asn1Equals(((DEREncodable) o).getDERObject());
-    }
-
-    public abstract int hashCode();
-
-    abstract void encode(DEROutputStream out) throws IOException;
-
-    abstract boolean asn1Equals(DERObject o);
-}

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/ASN1ObjectParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1ObjectParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1ObjectParser.java
deleted file mode 100644
index ca2a576..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1ObjectParser.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public class ASN1ObjectParser {
-    private int _baseTag;
-    private int _tagNumber;
-
-    private ASN1StreamParser _aIn;
-
-    protected ASN1ObjectParser(
-        int baseTag,
-        int tagNumber,
-        InputStream contentStream) {
-        _baseTag = baseTag;
-        _tagNumber = tagNumber;
-        _aIn = new ASN1StreamParser(contentStream);
-    }
-
-    /**
-     * Return the tag number for this object.
-     *
-     * @return the tag number.
-     */
-    int getTagNumber() {
-        return _tagNumber;
-    }
-
-    int getBaseTag() {
-        return _baseTag;
-    }
-
-    DEREncodable readObject()
-        throws IOException {
-        return _aIn.readObject();
-    }
-
-    ASN1EncodableVector readVector()
-        throws IllegalStateException {
-        ASN1EncodableVector v = new ASN1EncodableVector();
-        DEREncodable obj;
-
-        try {
-            while ((obj = readObject()) != null) {
-                v.add(obj.getDERObject());
-            }
-        }
-        catch (IOException e) {
-            throw new IllegalStateException(e.getMessage());
-        }
-
-        return v;
-    }
-}

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/ASN1OctetString.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OctetString.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OctetString.java
deleted file mode 100644
index 10ab72e..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OctetString.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import org.apache.commons.ssl.util.Hex;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.Vector;
-
-public abstract class ASN1OctetString
-    extends ASN1Object
-    implements ASN1OctetStringParser {
-    byte[] string;
-
-    /**
-     * return an Octet 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 ASN1OctetString getInstance(
-        ASN1TaggedObject obj,
-        boolean explicit) {
-        return getInstance(obj.getObject());
-    }
-
-    /**
-     * return an Octet String from the given object.
-     *
-     * @param obj the object we want converted.
-     * @throws IllegalArgumentException if the object cannot be converted.
-     */
-    public static ASN1OctetString getInstance(
-        Object obj) {
-        if (obj == null || obj instanceof ASN1OctetString) {
-            return (ASN1OctetString) obj;
-        }
-
-        if (obj instanceof ASN1TaggedObject) {
-            return getInstance(((ASN1TaggedObject) obj).getObject());
-        }
-
-        if (obj instanceof ASN1Sequence) {
-            Vector v = new Vector();
-            Enumeration e = ((ASN1Sequence) obj).getObjects();
-
-            while (e.hasMoreElements()) {
-                v.addElement(e.nextElement());
-            }
-
-            return new BERConstructedOctetString(v);
-        }
-
-        throw new IllegalArgumentException("illegal object in getInstance: " + obj.getClass().getName());
-    }
-
-    /** @param string the octets making up the octet string. */
-    public ASN1OctetString(
-        byte[] string) {
-        this.string = string;
-    }
-
-    public ASN1OctetString(
-        DEREncodable obj) {
-        try {
-            ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-            DEROutputStream dOut = new DEROutputStream(bOut);
-
-            dOut.writeObject(obj);
-            dOut.close();
-
-            this.string = bOut.toByteArray();
-        }
-        catch (IOException e) {
-            throw new IllegalArgumentException("Error processing object : " + e.toString());
-        }
-    }
-
-    public InputStream getOctetStream() {
-        return new ByteArrayInputStream(string);
-    }
-
-    public ASN1OctetStringParser parser() {
-        return this;
-    }
-
-    public byte[] getOctets() {
-        return string;
-    }
-
-    public int hashCode() {
-        byte[] b = this.getOctets();
-        int value = 0;
-
-        for (int i = 0; i != b.length; i++) {
-            value ^= (b[i] & 0xff) << (i % 4);
-        }
-
-        return value;
-    }
-
-    boolean asn1Equals(
-        DERObject o) {
-        if (!(o instanceof ASN1OctetString)) {
-            return false;
-        }
-
-        ASN1OctetString other = (ASN1OctetString) o;
-
-        byte[] b1 = other.string;
-        byte[] b2 = this.string;
-
-        if (b1.length != b2.length) {
-            return false;
-        }
-
-        for (int i = 0; i != b1.length; i++) {
-            if (b1[i] != b2[i]) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    abstract void encode(DEROutputStream out)
-        throws IOException;
-
-    public String toString() {
-        return "#" + Hex.encode(string);
-    }
-}

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/ASN1OctetStringParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OctetStringParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OctetStringParser.java
deleted file mode 100644
index b958534..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OctetStringParser.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.InputStream;
-
-public interface ASN1OctetStringParser
-    extends DEREncodable {
-    public InputStream 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/ASN1OutputStream.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OutputStream.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OutputStream.java
deleted file mode 100644
index 2cac08d..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1OutputStream.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-public class ASN1OutputStream
-    extends DEROutputStream {
-    public ASN1OutputStream(
-        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 ASN1Encodable");
-        }
-    }
-}

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/ASN1Sequence.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Sequence.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Sequence.java
deleted file mode 100644
index 699edd1..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Sequence.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Vector;
-
-public abstract class ASN1Sequence
-    extends ASN1Object {
-    private Vector seq = new Vector();
-
-    /**
-     * return an ASN1Sequence from the given object.
-     *
-     * @param obj the object we want converted.
-     * @throws IllegalArgumentException if the object cannot be converted.
-     */
-    public static ASN1Sequence getInstance(
-        Object obj) {
-        if (obj == null || obj instanceof ASN1Sequence) {
-            return (ASN1Sequence) obj;
-        }
-
-        throw new IllegalArgumentException("unknown object in getInstance");
-    }
-
-    /**
-     * Return an ASN1 sequence from a tagged object. There is a special
-     * case here, if an object appears to have been explicitly tagged on
-     * reading but we were expecting it to be implictly tagged in the
-     * normal course of events it indicates that we lost the surrounding
-     * sequence - so we need to add it back (this will happen if the tagged
-     * object is a sequence that contains other sequences). If you are
-     * dealing with implicitly tagged sequences you really <b>should</b>
-     * be using this method.
-     *
-     * @param obj      the tagged object.
-     * @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 ASN1Sequence getInstance(
-        ASN1TaggedObject obj,
-        boolean explicit) {
-        if (explicit) {
-            if (!obj.isExplicit()) {
-                throw new IllegalArgumentException("object implicit - explicit expected.");
-            }
-
-            return (ASN1Sequence) obj.getObject();
-        } else {
-            //
-            // constructed object which appears to be explicitly tagged
-            // when it should be implicit means we have to add the
-            // surrounding sequence.
-            //
-            if (obj.isExplicit()) {
-                if (obj instanceof BERTaggedObject) {
-                    return new BERSequence(obj.getObject());
-                } else {
-                    return new DERSequence(obj.getObject());
-                }
-            } else {
-                if (obj.getObject() instanceof ASN1Sequence) {
-                    return (ASN1Sequence) obj.getObject();
-                }
-            }
-        }
-
-        throw new IllegalArgumentException(
-            "unknown object in getInstanceFromTagged");
-    }
-
-    public Enumeration getObjects() {
-        return seq.elements();
-    }
-
-    public ASN1SequenceParser parser() {
-        final ASN1Sequence outer = this;
-
-        return new ASN1SequenceParser() {
-            private final int max = size();
-
-            private int index;
-
-            public DEREncodable readObject() throws IOException {
-                if (index == max) {
-                    return null;
-                }
-
-                DEREncodable obj = getObjectAt(index++);
-                if (obj instanceof ASN1Sequence) {
-                    return ((ASN1Sequence) obj).parser();
-                }
-                if (obj instanceof ASN1Set) {
-                    return ((ASN1Set) obj).parser();
-                }
-
-                return obj;
-            }
-
-            public DERObject getDERObject() {
-                return outer;
-            }
-        };
-    }
-
-    /**
-     * return the object at the sequence postion indicated by index.
-     *
-     * @param index the sequence number (starting at zero) of the object
-     * @return the object at the sequence postion indicated by index.
-     */
-    public DEREncodable getObjectAt(
-        int index) {
-        return (DEREncodable) seq.elementAt(index);
-    }
-
-    /**
-     * return the number of objects in this sequence.
-     *
-     * @return the number of objects in this sequence.
-     */
-    public int size() {
-        return seq.size();
-    }
-
-    public int hashCode() {
-        Enumeration e = this.getObjects();
-        int hashCode = 0;
-
-        while (e.hasMoreElements()) {
-            Object o = e.nextElement();
-
-            if (o != null) {
-                hashCode ^= o.hashCode();
-            }
-        }
-
-        return hashCode;
-    }
-
-    boolean asn1Equals(
-        DERObject o) {
-        if (!(o instanceof ASN1Sequence)) {
-            return false;
-        }
-
-        ASN1Sequence other = (ASN1Sequence) o;
-
-        if (this.size() != other.size()) {
-            return false;
-        }
-
-        Enumeration s1 = this.getObjects();
-        Enumeration s2 = other.getObjects();
-
-        while (s1.hasMoreElements()) {
-            DERObject o1 = ((DEREncodable) s1.nextElement()).getDERObject();
-            DERObject o2 = ((DEREncodable) s2.nextElement()).getDERObject();
-
-            if (o1 == o2 || (o1 != null && o1.equals(o2))) {
-                continue;
-            }
-
-            return false;
-        }
-
-        return true;
-    }
-
-    protected void addObject(
-        DEREncodable obj) {
-        seq.addElement(obj);
-    }
-
-    abstract void encode(DEROutputStream out)
-        throws IOException;
-
-    public String toString() {
-        return seq.toString();
-    }
-}

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/ASN1SequenceParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1SequenceParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1SequenceParser.java
deleted file mode 100644
index c64c93e..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1SequenceParser.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public interface ASN1SequenceParser
-    extends DEREncodable {
-    DEREncodable readObject()
-        throws IOException;
-}

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/ASN1Set.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Set.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Set.java
deleted file mode 100644
index 549fc57..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1Set.java
+++ /dev/null
@@ -1,281 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Vector;
-
-abstract public class ASN1Set
-    extends ASN1Object {
-    protected Vector set = new Vector();
-
-    /**
-     * return an ASN1Set from the given object.
-     *
-     * @param obj the object we want converted.
-     * @throws IllegalArgumentException if the object cannot be converted.
-     */
-    public static ASN1Set getInstance(
-        Object obj) {
-        if (obj == null || obj instanceof ASN1Set) {
-            return (ASN1Set) obj;
-        }
-
-        throw new IllegalArgumentException("unknown object in getInstance");
-    }
-
-    /**
-     * Return an ASN1 set from a tagged object. There is a special
-     * case here, if an object appears to have been explicitly tagged on
-     * reading but we were expecting it to be implictly tagged in the
-     * normal course of events it indicates that we lost the surrounding
-     * set - so we need to add it back (this will happen if the tagged
-     * object is a sequence that contains other sequences). If you are
-     * dealing with implicitly tagged sets you really <b>should</b>
-     * be using this method.
-     *
-     * @param obj      the tagged object.
-     * @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 ASN1Set getInstance(
-        ASN1TaggedObject obj,
-        boolean explicit) {
-        if (explicit) {
-            if (!obj.isExplicit()) {
-                throw new IllegalArgumentException("object implicit - explicit expected.");
-            }
-
-            return (ASN1Set) obj.getObject();
-        } else {
-            //
-            // constructed object which appears to be explicitly tagged
-            // and it's really implicit means we have to add the
-            // surrounding sequence.
-            //
-            if (obj.isExplicit()) {
-                ASN1Set set = new DERSet(obj.getObject());
-
-                return set;
-            } else {
-                if (obj.getObject() instanceof ASN1Set) {
-                    return (ASN1Set) obj.getObject();
-                }
-
-                //
-                // in this case the parser returns a sequence, convert it
-                // into a set.
-                //
-                ASN1EncodableVector v = new ASN1EncodableVector();
-
-                if (obj.getObject() instanceof ASN1Sequence) {
-                    ASN1Sequence s = (ASN1Sequence) obj.getObject();
-                    Enumeration e = s.getObjects();
-
-                    while (e.hasMoreElements()) {
-                        v.add((DEREncodable) e.nextElement());
-                    }
-
-                    return new DERSet(v, false);
-                }
-            }
-        }
-
-        throw new IllegalArgumentException(
-            "unknown object in getInstanceFromTagged");
-    }
-
-    public ASN1Set() {
-    }
-
-    public Enumeration getObjects() {
-        return set.elements();
-    }
-
-    /**
-     * return the object at the set postion indicated by index.
-     *
-     * @param index the set number (starting at zero) of the object
-     * @return the object at the set postion indicated by index.
-     */
-    public DEREncodable getObjectAt(
-        int index) {
-        return (DEREncodable) set.elementAt(index);
-    }
-
-    /**
-     * return the number of objects in this set.
-     *
-     * @return the number of objects in this set.
-     */
-    public int size() {
-        return set.size();
-    }
-
-    public ASN1SetParser parser() {
-        final ASN1Set outer = this;
-
-        return new ASN1SetParser() {
-            private final int max = size();
-
-            private int index;
-
-            public DEREncodable readObject() throws IOException {
-                if (index == max) {
-                    return null;
-                }
-
-                DEREncodable obj = getObjectAt(index++);
-                if (obj instanceof ASN1Sequence) {
-                    return ((ASN1Sequence) obj).parser();
-                }
-                if (obj instanceof ASN1Set) {
-                    return ((ASN1Set) obj).parser();
-                }
-
-                return obj;
-            }
-
-            public DERObject getDERObject() {
-                return outer;
-            }
-        };
-    }
-
-    public int hashCode() {
-        Enumeration e = this.getObjects();
-        int hashCode = 0;
-
-        while (e.hasMoreElements()) {
-            hashCode ^= e.nextElement().hashCode();
-        }
-
-        return hashCode;
-    }
-
-    boolean asn1Equals(
-        DERObject o) {
-        if (!(o instanceof ASN1Set)) {
-            return false;
-        }
-
-        ASN1Set other = (ASN1Set) o;
-
-        if (this.size() != other.size()) {
-            return false;
-        }
-
-        Enumeration s1 = this.getObjects();
-        Enumeration s2 = other.getObjects();
-
-        while (s1.hasMoreElements()) {
-            DERObject o1 = ((DEREncodable) s1.nextElement()).getDERObject();
-            DERObject o2 = ((DEREncodable) s2.nextElement()).getDERObject();
-
-            if (o1 == o2 || (o1 != null && o1.equals(o2))) {
-                continue;
-            }
-
-            return false;
-        }
-
-        return true;
-    }
-
-    /** return true if a <= b (arrays are assumed padded with zeros). */
-    private boolean lessThanOrEqual(
-        byte[] a,
-        byte[] b) {
-        if (a.length <= b.length) {
-            for (int i = 0; i != a.length; i++) {
-                int l = a[i] & 0xff;
-                int r = b[i] & 0xff;
-
-                if (r > l) {
-                    return true;
-                } else if (l > r) {
-                    return false;
-                }
-            }
-
-            return true;
-        } else {
-            for (int i = 0; i != b.length; i++) {
-                int l = a[i] & 0xff;
-                int r = b[i] & 0xff;
-
-                if (r > l) {
-                    return true;
-                } else if (l > r) {
-                    return false;
-                }
-            }
-
-            return false;
-        }
-    }
-
-    private byte[] getEncoded(
-        DEREncodable obj) {
-        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-        ASN1OutputStream aOut = new ASN1OutputStream(bOut);
-
-        try {
-            aOut.writeObject(obj);
-        }
-        catch (IOException e) {
-            throw new IllegalArgumentException("cannot encode object added to SET");
-        }
-
-        return bOut.toByteArray();
-    }
-
-    protected void sort() {
-        if (set.size() > 1) {
-            boolean swapped = true;
-            int lastSwap = set.size() - 1;
-
-            while (swapped) {
-                int index = 0;
-                int swapIndex = 0;
-                byte[] a = getEncoded((DEREncodable) set.elementAt(0));
-
-                swapped = false;
-
-                while (index != lastSwap) {
-                    byte[] b = getEncoded((DEREncodable) set.elementAt(index + 1));
-
-                    if (lessThanOrEqual(a, b)) {
-                        a = b;
-                    } else {
-                        Object o = set.elementAt(index);
-
-                        set.setElementAt(set.elementAt(index + 1), index);
-                        set.setElementAt(o, index + 1);
-
-                        swapped = true;
-                        swapIndex = index;
-                    }
-
-                    index++;
-                }
-
-                lastSwap = swapIndex;
-            }
-        }
-    }
-
-    protected void addObject(
-        DEREncodable obj) {
-        set.addElement(obj);
-    }
-
-    abstract void encode(DEROutputStream out)
-        throws IOException;
-
-    public String toString() {
-        return set.toString();
-    }
-}

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/ASN1SetParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1SetParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1SetParser.java
deleted file mode 100644
index 00ffbd0..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1SetParser.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public interface ASN1SetParser
-    extends DEREncodable {
-    public DEREncodable readObject()
-        throws IOException;
-}

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/ASN1StreamParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1StreamParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1StreamParser.java
deleted file mode 100644
index b1cd940..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1StreamParser.java
+++ /dev/null
@@ -1,193 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayInputStream;
-import java.io.EOFException;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class ASN1StreamParser {
-    InputStream _in;
-
-    private int _limit;
-    private boolean _eofFound;
-
-    public ASN1StreamParser(
-        InputStream in) {
-        this(in, Integer.MAX_VALUE);
-    }
-
-    public ASN1StreamParser(
-        InputStream in,
-        int limit) {
-        this._in = in;
-        this._limit = limit;
-    }
-
-    public ASN1StreamParser(
-        byte[] encoding) {
-        this(new ByteArrayInputStream(encoding), encoding.length);
-    }
-
-    InputStream getParentStream() {
-        return _in;
-    }
-
-    private int readLength()
-        throws IOException {
-        int length = _in.read();
-        if (length < 0) {
-            throw new EOFException("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 = _in.read();
-
-                if (next < 0) {
-                    throw new EOFException("EOF found reading length");
-                }
-
-                length = (length << 8) + next;
-            }
-
-            if (length < 0) {
-                throw new IOException("corrupted stream - negative length found");
-            }
-
-            if (length >= _limit)   // after all we must have read at least 1 byte
-            {
-                throw new IOException("corrupted stream - out of bounds length found");
-            }
-        }
-
-        return length;
-    }
-
-    public DEREncodable readObject()
-        throws IOException {
-        int tag = _in.read();
-        if (tag == -1) {
-            if (_eofFound) {
-                throw new EOFException("attempt to read past end of file.");
-            }
-
-            _eofFound = true;
-
-            return null;
-        }
-
-        //
-        // turn of looking for "00" while we resolve the tag
-        //
-        set00Check(false);
-
-        //
-        // calculate tag number
-        //
-        int baseTagNo = tag & ~DERTags.CONSTRUCTED;
-        int tagNo = baseTagNo;
-
-        if ((tag & DERTags.TAGGED) != 0) {
-            tagNo = tag & 0x1f;
-
-            //
-            // with tagged object tag number is bottom 5 bits, or stored at the start of the content
-            //
-            if (tagNo == 0x1f) {
-                tagNo = 0;
-
-                int b = _in.read();
-
-                while ((b >= 0) && ((b & 0x80) != 0)) {
-                    tagNo |= (b & 0x7f);
-                    tagNo <<= 7;
-                    b = _in.read();
-                }
-
-                if (b < 0) {
-                    _eofFound = true;
-
-                    throw new EOFException("EOF encountered inside tag value.");
-                }
-
-                tagNo |= (b & 0x7f);
-            }
-        }
-
-        //
-        // calculate length
-        //
-        int length = readLength();
-
-        if (length < 0)  // indefinite length
-        {
-            IndefiniteLengthInputStream indIn = new IndefiniteLengthInputStream(_in);
-
-            switch (baseTagNo) {
-                case DERTags.NULL:
-                    while (indIn.read() >= 0) {
-                        // make sure we skip to end of object
-                    }
-                    return BERNull.INSTANCE;
-                case DERTags.OCTET_STRING:
-                    return new BEROctetStringParser(new ASN1ObjectParser(tag, tagNo, indIn));
-                case DERTags.SEQUENCE:
-                    return new BERSequenceParser(new ASN1ObjectParser(tag, tagNo, indIn));
-                case DERTags.SET:
-                    return new BERSetParser(new ASN1ObjectParser(tag, tagNo, indIn));
-                default:
-                    return new BERTaggedObjectParser(tag, tagNo, indIn);
-            }
-        } else {
-            DefiniteLengthInputStream defIn = new DefiniteLengthInputStream(_in, length);
-
-            switch (baseTagNo) {
-                case DERTags.INTEGER:
-                    return new DERInteger(defIn.toByteArray());
-                case DERTags.NULL:
-                    defIn.toByteArray(); // make sure we read to end of object bytes.
-                    return DERNull.INSTANCE;
-                case DERTags.OBJECT_IDENTIFIER:
-                    return new DERObjectIdentifier(defIn.toByteArray());
-                case DERTags.OCTET_STRING:
-                    return new DEROctetString(defIn.toByteArray());
-                case DERTags.SEQUENCE:
-                    return new DERSequence(loadVector(defIn, length)).parser();
-                case DERTags.SET:
-                    return new DERSet(loadVector(defIn, length)).parser();
-                default:
-                    return new BERTaggedObjectParser(tag, tagNo, defIn);
-            }
-        }
-    }
-
-    private void set00Check(boolean enabled) {
-        if (_in instanceof IndefiniteLengthInputStream) {
-            ((IndefiniteLengthInputStream) _in).setEofOn00(enabled);
-        }
-    }
-
-    private ASN1EncodableVector loadVector(InputStream in, int length)
-        throws IOException {
-        ASN1InputStream aIn = new ASN1InputStream(in, length);
-        ASN1EncodableVector v = new ASN1EncodableVector();
-
-        DERObject obj;
-        while ((obj = aIn.readObject()) != null) {
-            v.add(obj);
-        }
-
-        return v;
-    }
-}

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/ASN1TaggedObject.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1TaggedObject.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1TaggedObject.java
deleted file mode 100644
index 063569b..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1TaggedObject.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-/**
- * ASN.1 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 abstract class ASN1TaggedObject
-    extends ASN1Object
-    implements ASN1TaggedObjectParser {
-    int tagNo;
-    boolean empty = false;
-    boolean explicit = true;
-    DEREncodable obj = null;
-
-    static public ASN1TaggedObject getInstance(
-        ASN1TaggedObject obj,
-        boolean explicit) {
-        if (explicit) {
-            return (ASN1TaggedObject) obj.getObject();
-        }
-
-        throw new IllegalArgumentException("implicitly tagged tagged object");
-    }
-
-    static public ASN1TaggedObject getInstance(
-        Object obj) {
-        if (obj == null || obj instanceof ASN1TaggedObject) {
-            return (ASN1TaggedObject) obj;
-        }
-
-        throw new IllegalArgumentException("unknown object in getInstance");
-    }
-
-    /**
-     * Create a tagged object in the explicit style.
-     *
-     * @param tagNo the tag number for this object.
-     * @param obj   the tagged object.
-     */
-    public ASN1TaggedObject(
-        int tagNo,
-        DEREncodable obj) {
-        this.explicit = true;
-        this.tagNo = tagNo;
-        this.obj = obj;
-    }
-
-    /**
-     * Create a tagged object with the style given by the value of explicit.
-     * <p>
-     * If the object implements ASN1Choice the tag style will always be changed
-     * to explicit in accordance with the ASN.1 encoding rules.
-     * </p>
-     *
-     * @param explicit true if the object is explicitly tagged.
-     * @param tagNo    the tag number for this object.
-     * @param obj      the tagged object.
-     */
-    public ASN1TaggedObject(
-        boolean explicit,
-        int tagNo,
-        DEREncodable obj) {
-        if (obj instanceof ASN1Choice) {
-            this.explicit = true;
-        } else {
-            this.explicit = explicit;
-        }
-
-        this.tagNo = tagNo;
-        this.obj = obj;
-    }
-
-    boolean asn1Equals(
-        DERObject o) {
-        if (!(o instanceof ASN1TaggedObject)) {
-            return false;
-        }
-
-        ASN1TaggedObject other = (ASN1TaggedObject) o;
-
-        if (tagNo != other.tagNo || empty != other.empty || explicit != other.explicit) {
-            return false;
-        }
-
-        if (obj == null) {
-            if (other.obj != null) {
-                return false;
-            }
-        } else {
-            if (!(obj.getDERObject().equals(other.obj.getDERObject()))) {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    public int hashCode() {
-        int code = tagNo;
-
-        if (obj != null) {
-            code ^= obj.hashCode();
-        }
-
-        return code;
-    }
-
-    public int getTagNo() {
-        return tagNo;
-    }
-
-    /**
-     * return whether or not the object may be explicitly tagged.
-     * <p/>
-     * Note: if the object has been read from an input stream, the only
-     * time you can be sure if isExplicit is returning the true state of
-     * affairs is if it returns false. An implicitly tagged object may appear
-     * to be explicitly tagged, so you need to understand the context under
-     * which the reading was done as well, see getObject below.
-     */
-    public boolean isExplicit() {
-        return explicit;
-    }
-
-    public boolean isEmpty() {
-        return empty;
-    }
-
-    /**
-     * return whatever was following the tag.
-     * <p/>
-     * Note: tagged objects are generally context dependent if you're
-     * trying to extract a tagged object you should be going via the
-     * appropriate getInstance method.
-     */
-    public DERObject getObject() {
-        if (obj != null) {
-            return obj.getDERObject();
-        }
-
-        return null;
-    }
-
-    /**
-     * Return the object held in this tagged object as a parser assuming it has
-     * the type of the passed in tag. If the object doesn't have a parser
-     * associated with it, the base object is returned.
-     */
-    public DEREncodable getObjectParser(
-        int tag,
-        boolean isExplicit) {
-        switch (tag) {
-            case DERTags.SET:
-                return ASN1Set.getInstance(this, isExplicit).parser();
-            case DERTags.SEQUENCE:
-                return ASN1Sequence.getInstance(this, isExplicit).parser();
-            case DERTags.OCTET_STRING:
-                return ASN1OctetString.getInstance(this, isExplicit).parser();
-        }
-
-        if (isExplicit) {
-            return getObject();
-        }
-
-        throw new RuntimeException("implicit tagging not implemented for tag: " + tag);
-    }
-
-    abstract void encode(DEROutputStream out)
-        throws IOException;
-
-    public String toString() {
-        return "[" + tagNo + "]" + obj;
-    }
-}

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/ASN1TaggedObjectParser.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1TaggedObjectParser.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1TaggedObjectParser.java
deleted file mode 100644
index 7d24c6d..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/ASN1TaggedObjectParser.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-
-public interface ASN1TaggedObjectParser
-    extends DEREncodable {
-    public int getTagNo();
-
-    public DEREncodable getObjectParser(int tag, boolean isExplicit)
-        throws IOException;
-}

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/BERConstructedOctetString.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERConstructedOctetString.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERConstructedOctetString.java
deleted file mode 100644
index 750de3b..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERConstructedOctetString.java
+++ /dev/null
@@ -1,137 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.util.Enumeration;
-import java.util.Vector;
-
-public class BERConstructedOctetString
-    extends DEROctetString {
-    private static final int MAX_LENGTH = 1000;
-
-    /** convert a vector of octet strings into a single byte string */
-    static private byte[] toBytes(
-        Vector octs) {
-        ByteArrayOutputStream bOut = new ByteArrayOutputStream();
-
-        for (int i = 0; i != octs.size(); i++) {
-            try {
-                DEROctetString o = (DEROctetString) octs.elementAt(i);
-
-                bOut.write(o.getOctets());
-            }
-            catch (ClassCastException e) {
-                throw new IllegalArgumentException(octs.elementAt(i).getClass().getName() + " found in input should only contain DEROctetString");
-            }
-            catch (IOException e) {
-                throw new IllegalArgumentException("exception converting octets " + e.toString());
-            }
-        }
-
-        return bOut.toByteArray();
-    }
-
-    private Vector octs;
-
-    /** @param string the octets making up the octet string. */
-    public BERConstructedOctetString(
-        byte[] string) {
-        super(string);
-    }
-
-    public BERConstructedOctetString(
-        Vector octs) {
-        super(toBytes(octs));
-
-        this.octs = octs;
-    }
-
-    public BERConstructedOctetString(
-        DERObject obj) {
-        super(obj);
-    }
-
-    public BERConstructedOctetString(
-        DEREncodable obj) {
-        super(obj.getDERObject());
-    }
-
-    public byte[] getOctets() {
-        return string;
-    }
-
-    /** return the DER octets that make up this string. */
-    public Enumeration getObjects() {
-        if (octs == null) {
-            return generateOcts().elements();
-        }
-
-        return octs.elements();
-    }
-
-    private Vector generateOcts() {
-        int start = 0;
-        int end = 0;
-        Vector vec = new Vector();
-
-        while ((end + 1) < string.length) {
-            if (string[end] == 0 && string[end + 1] == 0) {
-                byte[] nStr = new byte[end - start + 1];
-
-                System.arraycopy(string, start, nStr, 0, nStr.length);
-
-                vec.addElement(new DEROctetString(nStr));
-                start = end + 1;
-            }
-            end++;
-        }
-
-        byte[] nStr = new byte[string.length - start];
-
-        System.arraycopy(string, start, nStr, 0, nStr.length);
-
-        vec.addElement(new DEROctetString(nStr));
-
-        return vec;
-    }
-
-    public void encode(
-        DEROutputStream out)
-        throws IOException {
-        if (out instanceof ASN1OutputStream || out instanceof BEROutputStream) {
-            out.write(CONSTRUCTED | OCTET_STRING);
-
-            out.write(0x80);
-
-            //
-            // write out the octet array
-            //
-            if (octs != null) {
-                for (int i = 0; i != octs.size(); i++) {
-                    out.writeObject(octs.elementAt(i));
-                }
-            } else {
-                for (int i = 0; i < string.length; i += MAX_LENGTH) {
-                    int end;
-
-                    if (i + MAX_LENGTH > string.length) {
-                        end = string.length;
-                    } else {
-                        end = i + MAX_LENGTH;
-                    }
-
-                    byte[] nStr = new byte[end - i];
-
-                    System.arraycopy(string, i, nStr, 0, nStr.length);
-
-                    out.writeObject(new DEROctetString(nStr));
-                }
-            }
-
-            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/BERConstructedSequence.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERConstructedSequence.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERConstructedSequence.java
deleted file mode 100644
index 5cccfb6..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERConstructedSequence.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.util.Enumeration;
-
-/** @deprecated use BERSequence */
-public class BERConstructedSequence
-    extends DERConstructedSequence {
-    /*
-     */
-    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/BERGenerator.java
----------------------------------------------------------------------
diff --git a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERGenerator.java b/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERGenerator.java
deleted file mode 100644
index a81859b..0000000
--- a/3rdparty/not-yet-commons-ssl/src/main/java/org/apache/commons/ssl/asn1/BERGenerator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.apache.commons.ssl.asn1;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public class BERGenerator
-    extends ASN1Generator {
-    private boolean _tagged = false;
-    private boolean _isExplicit;
-    private int _tagNo;
-
-    protected BERGenerator(
-        OutputStream out) {
-        super(out);
-    }
-
-    public BERGenerator(
-        OutputStream out,
-        int tagNo,
-        boolean isExplicit) {
-        super(out);
-
-        _tagged = true;
-        _isExplicit = isExplicit;
-        _tagNo = tagNo;
-    }
-
-    public OutputStream getRawOutputStream() {
-        return _out;
-    }
-
-    private void writeHdr(
-        int tag)
-        throws IOException {
-        _out.write(tag);
-        _out.write(0x80);
-    }
-
-    protected void writeBERHeader(
-        int tag)
-        throws IOException {
-        if (_tagged) {
-            int tagNum = _tagNo | DERTags.TAGGED;
-
-            if (_isExplicit) {
-                writeHdr(tagNum | DERTags.CONSTRUCTED);
-                writeHdr(tag);
-            } else {
-                if ((tag & DERTags.CONSTRUCTED) != 0) {
-                    writeHdr(tagNum | DERTags.CONSTRUCTED);
-                } else {
-                    writeHdr(tagNum);
-                }
-            }
-        } else {
-            writeHdr(tag);
-        }
-    }
-
-    protected void writeBERBody(
-        InputStream contentStream)
-        throws IOException {
-        int ch;
-
-        while ((ch = contentStream.read()) >= 0) {
-            _out.write(ch);
-        }
-    }
-
-    protected void writeBEREnd()
-        throws IOException {
-        _out.write(0x00);
-        _out.write(0x00);
-
-        if (_tagged && _isExplicit)  // write extra end for tag header
-        {
-            _out.write(0x00);
-            _out.write(0x00);
-        }
-    }
-}


Mime
View raw message