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/05 11:55:27 UTC
svn commit: r1042311 -
/directory/apacheds/branches/apacheds-kerberos-codec-2.0/kerberos-shared/src/main/java/org/apache/directory/server/kerberos/shared/crypto/encryption/CipherTextHandler.java
Author: kayyagari
Date: Sun Dec 5 10:55:27 2010
New Revision: 1042311
URL: http://svn.apache.org/viewvc?rev=1042311&view=rev
Log:
o removed unused methods and updated javadoc
o added generics to the default ciphers' 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=1042311&r1=1042310&r2=1042311&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 10:55:27 2010
@@ -21,17 +21,12 @@
package org.apache.directory.server.kerberos.shared.crypto.encryption;
-import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import org.apache.directory.server.i18n.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.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;
@@ -41,30 +36,19 @@ import org.apache.directory.shared.kerbe
/**
- * A Hashed Adapter encapsulating ASN.1 encoders and decoders and cipher text engines to
- * perform seal() and unseal() operations. A seal() operation performs an encode and an
- * encrypt, while an unseal() operation performs a decrypt and a decode.
+ * A Hashed Adapter encapsulating ASN.1 cipher text engines to
+ * perform encrypt() and decrypt() operations.
*
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class CipherTextHandler
{
- /** 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;
+ private static final Map<EncryptionType, Class<? extends EncryptionEngine>> DEFAULT_CIPHERS;
static
{
- Map<Class, Class> map = new HashMap<Class, Class>();
-
- DEFAULT_DECODERS = Collections.unmodifiableMap( map );
- }
-
- static
- {
- Map<EncryptionType, Class> map = new HashMap<EncryptionType, Class>();
+ Map<EncryptionType, Class<? extends EncryptionEngine>> map = new HashMap<EncryptionType, Class<? extends EncryptionEngine>>();
map.put( EncryptionType.DES_CBC_MD5, DesCbcMd5Encryption.class );
map.put( EncryptionType.DES3_CBC_SHA1_KD, Des3CbcSha1KdEncryption.class );
@@ -104,34 +88,6 @@ public class CipherTextHandler
}
- /**
- * Perform a decrypt and a decode.
- *
- * @param hint The class the encrypted data is expected to contain.
- * @param key The key to use for decryption.
- * @param data The data to decrypt.
- * @param usage The key usage.
- * @return The Kerberos object resulting from a successful decrypt and decode.
- * @throws KerberosException
- */
- public Encodable decrypt( Class hint, EncryptionKey key, EncryptedData data, KeyUsage usage )
- throws KerberosException
- {
- try
- {
- return decode( hint, decrypt( key, data, usage ) );
- }
- catch ( IOException ioe )
- {
- throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, ioe );
- }
- catch ( ClassCastException cce )
- {
- throw new KerberosException( ErrorType.KRB_AP_ERR_BAD_INTEGRITY, cce );
- }
- }
-
-
public EncryptedData encrypt( EncryptionKey key, byte[] plainText, KeyUsage usage ) throws KerberosException
{
EncryptionEngine engine = getEngine( key );
@@ -157,36 +113,6 @@ public class CipherTextHandler
}
- private Encodable decode( Class encodable, byte[] plainText ) throws IOException
- {
- Class clazz = ( Class ) DEFAULT_DECODERS.get( encodable );
-
- if ( clazz == null )
- {
- throw new IOException( I18n.err( I18n.ERR_600, encodable ) );
- }
-
- DecoderFactory factory = null;
-
- try
- {
- factory = ( DecoderFactory ) clazz.newInstance();
- }
- catch ( IllegalAccessException iae )
- {
- throw new IOException( I18n.err( I18n.ERR_601, encodable ) );
- }
- catch ( InstantiationException ie )
- {
- throw new IOException( I18n.err( I18n.ERR_602, encodable ) );
- }
-
- Decoder decoder = factory.getDecoder();
-
- return decoder.decode( plainText );
- }
-
-
private EncryptionEngine getEngine( EncryptionKey key ) throws KerberosException
{
EncryptionType encryptionType = key.getKeyType();