You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by er...@apache.org on 2005/01/16 02:12:30 UTC

svn commit: r125326 - incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder

Author: erodriguez
Date: Sat Jan 15 17:12:29 2005
New Revision: 125326

URL: http://svn.apache.org/viewcvs?view=rev&rev=125326
Log:
Redirecting Kerberos ASN.1 DER decoding to use Apache libraries.
Modified:
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
   incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,14 +14,23 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.messages.*;
-import org.apache.kerberos.messages.value.*;
-import org.bouncycastle.asn1.*;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
 
-import java.io.*;
-import java.util.*;
+import org.apache.asn1.der.ASN1InputStream;
+import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DERBitString;
+import org.apache.asn1.der.DERInteger;
+import org.apache.asn1.der.DERObject;
+import org.apache.asn1.der.DERSequence;
+import org.apache.asn1.der.DERTaggedObject;
+import org.apache.kerberos.messages.ApplicationRequest;
+import org.apache.kerberos.messages.MessageType;
+import org.apache.kerberos.messages.value.ApOptions;
 
 public class ApplicationRequestDecoder extends KerberosMessageDecoder {
 	

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,12 +14,16 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.messages.components.*;
-import org.bouncycastle.asn1.*;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
 
-import java.io.*;
+import org.apache.asn1.der.ASN1InputStream;
+import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DERSequence;
+import org.apache.kerberos.messages.components.Authenticator;
 
 public class AuthenticatorDecoder extends KerberosMessageDecoder {
 	

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,12 +14,15 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.messages.value.*;
-import org.bouncycastle.asn1.*;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
 
-import java.io.*;
+import org.apache.asn1.der.ASN1InputStream;
+import org.apache.asn1.der.DERSequence;
+import org.apache.kerberos.messages.value.AuthorizationData;
 
 public class AuthorizationDataDecoder extends KerberosMessageDecoder {
 	

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,13 +14,23 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.messages.components.*;
-import org.bouncycastle.asn1.*;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
 
-import java.io.*;
-import java.util.*;
+import org.apache.asn1.der.ASN1InputStream;
+import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DERGeneralizedTime;
+import org.apache.asn1.der.DERInteger;
+import org.apache.asn1.der.DERObject;
+import org.apache.asn1.der.DEROctetString;
+import org.apache.asn1.der.DERSequence;
+import org.apache.asn1.der.DERTaggedObject;
+import org.apache.kerberos.messages.components.EncKrbPrivPart;
+import org.apache.kerberos.messages.components.EncKrbPrivPartModifier;
 
 public class EncKrbPrivPartDecoder extends KerberosMessageDecoder {
 	

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,14 +14,24 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.messages.components.*;
-import org.apache.kerberos.messages.value.*;
-import org.bouncycastle.asn1.*;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
 
-import java.io.*;
-import java.util.*;
+import org.apache.asn1.der.ASN1InputStream;
+import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DERBitString;
+import org.apache.asn1.der.DERGeneralString;
+import org.apache.asn1.der.DERGeneralizedTime;
+import org.apache.asn1.der.DERObject;
+import org.apache.asn1.der.DERSequence;
+import org.apache.asn1.der.DERTaggedObject;
+import org.apache.kerberos.messages.components.EncTicketPart;
+import org.apache.kerberos.messages.components.EncTicketPartModifier;
+import org.apache.kerberos.messages.value.TicketFlags;
 
 public class EncTicketPartDecoder extends KerberosMessageDecoder {
 	

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,26 +14,44 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.messages.*;
-import org.apache.kerberos.messages.components.*;
-import org.apache.kerberos.messages.value.*;
-import org.bouncycastle.asn1.*;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.Enumeration;
 
-import java.io.*;
-import java.util.*;
+import org.apache.asn1.der.ASN1InputStream;
+import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DERBitString;
+import org.apache.asn1.der.DERGeneralString;
+import org.apache.asn1.der.DERGeneralizedTime;
+import org.apache.asn1.der.DERInteger;
+import org.apache.asn1.der.DERObject;
+import org.apache.asn1.der.DEROctetString;
+import org.apache.asn1.der.DERSequence;
+import org.apache.asn1.der.DERTaggedObject;
+import org.apache.kerberos.messages.KdcRequest;
+import org.apache.kerberos.messages.MessageType;
+import org.apache.kerberos.messages.components.Ticket;
+import org.apache.kerberos.messages.value.KdcOptions;
+import org.apache.kerberos.messages.value.PreAuthenticationData;
+import org.apache.kerberos.messages.value.PreAuthenticationDataModifier;
+import org.apache.kerberos.messages.value.PreAuthenticationDataType;
+import org.apache.kerberos.messages.value.RequestBody;
+import org.apache.kerberos.messages.value.RequestBodyModifier;
 
-public class KdcRequestDecoder extends KerberosMessageDecoder {
 
-	public KdcRequest decode(InputStream is) throws IOException {
-		
-		ASN1InputStream ais = new ASN1InputStream(is);
+public class KdcRequestDecoder extends KerberosMessageDecoder
+{
+	public KdcRequest decode( ByteBuffer in ) throws IOException
+	{
+		ASN1InputStream ais = new ASN1InputStream( newInputStream( in ) );
 		
 		DERApplicationSpecific app = (DERApplicationSpecific) ais.readObject();
 		
 		DERSequence kdcreq = (DERSequence) app.getObject();
-		return decodeKdcRequestSequence(kdcreq);
+		return decodeKdcRequestSequence( kdcreq );
 	}
 	
 	/*

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,19 +14,73 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.crypto.checksum.*;
-import org.apache.kerberos.crypto.encryption.*;
-import org.apache.kerberos.messages.components.*;
-import org.apache.kerberos.messages.value.*;
-import org.bouncycastle.asn1.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.Enumeration;
 
-import java.io.*;
-import java.text.*;
-import java.util.*;
+import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DERGeneralString;
+import org.apache.asn1.der.DERGeneralizedTime;
+import org.apache.asn1.der.DERInteger;
+import org.apache.asn1.der.DERObject;
+import org.apache.asn1.der.DEROctetString;
+import org.apache.asn1.der.DERSequence;
+import org.apache.asn1.der.DERTaggedObject;
+import org.apache.kerberos.crypto.checksum.ChecksumType;
+import org.apache.kerberos.crypto.encryption.EncryptionType;
+import org.apache.kerberos.messages.components.Authenticator;
+import org.apache.kerberos.messages.components.AuthenticatorModifier;
+import org.apache.kerberos.messages.components.Ticket;
+import org.apache.kerberos.messages.components.TicketModifier;
+import org.apache.kerberos.messages.value.AuthorizationData;
+import org.apache.kerberos.messages.value.AuthorizationDataEntry;
+import org.apache.kerberos.messages.value.AuthorizationType;
+import org.apache.kerberos.messages.value.Checksum;
+import org.apache.kerberos.messages.value.EncryptedData;
+import org.apache.kerberos.messages.value.EncryptedDataModifier;
+import org.apache.kerberos.messages.value.EncryptionKey;
+import org.apache.kerberos.messages.value.HostAddress;
+import org.apache.kerberos.messages.value.HostAddressType;
+import org.apache.kerberos.messages.value.HostAddresses;
+import org.apache.kerberos.messages.value.KerberosTime;
+import org.apache.kerberos.messages.value.LastRequest;
+import org.apache.kerberos.messages.value.LastRequestEntry;
+import org.apache.kerberos.messages.value.LastRequestType;
+import org.apache.kerberos.messages.value.PrincipalName;
+import org.apache.kerberos.messages.value.PrincipalNameModifier;
+import org.apache.kerberos.messages.value.TransitedEncoding;
+import org.apache.kerberos.messages.value.TransitedEncodingType;
 
-public abstract class KerberosMessageDecoder {
+public abstract class KerberosMessageDecoder
+{
+    public InputStream newInputStream( final ByteBuffer buf )
+    {
+        return new InputStream()
+		{
+            public synchronized int read() throws IOException
+			{
+                if ( !buf.hasRemaining() )
+                {
+                    return -1;
+                }
+                return buf.get();
+            }
+    
+            public synchronized int read( byte[] bytes, int off, int len ) throws IOException
+			{
+                // Read only what's left
+                len = Math.min( len, buf.remaining() );
+                buf.get( bytes, off, len );
+                return len;
+            }
+        };
+    }
 	
 	/*
 	Ticket ::=                    [APPLICATION 1] SEQUENCE {

Modified: incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java?view=diff&rev=125326&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java&r1=125325&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java&r2=125326
==============================================================================
--- incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java	(original)
+++ incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java	Sat Jan 15 17:12:29 2005
@@ -14,14 +14,21 @@
  *   limitations under the License.
  *
  */
+
 package org.apache.kerberos.io.decoder;
 
-import org.apache.kerberos.messages.*;
-import org.apache.kerberos.messages.application.*;
-import org.bouncycastle.asn1.*;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.Enumeration;
 
-import java.io.*;
-import java.util.*;
+import org.apache.asn1.der.ASN1InputStream;
+import org.apache.asn1.der.DERApplicationSpecific;
+import org.apache.asn1.der.DERInteger;
+import org.apache.asn1.der.DERObject;
+import org.apache.asn1.der.DERSequence;
+import org.apache.asn1.der.DERTaggedObject;
+import org.apache.kerberos.messages.MessageType;
+import org.apache.kerberos.messages.application.PrivateMessage;
 
 public class PrivateMessageDecoder extends KerberosMessageDecoder {