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; } }
