You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2010/12/05 03:21:25 UTC
svn commit: r1042275 - in
/directory/apacheds/branches/apacheds-kerberos-codec-2.0:
kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/
kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/i...
Author: elecharny
Date: Sun Dec 5 02:21:24 2010
New Revision: 1042275
URL: http://svn.apache.org/viewvc?rev=1042275&view=rev
Log:
Removed the EncryptedData, EncryptedTimestamp PrincipalName and Ticket decoderq
Removed:
directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/EncryptedDataDecoder.java
directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/EncryptedTimestampDecoder.java
directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/PrincipalNameDecoder.java
directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/io/decoder/TicketDecoder.java
Modified:
directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.java
directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java
directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/sam/TimestampChecker.java
Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.java?rev=1042275&r1=1042274&r2=1042275&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.java (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.java Sun Dec 5 02:21:24 2010
@@ -31,14 +31,12 @@ import org.apache.directory.server.i18n.
import org.apache.directory.server.kerberos.shared.exceptions.KerberosException;
import org.apache.directory.server.kerberos.shared.io.decoder.Decoder;
import org.apache.directory.server.kerberos.shared.io.decoder.DecoderFactory;
-import org.apache.directory.server.kerberos.shared.io.decoder.EncryptedTimestampDecoder;
import org.apache.directory.server.kerberos.shared.messages.Encodable;
import org.apache.directory.shared.asn1.AbstractAsn1Object;
import org.apache.directory.shared.asn1.codec.EncoderException;
import org.apache.directory.shared.kerberos.codec.types.EncryptionType;
import org.apache.directory.shared.kerberos.components.EncryptedData;
import org.apache.directory.shared.kerberos.components.EncryptionKey;
-import org.apache.directory.shared.kerberos.components.PaEncTsEnc;
import org.apache.directory.shared.kerberos.exceptions.ErrorType;
@@ -61,8 +59,6 @@ public class CipherTextHandler
{
Map<Class, Class> map = new HashMap<Class, Class>();
- map.put( PaEncTsEnc.class, EncryptedTimestampDecoder.class );
-
DEFAULT_DECODERS = Collections.unmodifiableMap( map );
}
Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/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/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java?rev=1042275&r1=1042274&r2=1042275&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/protocol/KerberosDecoder.java Sun Dec 5 02:21:24 2010
@@ -36,14 +36,20 @@ import org.apache.directory.shared.kerbe
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;
+import org.apache.directory.shared.kerberos.codec.encryptionKey.EncryptionKeyContainer;
import org.apache.directory.shared.kerberos.codec.paEncTsEnc.PaEncTsEncContainer;
+import org.apache.directory.shared.kerberos.codec.principalName.PrincipalNameContainer;
+import org.apache.directory.shared.kerberos.codec.ticket.TicketContainer;
import org.apache.directory.shared.kerberos.components.EncKdcRepPart;
import org.apache.directory.shared.kerberos.components.EncKrbPrivPart;
import org.apache.directory.shared.kerberos.components.EncTicketPart;
import org.apache.directory.shared.kerberos.components.EncryptedData;
+import org.apache.directory.shared.kerberos.components.EncryptionKey;
import org.apache.directory.shared.kerberos.components.PaEncTsEnc;
+import org.apache.directory.shared.kerberos.components.PrincipalName;
import org.apache.directory.shared.kerberos.exceptions.ErrorType;
import org.apache.directory.shared.kerberos.messages.EncApRepPart;
+import org.apache.directory.shared.kerberos.messages.Ticket;
import org.apache.directory.shared.ldap.codec.LdapDecoder;
import org.apache.mina.core.buffer.IoBuffer;
import org.apache.mina.core.session.IoSession;
@@ -329,4 +335,109 @@ public class KerberosDecoder extends Pro
return encTicketPart;
}
+
+
+ /**
+ * Decode an EncryptionKey structure
+ *
+ * @param data The byte array containing the data structure to decode
+ * @return An instance of EncryptionKey
+ * @throws KerberosException If the decoding fails
+ */
+ public static EncryptionKey decodeEncryptionKey( byte[] data ) throws KerberosException
+ {
+ ByteBuffer stream = ByteBuffer.allocate( data.length );
+ stream.put( data );
+ stream.flip();
+
+ // Allocate a EncryptionKey Container
+ Asn1Container encryptionKeyContainer = new EncryptionKeyContainer();
+
+ Asn1Decoder kerberosDecoder = new Asn1Decoder();
+
+ // Decode the EncryptionKey PDU
+ try
+ {
+ kerberosDecoder.decode( stream, encryptionKeyContainer );
+ }
+ catch ( DecoderException de )
+ {
+ throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, de );
+ }
+
+ // get the decoded EncryptionKey
+ EncryptionKey encryptionKey = ( ( EncryptionKeyContainer ) encryptionKeyContainer ).getEncryptionKey();
+
+ return encryptionKey;
+ }
+
+
+ /**
+ * Decode an PrincipalName structure
+ *
+ * @param data The byte array containing the data structure to decode
+ * @return An instance of PrincipalName
+ * @throws KerberosException If the decoding fails
+ */
+ public static PrincipalName decodePrincipalName( byte[] data ) throws KerberosException
+ {
+ ByteBuffer stream = ByteBuffer.allocate( data.length );
+ stream.put( data );
+ stream.flip();
+
+ // Allocate a PrincipalName Container
+ Asn1Container principalNameContainer = new PrincipalNameContainer();
+
+ Asn1Decoder kerberosDecoder = new Asn1Decoder();
+
+ // Decode the PrincipalName PDU
+ try
+ {
+ kerberosDecoder.decode( stream, principalNameContainer );
+ }
+ catch ( DecoderException de )
+ {
+ throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, de );
+ }
+
+ // get the decoded PrincipalName
+ PrincipalName principalName = ( ( PrincipalNameContainer ) principalNameContainer ).getPrincipalName();
+
+ return principalName;
+ }
+
+
+ /**
+ * Decode a Ticket structure
+ *
+ * @param data The byte array containing the data structure to decode
+ * @return An instance of Ticket
+ * @throws KerberosException If the decoding fails
+ */
+ public static Ticket decodeTicket( byte[] data ) throws KerberosException
+ {
+ ByteBuffer stream = ByteBuffer.allocate( data.length );
+ stream.put( data );
+ stream.flip();
+
+ // Allocate a Ticket Container
+ Asn1Container ticketContainer = new TicketContainer();
+
+ Asn1Decoder kerberosDecoder = new Asn1Decoder();
+
+ // Decode the Ticket PDU
+ try
+ {
+ kerberosDecoder.decode( stream, ticketContainer );
+ }
+ catch ( DecoderException de )
+ {
+ throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, de );
+ }
+
+ // get the decoded Ticket
+ Ticket ticket = ( ( TicketContainer ) ticketContainer ).getTicket();
+
+ return ticket;
+ }
}
Modified: directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/sam/TimestampChecker.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/sam/TimestampChecker.java?rev=1042275&r1=1042274&r2=1042275&view=diff
==============================================================================
--- directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/sam/TimestampChecker.java (original)
+++ directory/apacheds/branches/apacheds-kerberos-codec-2.0/protocol-kerberos/src/main/java/org/apache/directory/server/kerberos/sam/TimestampChecker.java Sun Dec 5 02:21:24 2010
@@ -24,10 +24,10 @@ import java.io.IOException;
import javax.security.auth.kerberos.KerberosKey;
+import org.apache.directory.server.kerberos.protocol.KerberosDecoder;
import org.apache.directory.server.kerberos.shared.crypto.encryption.CipherTextHandler;
import org.apache.directory.server.kerberos.shared.crypto.encryption.KeyUsage;
import org.apache.directory.server.kerberos.shared.exceptions.KerberosException;
-import org.apache.directory.server.kerberos.shared.io.decoder.EncryptedDataDecoder;
import org.apache.directory.shared.kerberos.KerberosTime;
import org.apache.directory.shared.kerberos.codec.types.EncryptionType;
import org.apache.directory.shared.kerberos.components.EncryptedData;
@@ -57,7 +57,7 @@ public class TimestampChecker implements
* Since the pre-auth value is of type PA-ENC-TIMESTAMP, it should be a valid
* ASN.1 PA-ENC-TS-ENC structure, so we can decode it into EncryptedData.
*/
- EncryptedData sadValue = EncryptedDataDecoder.decode( encryptedData );
+ EncryptedData sadValue = KerberosDecoder.decodeEncryptedData( encryptedData );
/*
* Decrypt the EncryptedData structure to get the PA-ENC-TS-ENC. Decode the