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/27 19:47:51 UTC

svn commit: r126636 - in incubator/directory: asn1/trunk/der/src/java/org/apache/asn1/der changepw/trunk/core/src/java/org/apache/changepw/io kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder

Author: erodriguez
Date: Thu Jan 27 10:47:49 2005
New Revision: 126636

URL: http://svn.apache.org/viewcvs?view=rev&rev=126636
Log:
Better input stream encapsulation.
Modified:
   incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/ASN1InputStream.java
   incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/DERApplicationSpecific.java
   incubator/directory/changepw/trunk/core/src/java/org/apache/changepw/io/ChangePasswordDataDecoder.java
   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/asn1/trunk/der/src/java/org/apache/asn1/der/ASN1InputStream.java
Url: http://svn.apache.org/viewcvs/incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/ASN1InputStream.java?view=diff&rev=126636&p1=incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/ASN1InputStream.java&r1=126635&p2=incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/ASN1InputStream.java&r2=126636
==============================================================================
--- incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/ASN1InputStream.java	(original)
+++ incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/ASN1InputStream.java	Thu Jan 27 10:47:49 2005
@@ -23,6 +23,7 @@
 import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.ByteBuffer;
 import java.util.Vector;
 
 /**
@@ -48,9 +49,9 @@
                                         }
                                     };
 
-    public ASN1InputStream( InputStream is )
+    public ASN1InputStream( ByteBuffer in )
     {
-        super( is );
+        super( newInputStream( in ) );
     }
 
     public ASN1InputStream( byte[] input )
@@ -58,6 +59,32 @@
         super( new ByteArrayInputStream( input ) );
     }
     
+    private static InputStream newInputStream( final ByteBuffer buf )
+    {
+        return new InputStream()
+		{
+            public synchronized int read() throws IOException
+			{
+                if ( !buf.hasRemaining() )
+                {
+                    return -1;
+                }
+                
+                int result = buf.get() & 0x000000FF;
+                
+                return result;
+            }
+    
+            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;
+            }
+        };
+    }
+    
     protected int readLength()
         throws IOException
     {
@@ -145,8 +172,7 @@
         case DERObject.NULL:
             return new DERNull();   
         case DERObject.SEQUENCE | DERObject.CONSTRUCTED:
-            ByteArrayInputStream bais = new ByteArrayInputStream( bytes );
-            ASN1InputStream      ais  = new ASN1InputStream( bytes );
+            ASN1InputStream ais = new ASN1InputStream( bytes );
             
             DERSequence sequence = new DERSequence();
 
@@ -160,8 +186,7 @@
 
             return sequence;
         case DERObject.SET | DERObject.CONSTRUCTED:
-            bais = new ByteArrayInputStream( bytes );
-            ais = new ASN1InputStream( bais );
+            ais = new ASN1InputStream( bytes );
             DERSet set = new DERSet();
 
             obj = ais.readObject();
@@ -250,8 +275,7 @@
                     return new DERTaggedObject( false, tagNo, new DEROctetString( bytes ) );
                 }
 
-                bais = new ByteArrayInputStream( bytes );
-                ais = new ASN1InputStream( bais );
+                ais = new ASN1InputStream( bytes );
 
                 DEREncodable encodable = ais.readObject();
 

Modified: incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/DERApplicationSpecific.java
Url: http://svn.apache.org/viewcvs/incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/DERApplicationSpecific.java?view=diff&rev=126636&p1=incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/DERApplicationSpecific.java&r1=126635&p2=incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/DERApplicationSpecific.java&r2=126636
==============================================================================
--- incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/DERApplicationSpecific.java	(original)
+++ incubator/directory/asn1/trunk/der/src/java/org/apache/asn1/der/DERApplicationSpecific.java	Thu Jan 27 10:47:49 2005
@@ -17,7 +17,6 @@
 
 package org.apache.asn1.der;
 
-import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 
@@ -61,7 +60,7 @@
     public DEREncodable getObject() 
         throws IOException 
     {
-        return new ASN1InputStream( new ByteArrayInputStream( getOctets() ) ).readObject();
+        return new ASN1InputStream( getOctets() ).readObject();
     }
     
     public void encode( ASN1OutputStream out ) throws IOException

Modified: incubator/directory/changepw/trunk/core/src/java/org/apache/changepw/io/ChangePasswordDataDecoder.java
Url: http://svn.apache.org/viewcvs/incubator/directory/changepw/trunk/core/src/java/org/apache/changepw/io/ChangePasswordDataDecoder.java?view=diff&rev=126636&p1=incubator/directory/changepw/trunk/core/src/java/org/apache/changepw/io/ChangePasswordDataDecoder.java&r1=126635&p2=incubator/directory/changepw/trunk/core/src/java/org/apache/changepw/io/ChangePasswordDataDecoder.java&r2=126636
==============================================================================
--- incubator/directory/changepw/trunk/core/src/java/org/apache/changepw/io/ChangePasswordDataDecoder.java	(original)
+++ incubator/directory/changepw/trunk/core/src/java/org/apache/changepw/io/ChangePasswordDataDecoder.java	Thu Jan 27 10:47:49 2005
@@ -17,7 +17,6 @@
 
 package org.apache.changepw.io;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.Enumeration;
 
@@ -37,8 +36,7 @@
 	public ChangePasswordData decodeChangePasswordData( byte[] encodedChangePasswdData )
 		throws IOException
 	{
-		ByteArrayInputStream bais = new ByteArrayInputStream( encodedChangePasswdData );
-		ASN1InputStream ais = new ASN1InputStream( bais );
+		ASN1InputStream ais = new ASN1InputStream( encodedChangePasswdData );
 		
 		DERSequence sequence = (DERSequence) ais.readObject();
 		

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/ApplicationRequestDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -17,7 +17,6 @@
 
 package org.apache.kerberos.io.decoder;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.Enumeration;
 
@@ -33,17 +32,17 @@
 import org.apache.kerberos.messages.value.ApOptions;
 
 
-public class ApplicationRequestDecoder extends KerberosMessageDecoder {
-	
-	public ApplicationRequest decode(byte[] encodedAuthHeader) throws IOException {
-		
-		ByteArrayInputStream bais = new ByteArrayInputStream(encodedAuthHeader);
-		ASN1InputStream ais = new ASN1InputStream(bais);
+public class ApplicationRequestDecoder extends KerberosMessageDecoder
+{
+	public ApplicationRequest decode( byte[] encodedAuthHeader ) throws IOException
+	{
+		ASN1InputStream ais = new ASN1InputStream( encodedAuthHeader );
 
 		DERApplicationSpecific app = (DERApplicationSpecific) ais.readObject();
 		
 		DERSequence apreq = (DERSequence) app.getObject();
-		return decodeApplicationRequestSequence(apreq);
+		
+		return decodeApplicationRequestSequence( apreq );
 	}
 	
 	/*
@@ -56,18 +55,20 @@
         authenticator[4]              EncryptedData
         }
     */
-	private ApplicationRequest decodeApplicationRequestSequence(DERSequence sequence) throws IOException {
-		
+	private ApplicationRequest decodeApplicationRequestSequence( DERSequence sequence ) throws IOException
+	{
 		ApplicationRequest authHeader = new ApplicationRequest();
 		
-		for (Enumeration e = sequence.getObjects(); e.hasMoreElements();) {
+		for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+		{
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
-			switch (tag) {
+			
+			switch ( tag ) {
 				case 0:
 					DERInteger tag0 = (DERInteger) derObject;
-					authHeader.setProtocolVersionNumber(tag0.intValue());
+					authHeader.setProtocolVersionNumber( tag0.intValue() );
 					break;
 				case 1:
 					DERInteger tag1 = (DERInteger) derObject;
@@ -79,14 +80,14 @@
 					break;
 				case 3:
 					DERApplicationSpecific tag3 = (DERApplicationSpecific)derObject;
-					authHeader.setTicket(decodeTicket(tag3));
+					authHeader.setTicket( decodeTicket( tag3 ) );
 					break;
 				case 4:
 					DERSequence tag4 = (DERSequence)derObject;
-					authHeader.setEncPart(decodeEncryptedData(tag4));
+					authHeader.setEncPart( decodeEncryptedData( tag4 ) );
 					break;
 			    default:
-			    	System.out.println(derObject);
+			    	System.out.println( derObject );
 			    	break;
 			}
 		}

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthenticatorDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -17,7 +17,6 @@
 
 package org.apache.kerberos.io.decoder;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
 import org.apache.asn1.der.ASN1InputStream;
@@ -25,18 +24,18 @@
 import org.apache.asn1.der.DERSequence;
 import org.apache.kerberos.messages.components.Authenticator;
 
-public class AuthenticatorDecoder extends KerberosMessageDecoder {
-	
-	public Authenticator decode(byte[] encodedAuthenticator) throws IOException {
-		
-		ByteArrayInputStream bais = new ByteArrayInputStream(encodedAuthenticator);
-		ASN1InputStream ais = new ASN1InputStream(bais);
+
+public class AuthenticatorDecoder extends KerberosMessageDecoder
+{
+	public Authenticator decode( byte[] encodedAuthenticator ) throws IOException
+	{
+		ASN1InputStream ais = new ASN1InputStream( encodedAuthenticator );
 		
 		DERApplicationSpecific app = (DERApplicationSpecific) ais.readObject();
 		
 		DERSequence sequence = (DERSequence) app.getObject();
 		
-		return decodeAuthenticator(sequence);
+		return decodeAuthenticator( sequence );
 	}
 }
 

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/AuthorizationDataDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -17,23 +17,22 @@
 
 package org.apache.kerberos.io.decoder;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
 import org.apache.asn1.der.ASN1InputStream;
 import org.apache.asn1.der.DERSequence;
 import org.apache.kerberos.messages.value.AuthorizationData;
 
-public class AuthorizationDataDecoder extends KerberosMessageDecoder {
-	
-	public AuthorizationData decode(byte[] encodedAuthData) throws IOException {
-		
-		ByteArrayInputStream bais = new ByteArrayInputStream(encodedAuthData);
-		ASN1InputStream ais = new ASN1InputStream(bais);
+
+public class AuthorizationDataDecoder extends KerberosMessageDecoder
+{
+	public AuthorizationData decode( byte[] encodedAuthData ) throws IOException
+	{
+		ASN1InputStream ais = new ASN1InputStream( encodedAuthData );
 
 		DERSequence sequence = (DERSequence) ais.readObject();
 		
-		return decodeAuthorizationData(sequence);
+		return decodeAuthorizationData( sequence );
 	}
 }
 

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncKrbPrivPartDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -17,7 +17,6 @@
 
 package org.apache.kerberos.io.decoder;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.Enumeration;
 
@@ -32,55 +31,57 @@
 import org.apache.kerberos.messages.components.EncKrbPrivPart;
 import org.apache.kerberos.messages.components.EncKrbPrivPartModifier;
 
-public class EncKrbPrivPartDecoder extends KerberosMessageDecoder {
-	
-	public EncKrbPrivPart decode(byte[] encodedPrivatePart) throws IOException {
-		
-		ByteArrayInputStream bais = new ByteArrayInputStream(encodedPrivatePart);
-		ASN1InputStream ais = new ASN1InputStream(bais);
+
+public class EncKrbPrivPartDecoder extends KerberosMessageDecoder
+{
+	public EncKrbPrivPart decode( byte[] encodedPrivatePart ) throws IOException
+	{
+		ASN1InputStream ais = new ASN1InputStream( encodedPrivatePart );
 
 		DERApplicationSpecific app = (DERApplicationSpecific) ais.readObject();
 		
 		DERSequence privatePart = (DERSequence) app.getObject();
 		
-		return decodePrivatePartSequence(privatePart);
+		return decodePrivatePartSequence( privatePart );
 	}
 	
-	private EncKrbPrivPart decodePrivatePartSequence(DERSequence sequence) {
-		
+	private EncKrbPrivPart decodePrivatePartSequence( DERSequence sequence )
+	{
 		EncKrbPrivPartModifier modifier = new EncKrbPrivPartModifier();
 		
-		for (Enumeration e = sequence.getObjects(); e.hasMoreElements();) {
-			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
+		for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+		{
+			DERTaggedObject object = (DERTaggedObject) e.nextElement();
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
-			switch (tag) {
+			
+			switch ( tag ) {
 				case 0:
 					DEROctetString tag0 = (DEROctetString) derObject;
-					modifier.setUserData(tag0.getOctets());
+					modifier.setUserData( tag0.getOctets() );
 					break;
 				case 1:
 					DERGeneralizedTime tag1 = (DERGeneralizedTime) derObject;
-					modifier.setTimestamp(decodeKerberosTime(tag1));
+					modifier.setTimestamp( decodeKerberosTime( tag1 ) );
 					break;
 				case 2:
 					DERInteger tag2 = (DERInteger)derObject;
-					modifier.setMicroSecond(new Integer(tag2.intValue()));
+					modifier.setMicroSecond( new Integer( tag2.intValue() ) );
 					break;
 				case 3:
 					DERInteger tag3 = (DERInteger)derObject;
-					modifier.setSequenceNumber(new Integer(tag3.intValue()));
+					modifier.setSequenceNumber( new Integer( tag3.intValue() ) );
 					break;
 				case 4:
 					DERSequence tag4 = (DERSequence)derObject;
-					modifier.setSenderAddress(decodeHostAddress(tag4));
+					modifier.setSenderAddress( decodeHostAddress( tag4 ) );
 					break;
 				case 5:
 					DERSequence tag5 = (DERSequence)derObject;
-					modifier.setRecipientAddress(decodeHostAddress(tag5));
+					modifier.setRecipientAddress( decodeHostAddress( tag5 ) );
 					break;
 			    default:
-			    	System.out.println(derObject);
+			    	System.out.println( derObject );
 			    	break;
 			}
 		}

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/EncTicketPartDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -17,7 +17,6 @@
 
 package org.apache.kerberos.io.decoder;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.Enumeration;
 
@@ -33,19 +32,18 @@
 import org.apache.kerberos.messages.components.EncTicketPartModifier;
 import org.apache.kerberos.messages.value.TicketFlags;
 
-public class EncTicketPartDecoder extends KerberosMessageDecoder {
-	
-	public EncTicketPart decode(byte[] encodedTicket) throws IOException {
-		
-		ByteArrayInputStream bais = new ByteArrayInputStream(encodedTicket);
-		ASN1InputStream ais = new ASN1InputStream(bais);
+
+public class EncTicketPartDecoder extends KerberosMessageDecoder
+{
+	public EncTicketPart decode( byte[] encodedTicket ) throws IOException
+	{
+		ASN1InputStream ais = new ASN1InputStream( encodedTicket );
 		
 		DERApplicationSpecific app = (DERApplicationSpecific) ais.readObject();
 		
 		DERSequence sequence = (DERSequence) app.getObject();
 		
-		return decodeEncTicketPartSequence(sequence);
-		
+		return decodeEncTicketPartSequence( sequence );
 	}
 	
 	/*
@@ -63,61 +61,62 @@
 	                      caddr[9]             HostAddresses OPTIONAL,
 	                      authorization-data[10]   AuthorizationData OPTIONAL
 	}*/
-	private EncTicketPart decodeEncTicketPartSequence(DERSequence sequence) {
+	private EncTicketPart decodeEncTicketPartSequence( DERSequence sequence ) {
 		
 		EncTicketPartModifier modifier = new EncTicketPartModifier();
 		
-		for (Enumeration e = sequence.getObjects(); e.hasMoreElements();) {
-			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
+		for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); ) {
+			DERTaggedObject object = (DERTaggedObject) e.nextElement();
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
-			switch (tag) {
+			
+			switch ( tag ) {
 				case 0:
 					DERBitString tag0 = (DERBitString)derObject;
-					modifier.setFlags(new TicketFlags(tag0.getOctets()));
+					modifier.setFlags( new TicketFlags( tag0.getOctets() ) );
 					break;
 				case 1:
 					DERSequence tag1 = (DERSequence) derObject;
-					modifier.setSessionKey(decodeEncryptionKey(tag1));
+					modifier.setSessionKey( decodeEncryptionKey( tag1 ) );
 					break;
 				case 2:
 					DERGeneralString tag2 = (DERGeneralString)derObject;
-					modifier.setClientRealm(tag2.getString());
+					modifier.setClientRealm( tag2.getString() );
 					break;
 				case 3:
 					DERSequence tag3 = (DERSequence)derObject;
-					modifier.setClientName(decodePrincipalName(tag3));
+					modifier.setClientName( decodePrincipalName( tag3 ) );
 					break;
 				case 4:
 					DERSequence tag4 = (DERSequence)derObject;
-					modifier.setTransitedEncoding(decodeTransitedEncoding(tag4));
+					modifier.setTransitedEncoding( decodeTransitedEncoding( tag4 ) );
 					break;
 				case 5:
 					DERGeneralizedTime tag5 = (DERGeneralizedTime)derObject;
-					modifier.setAuthTime(decodeKerberosTime(tag5));
+					modifier.setAuthTime( decodeKerberosTime( tag5 ) );
 					break;
 				case 6:
 					DERGeneralizedTime tag6 = (DERGeneralizedTime)derObject;
-					modifier.setStartTime(decodeKerberosTime(tag6));
+					modifier.setStartTime( decodeKerberosTime( tag6 ) );
 					break;
 				case 7:
 					DERGeneralizedTime tag7 = (DERGeneralizedTime)derObject;
-					modifier.setEndTime(decodeKerberosTime(tag7));
+					modifier.setEndTime( decodeKerberosTime( tag7 ) );
 					break;
 				case 8:
 					DERGeneralizedTime tag8 = (DERGeneralizedTime)derObject;
-					modifier.setRenewTill(decodeKerberosTime(tag8));
+					modifier.setRenewTill( decodeKerberosTime( tag8 ) );
 					break;
 				case 9:
 					DERSequence tag9 = (DERSequence)derObject;
-					modifier.setClientAddresses(decodeHostAddresses(tag9));
+					modifier.setClientAddresses( decodeHostAddresses( tag9 ) );
 					break;
 				case 10:
 					DERSequence tag10 = (DERSequence)derObject;
-					modifier.setAuthorizationData(decodeAuthorizationData(tag10));
+					modifier.setAuthorizationData( decodeAuthorizationData( tag10 ) );
 					break;
 			    default:
-			    	System.out.println(derObject);
+			    	System.out.println( derObject );
 			    	break;
 			}
 		}

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KdcRequestDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -46,7 +46,7 @@
 {
 	public KdcRequest decode( ByteBuffer in ) throws IOException
 	{
-		ASN1InputStream ais = new ASN1InputStream( newInputStream( in ) );
+		ASN1InputStream ais = new ASN1InputStream( in );
 		
 		DERApplicationSpecific app = (DERApplicationSpecific) ais.readObject();
 		
@@ -77,6 +77,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 1:
 					DERInteger tag1 = (DERInteger)derObject;
@@ -131,6 +132,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 1:
 					DERInteger padataType = (DERInteger) derObject;
@@ -176,6 +178,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERBitString kdcOptions = (DERBitString)derObject;

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/KerberosMessageDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -18,8 +18,6 @@
 package org.apache.kerberos.io.decoder;
 
 import java.io.IOException;
-import java.io.InputStream;
-import java.nio.ByteBuffer;
 import java.text.ParseException;
 import java.util.Date;
 import java.util.Enumeration;
@@ -60,32 +58,6 @@
 
 public abstract class KerberosMessageDecoder
 {
-    public InputStream newInputStream( final ByteBuffer buf )
-    {
-        return new InputStream()
-		{
-            public synchronized int read() throws IOException
-			{
-                if ( !buf.hasRemaining() )
-                {
-                    return -1;
-                }
-                
-                int result = buf.get() & 0x000000FF;
-                
-                return result;
-            }
-    
-            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 {
         tkt-vno[0]                   INTEGER,
@@ -103,6 +75,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger tag0 = (DERInteger)derObject;
@@ -142,6 +115,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger etype = (DERInteger)derObject;
@@ -176,6 +150,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger nameType = (DERInteger)derObject;
@@ -245,6 +220,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger addressType = (DERInteger)derObject;
@@ -294,6 +270,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger tag0 = (DERInteger)derObject;
@@ -324,6 +301,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger tag0 = (DERInteger)derObject;
@@ -370,6 +348,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger tag0 = (DERInteger)derObject;
@@ -399,6 +378,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger tag0 = (DERInteger) derObject;
@@ -443,6 +423,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger tag0 = (DERInteger)derObject;
@@ -483,6 +464,7 @@
 			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
+			
 			switch (tag) {
 				case 0:
 					DERInteger tag0 = (DERInteger)derObject;

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=126636&p1=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java&r1=126635&p2=incubator/directory/kerberos/trunk/core/src/java/org/apache/kerberos/io/decoder/PrivateMessageDecoder.java&r2=126636
==============================================================================
--- 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	Thu Jan 27 10:47:49 2005
@@ -17,7 +17,6 @@
 
 package org.apache.kerberos.io.decoder;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.util.Enumeration;
 
@@ -30,45 +29,49 @@
 import org.apache.kerberos.messages.MessageType;
 import org.apache.kerberos.messages.application.PrivateMessage;
 
-public class PrivateMessageDecoder extends KerberosMessageDecoder {
-	
-	public PrivateMessage decode(byte[] encodedPrivateMessage) throws IOException {
-		
-		ByteArrayInputStream bais = new ByteArrayInputStream(encodedPrivateMessage);
-		ASN1InputStream ais = new ASN1InputStream(bais);
+
+public class PrivateMessageDecoder extends KerberosMessageDecoder
+{
+	public PrivateMessage decode( byte[] encodedPrivateMessage ) throws IOException
+	{
+		ASN1InputStream ais = new ASN1InputStream( encodedPrivateMessage );
 
 		DERApplicationSpecific app = (DERApplicationSpecific) ais.readObject();
 		
 		DERSequence privateMessage = (DERSequence) app.getObject();
-		return decodePrivateMessageSequence(privateMessage);
+		
+		return decodePrivateMessageSequence( privateMessage );
 	}
 	
-	private PrivateMessage decodePrivateMessageSequence(DERSequence sequence) {
-		
+	private PrivateMessage decodePrivateMessageSequence(DERSequence sequence)
+	{
 		PrivateMessage message = new PrivateMessage();
 		
-		for (Enumeration e = sequence.getObjects(); e.hasMoreElements();) {
-			DERTaggedObject object = ((DERTaggedObject) e.nextElement());
+		for ( Enumeration e = sequence.getObjects(); e.hasMoreElements(); )
+		{
+			DERTaggedObject object = (DERTaggedObject) e.nextElement();
 			int tag = object.getTagNo();
 			DEREncodable derObject = object.getObject();
-			switch (tag) {
+			
+			switch ( tag ) {
 				case 0:
 					DERInteger tag0 = (DERInteger) derObject;
-					message.setProtocolVersionNumber(tag0.intValue());
+					message.setProtocolVersionNumber( tag0.intValue() );
 					break;
 				case 1:
 					DERInteger tag1 = (DERInteger) derObject;
-					message.setMessageType(MessageType.getTypeByOrdinal(tag1.intValue()));
+					message.setMessageType( MessageType.getTypeByOrdinal( tag1.intValue() ) );
 					break;
 				case 3:
 					DERSequence tag3 = (DERSequence)derObject;
-					message.setEncryptedPart(decodeEncryptedData(tag3));
+					message.setEncryptedPart( decodeEncryptedData( tag3 ) );
 					break;
 			    default:
-			    	System.out.println(derObject);
+			    	System.out.println( derObject );
 			    	break;
 			}
 		}
+		
 		return message;
 	}
 }