You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2010/12/08 19:46:02 UTC

svn commit: r1043588 - /directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java

Author: kayyagari
Date: Wed Dec  8 18:46:02 2010
New Revision: 1043588

URL: http://svn.apache.org/viewvc?rev=1043588&view=rev
Log:
o added a method to decode EncAsRepPart

Modified:
    directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java

Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java?rev=1043588&r1=1043587&r2=1043588&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java Wed Dec  8 18:46:02 2010
@@ -34,6 +34,7 @@ import org.apache.directory.shared.kerbe
 import org.apache.directory.shared.kerberos.codec.authenticator.AuthenticatorContainer;
 import org.apache.directory.shared.kerberos.codec.authorizationData.AuthorizationDataContainer;
 import org.apache.directory.shared.kerberos.codec.encApRepPart.EncApRepPartContainer;
+import org.apache.directory.shared.kerberos.codec.encAsRepPart.EncAsRepPartContainer;
 import org.apache.directory.shared.kerberos.codec.encKrbPrivPart.EncKrbPrivPartContainer;
 import org.apache.directory.shared.kerberos.codec.encTicketPart.EncTicketPartContainer;
 import org.apache.directory.shared.kerberos.codec.encryptedData.EncryptedDataContainer;
@@ -56,6 +57,7 @@ import org.apache.directory.shared.kerbe
 import org.apache.directory.shared.kerberos.messages.ApReq;
 import org.apache.directory.shared.kerberos.messages.Authenticator;
 import org.apache.directory.shared.kerberos.messages.EncApRepPart;
+import org.apache.directory.shared.kerberos.messages.EncAsRepPart;
 import org.apache.directory.shared.kerberos.messages.KrbPriv;
 import org.apache.directory.shared.kerberos.messages.Ticket;
 import org.apache.directory.shared.ldap.codec.LdapDecoder;
@@ -260,6 +262,7 @@ public class KerberosDecoder extends Pro
         }
         catch ( DecoderException de )
         {
+            de.printStackTrace();
             throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, de );
         }
 
@@ -618,4 +621,40 @@ public class KerberosDecoder extends Pro
 
         return krbPriv;
     }
+    
+    
+    /**
+     * Decode an EncAsRepPart structure
+     * 
+     * @param data The byte array containing the data structure to decode
+     * @return An instance of EncAsRepPart
+     * @throws KerberosException If the decoding fails
+     */
+    public static EncAsRepPart decodeEncAsRepPart( byte[] data ) throws KerberosException
+    {
+        ByteBuffer stream = ByteBuffer.allocate( data.length );
+        stream.put( data );
+        stream.flip();
+        
+        // Allocate a EncAsRepPart Container
+        Asn1Container encAsRepPartContainer = new EncAsRepPartContainer( stream );
+
+        Asn1Decoder kerberosDecoder = new Asn1Decoder();
+
+        // Decode the EncAsRepPart PDU
+        try
+        {
+            kerberosDecoder.decode( stream, encAsRepPartContainer );
+        }
+        catch ( DecoderException de )
+        {
+            throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, de );
+        }
+
+        // get the decoded EncAsRepPart
+        EncAsRepPart encAsRepPart = ( ( EncAsRepPartContainer ) encAsRepPartContainer ).getEncAsRepPart();
+
+        return encAsRepPart;
+    }
+
 }