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/02 19:49:25 UTC

svn commit: r1041525 - /directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.java

Author: elecharny
Date: Thu Dec  2 18:49:24 2010
New Revision: 1041525

URL: http://svn.apache.org/viewvc?rev=1041525&view=rev
Log:
Fixed the encode method, removed the Encoder map

Modified:
    directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.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=1041525&r1=1041524&r2=1041525&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 Thu Dec  2 18:49:24 2010
@@ -22,6 +22,7 @@ package org.apache.directory.server.kerb
 
 
 import java.io.IOException;
+import java.nio.ByteBuffer;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -41,10 +42,14 @@ import org.apache.directory.server.kerbe
 import org.apache.directory.server.kerberos.shared.messages.components.EncKdcRepPart;
 import org.apache.directory.server.kerberos.shared.messages.components.EncKrbPrivPart;
 import org.apache.directory.server.kerberos.shared.messages.value.EncryptedTimeStamp;
+import org.apache.directory.shared.asn1.codec.EncoderException;
 import org.apache.directory.shared.kerberos.codec.types.EncryptionType;
+import org.apache.directory.shared.kerberos.components.AuthorizationData;
 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.messages.Authenticator;
+import org.apache.directory.shared.kerberos.messages.KerberosMessage;
 
 
 /**
@@ -56,10 +61,9 @@ import org.apache.directory.shared.kerbe
  */
 public class CipherTextHandler
 {
-    /** a map of the default encodable class names to the encoder class names */
-    private static final Map DEFAULT_ENCODERS;
     /** a map of the default encodable class names to the decoder class names */
     private static final Map DEFAULT_DECODERS;
+    
     /** a map of the default encryption types to the encryption engine class names */
     private static final Map DEFAULT_CIPHERS;
 
@@ -67,15 +71,10 @@ public class CipherTextHandler
     {
         Map<Class, Class> map = new HashMap<Class, Class>();
 
-        DEFAULT_ENCODERS = Collections.unmodifiableMap( map );
-    }
-
-    static
-    {
-        Map<Class, Class> map = new HashMap<Class, Class>();
-
         map.put( EncTicketPart.class, EncTicketPartDecoder.class );
+        map.put( Authenticator.class, AuthenticatorDecoder.class );
         map.put( EncryptedTimeStamp.class, EncryptedTimestampDecoder.class );
+        map.put( AuthorizationData.class, AuthorizationDataDecoder.class );
         map.put( EncKrbPrivPart.class, EncKrbPrivPartDecoder.class );
         map.put( EncApRepPart.class, EncApRepPartDecoder.class );
         map.put( EncKdcRepPart.class, EncKdcRepPartDecoder.class );
@@ -106,13 +105,15 @@ public class CipherTextHandler
      * @return The Kerberos EncryptedData.
      * @throws KerberosException
      */
-    public EncryptedData seal( EncryptionKey key, Encodable encodable, KeyUsage usage ) throws KerberosException
+    public EncryptedData seal( EncryptionKey key, KerberosMessage message, KeyUsage usage ) throws KerberosException
     {
         try
         {
-            return encrypt( key, encode( encodable ), usage );
+            int bufferSize = message.computeLength();
+            ByteBuffer buffer = ByteBuffer.allocate( bufferSize );
+            return encrypt( key, message.encode( buffer ).array(), usage );
         }
-        catch ( IOException ioe )
+        catch ( EncoderException ioe )
         {
             throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, ioe );
         }
@@ -167,12 +168,6 @@ public class CipherTextHandler
     }
 
 
-    private byte[] encode( Encodable encodable ) throws IOException
-    {
-        return null;
-    }
-
-
     private Encodable decode( Class encodable, byte[] plainText ) throws IOException
     {
         Class clazz = ( Class ) DEFAULT_DECODERS.get( encodable );