o added a method to decode EncAsRepPart
git-svn-id: https://svn.apache.org/repos/asf/directory/apacheds/branches/apacheds-kerberos-codec-2.0@1043588 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java b/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java
index 47aa5c7..708c4d0 100644
--- a/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java
+++ b/kerberos-codec/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java
@@ -34,6 +34,7 @@
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.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 @@
}
catch ( DecoderException de )
{
+ de.printStackTrace();
throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, de );
}
@@ -618,4 +621,40 @@
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;
+ }
+
}