You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by dr...@apache.org on 2015/01/22 01:57:01 UTC

[37/50] [abbrv] directory-kerberos git commit: Many changes with newname

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Md5Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Md5Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Md5Provider.java
deleted file mode 100644
index 6484015..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Md5Provider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.cksum.provider;
-
-public class Md5Provider extends MessageDigestHashProvider {
-
-    public Md5Provider() {
-        super(16, 64, "MD5");
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/MessageDigestHashProvider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/MessageDigestHashProvider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/MessageDigestHashProvider.java
deleted file mode 100644
index bbd8ddf..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/MessageDigestHashProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.cksum.provider;
-
-import org.apache.kerberos.kerb.KrbException;
-
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-
-public class MessageDigestHashProvider extends AbstractHashProvider {
-    private String algorithm;
-    protected MessageDigest messageDigest;
-
-    public MessageDigestHashProvider(int hashSize, int blockSize, String algorithm) {
-        super(hashSize, blockSize);
-        this.algorithm = algorithm;
-
-        init();
-    }
-
-    @Override
-    protected void init() {
-        try {
-            messageDigest = MessageDigest.getInstance(algorithm);
-        } catch (NoSuchAlgorithmException e) {
-            throw new RuntimeException("Failed to init JCE provider", e);
-        }
-    }
-
-    @Override
-    public void hash(byte[] data, int start, int len) throws KrbException {
-        messageDigest.update(data, start, len);
-    }
-
-    @Override
-    public byte[] output() {
-        return messageDigest.digest();
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Sha1Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Sha1Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Sha1Provider.java
deleted file mode 100644
index b547501..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/cksum/provider/Sha1Provider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.cksum.provider;
-
-public class Sha1Provider extends MessageDigestHashProvider {
-
-    public Sha1Provider() {
-        super(20, 64, "SHA1");
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java
deleted file mode 100644
index 3aab860..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/AbstractEncTypeHandler.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.AbstractCryptoTypeHandler;
-import org.apache.kerberos.kerb.crypto.EncTypeHandler;
-import org.apache.kerberos.kerb.crypto.cksum.HashProvider;
-import org.apache.kerberos.kerb.crypto.key.KeyMaker;
-import org.apache.kerberos.kerb.KrbException;
-
-public abstract class AbstractEncTypeHandler
-        extends AbstractCryptoTypeHandler implements EncTypeHandler {
-
-    private KeyMaker keyMaker;
-
-    public AbstractEncTypeHandler(EncryptProvider encProvider,
-                                  HashProvider hashProvider) {
-        super(encProvider, hashProvider);
-    }
-
-    protected void keyMaker(KeyMaker keyMaker) {
-        this.keyMaker = keyMaker;
-    }
-
-    protected KeyMaker keyMaker() {
-        return keyMaker;
-    }
-
-    @Override
-    public String name() {
-        return eType().getName();
-    }
-
-    @Override
-    public String displayName() {
-        return eType().getDisplayName();
-    }
-
-    protected int paddingLength(int inputLen) {
-        int payloadLen = confounderSize() + checksumSize() + inputLen;
-        int padding = paddingSize();
-
-        if (padding == 0 || (payloadLen % padding) == 0) {
-            return 0;
-        }
-
-        return padding - (payloadLen % padding);
-    }
-
-    @Override
-    public int keyInputSize() {
-        return encProvider().keyInputSize();
-    }
-
-    @Override
-    public int keySize() {
-        return encProvider().keySize();
-    }
-
-    @Override
-    public int confounderSize() {
-        return encProvider().blockSize();
-    }
-
-    @Override
-    public int checksumSize() {
-        return hashProvider().hashSize();
-    }
-
-    @Override
-    public int paddingSize() {
-        return encProvider().blockSize();
-    }
-
-    @Override
-    public byte[] str2key(String string, String salt, byte[] param) throws KrbException {
-        return keyMaker.str2key(string, salt, param);
-    }
-
-    @Override
-    public byte[] random2Key(byte[] randomBits) throws KrbException {
-        return keyMaker.random2Key(randomBits);
-    }
-
-    @Override
-    public byte[] encrypt(byte[] data, byte[] key, int usage) throws KrbException {
-        byte[] iv = new byte[encProvider().blockSize()];
-        return encrypt(data, key, iv, usage);
-    }
-
-    @Override
-    public byte[] encrypt(byte[] data, byte[] key, byte[] iv, int usage) throws KrbException {
-        int confounderLen = confounderSize();
-        int checksumLen = checksumSize();
-        int headerLen = confounderLen + checksumLen;
-        int inputLen = data.length;
-        int paddingLen = paddingLength(inputLen);
-
-        /**
-         *  E(Confounder | Checksum | Plaintext | Padding), or
-         *  header | data | padding | trailer, where trailer may be absent
-         */
-
-        int workLength = headerLen + inputLen + paddingLen;
-
-        byte[] workBuffer = new byte[workLength];
-        System.arraycopy(data, 0, workBuffer, headerLen, data.length);
-
-        int [] workLens = new int[] {confounderLen, checksumLen,
-                inputLen, paddingLen};
-
-        encryptWith(workBuffer, workLens, key, iv, usage);
-        return workBuffer;
-    }
-
-    protected void encryptWith(byte[] workBuffer, int[] workLens,
-                          byte[] key, byte[] iv, int usage) throws KrbException {
-
-    }
-
-    public byte[] decrypt(byte[] cipher, byte[] key, int usage)
-            throws KrbException {
-        byte[] iv = new byte[encProvider().blockSize()];
-        return decrypt(cipher, key, iv, usage);
-    }
-
-    public byte[] decrypt(byte[] cipher, byte[] key, byte[] iv, int usage)
-            throws KrbException {
-
-        int totalLen = cipher.length;
-        int confounderLen = confounderSize();
-        int checksumLen = checksumSize();
-        int dataLen = totalLen - (confounderLen + checksumLen);
-
-        int[] workLens = new int[] {confounderLen, checksumLen, dataLen};
-        return decryptWith(cipher, workLens, key, iv, usage);
-    }
-
-    protected byte[] decryptWith(byte[] workBuffer, int[] workLens,
-                               byte[] key, byte[] iv, int usage) throws KrbException {
-        return null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes128CtsHmacSha1Enc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes128CtsHmacSha1Enc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes128CtsHmacSha1Enc.java
deleted file mode 100644
index f435d0f..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes128CtsHmacSha1Enc.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.cksum.provider.Sha1Provider;
-import org.apache.kerberos.kerb.crypto.enc.provider.Aes128Provider;
-import org.apache.kerberos.kerb.crypto.enc.provider.AesProvider;
-import org.apache.kerberos.kerb.crypto.key.AesKeyMaker;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class Aes128CtsHmacSha1Enc extends KeKiHmacSha1Enc {
-
-    public Aes128CtsHmacSha1Enc() {
-        super(new Aes128Provider(), new Sha1Provider());
-        keyMaker(new AesKeyMaker((AesProvider) encProvider()));
-    }
-
-    @Override
-    public int checksumSize() {
-        return 96 / 8;
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.AES128_CTS_HMAC_SHA1_96;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.HMAC_SHA1_96_AES128;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes256CtsHmacSha1Enc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes256CtsHmacSha1Enc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes256CtsHmacSha1Enc.java
deleted file mode 100644
index 31b5efd..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Aes256CtsHmacSha1Enc.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.cksum.provider.Sha1Provider;
-import org.apache.kerberos.kerb.crypto.enc.provider.Aes256Provider;
-import org.apache.kerberos.kerb.crypto.enc.provider.AesProvider;
-import org.apache.kerberos.kerb.crypto.key.AesKeyMaker;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class Aes256CtsHmacSha1Enc extends KeKiHmacSha1Enc {
-
-    public Aes256CtsHmacSha1Enc() {
-        super(new Aes256Provider(), new Sha1Provider());
-        keyMaker(new AesKeyMaker((AesProvider) encProvider()));
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.AES256_CTS_HMAC_SHA1_96;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.HMAC_SHA1_96_AES256;
-    }
-
-    @Override
-    public int checksumSize() {
-        return 96 / 8;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia128CtsCmacEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia128CtsCmacEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia128CtsCmacEnc.java
deleted file mode 100644
index d726391..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia128CtsCmacEnc.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.enc.provider.Camellia128Provider;
-import org.apache.kerberos.kerb.crypto.key.CamelliaKeyMaker;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class Camellia128CtsCmacEnc extends KeKiCmacEnc {
-
-    public Camellia128CtsCmacEnc() {
-        super(new Camellia128Provider());
-        keyMaker(new CamelliaKeyMaker((Camellia128Provider) encProvider()));
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.CAMELLIA128_CTS_CMAC;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.CMAC_CAMELLIA128;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia256CtsCmacEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia256CtsCmacEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia256CtsCmacEnc.java
deleted file mode 100644
index 41afe1b..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Camellia256CtsCmacEnc.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.enc.provider.Camellia256Provider;
-import org.apache.kerberos.kerb.crypto.key.CamelliaKeyMaker;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class Camellia256CtsCmacEnc extends KeKiCmacEnc {
-
-    public Camellia256CtsCmacEnc() {
-        super(new Camellia256Provider());
-        keyMaker(new CamelliaKeyMaker((Camellia256Provider) encProvider()));
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.CAMELLIA256_CTS_CMAC;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.CMAC_CAMELLIA256;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Des3CbcSha1Enc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Des3CbcSha1Enc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Des3CbcSha1Enc.java
deleted file mode 100644
index d461047..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Des3CbcSha1Enc.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.cksum.provider.Sha1Provider;
-import org.apache.kerberos.kerb.crypto.enc.provider.Des3Provider;
-import org.apache.kerberos.kerb.crypto.key.Des3KeyMaker;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class Des3CbcSha1Enc extends KeKiHmacSha1Enc {
-
-    public Des3CbcSha1Enc() {
-        super(new Des3Provider(), new Sha1Provider());
-        keyMaker(new Des3KeyMaker(this.encProvider()));
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.DES3_CBC_SHA1;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.HMAC_SHA1_DES3;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcCrcEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcCrcEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcCrcEnc.java
deleted file mode 100644
index 5fdfd9b..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcCrcEnc.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.cksum.provider.Crc32Provider;
-import org.apache.kerberos.kerb.KrbException;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class DesCbcCrcEnc extends DesCbcEnc {
-
-    public DesCbcCrcEnc() {
-        super(new Crc32Provider());
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.DES_CBC_CRC;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.CRC32;
-    }
-
-    @Override
-    public byte[] encrypt(byte[] data, byte[] key, int usage) throws KrbException {
-        byte[] iv = new byte[encProvider().blockSize()];
-        System.arraycopy(key, 0, iv, 0, key.length);
-        return encrypt(data, key, iv, usage);
-    }
-
-    @Override
-    public byte[] decrypt(byte[] cipher, byte[] key, int usage)
-            throws KrbException {
-        byte[] iv = new byte[encProvider().blockSize()];
-        System.arraycopy(key, 0, iv, 0, key.length);
-        return decrypt(cipher, key, iv, usage);
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcEnc.java
deleted file mode 100644
index cbca17f..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcEnc.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.KrbErrorCode;
-import org.apache.kerberos.kerb.crypto.Confounder;
-import org.apache.kerberos.kerb.crypto.cksum.HashProvider;
-import org.apache.kerberos.kerb.crypto.enc.provider.DesProvider;
-import org.apache.kerberos.kerb.crypto.key.DesKeyMaker;
-import org.apache.kerberos.kerb.KrbException;
-
-abstract class DesCbcEnc extends AbstractEncTypeHandler {
-
-    public DesCbcEnc(HashProvider hashProvider) {
-        super(new DesProvider(), hashProvider);
-        keyMaker(new DesKeyMaker(this.encProvider()));
-    }
-
-    @Override
-    protected void encryptWith(byte[] workBuffer, int[] workLens,
-                                 byte[] key, byte[] iv, int usage) throws KrbException {
-        int confounderLen = workLens[0];
-        int checksumLen = workLens[1];
-        int dataLen = workLens[2];
-        int paddingLen = workLens[3];
-
-        // confounder
-        byte[] confounder = Confounder.makeBytes(confounderLen);
-        System.arraycopy(confounder, 0, workBuffer, 0, confounderLen);
-
-        // padding
-        for (int i = confounderLen + checksumLen + dataLen; i < paddingLen; ++i) {
-            workBuffer[i] = 0;
-        }
-
-        // checksum
-        hashProvider().hash(workBuffer);
-        byte[] cksum = hashProvider().output();
-        System.arraycopy(cksum, 0, workBuffer, confounderLen, checksumLen);
-
-        encProvider().encrypt(key, iv, workBuffer);
-    }
-
-    @Override
-    protected byte[] decryptWith(byte[] workBuffer, int[] workLens,
-                                 byte[] key, byte[] iv, int usage) throws KrbException {
-        int confounderLen = workLens[0];
-        int checksumLen = workLens[1];
-        int dataLen = workLens[2];
-
-        encProvider().decrypt(key, iv, workBuffer);
-
-        byte[] checksum = new byte[checksumLen];
-        for (int i = 0; i < checksumLen; i++) {
-            checksum[i] = workBuffer[confounderLen + i];
-            workBuffer[confounderLen + i] = 0;
-        }
-
-        hashProvider().hash(workBuffer);
-        byte[] newChecksum = hashProvider().output();
-        if (! checksumEqual(checksum, newChecksum)) {
-            throw new KrbException(KrbErrorCode.KRB_AP_ERR_BAD_INTEGRITY);
-        }
-
-        byte[] data = new byte[dataLen];
-        System.arraycopy(workBuffer, confounderLen + checksumLen,
-                data, 0, dataLen);
-
-        return data;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd4Enc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd4Enc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd4Enc.java
deleted file mode 100644
index 494091e..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd4Enc.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.cksum.provider.Md4Provider;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class DesCbcMd4Enc extends DesCbcEnc {
-
-    public DesCbcMd4Enc() {
-        super(new Md4Provider());
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.DES_CBC_MD4;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.RSA_MD4_DES;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd5Enc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd5Enc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd5Enc.java
deleted file mode 100644
index fb5ec2b..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/DesCbcMd5Enc.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.cksum.provider.Md5Provider;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class DesCbcMd5Enc extends DesCbcEnc {
-
-    public DesCbcMd5Enc() {
-        super(new Md5Provider());
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.DES_CBC_MD5;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.RSA_MD5_DES;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/EncryptProvider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/EncryptProvider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/EncryptProvider.java
deleted file mode 100644
index 5dc1f18..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/EncryptProvider.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.KrbException;
-
-/**
- * krb5_enc_provider
- */
-public interface EncryptProvider {
-
-    public int keyInputSize(); //input size to make key
-    public int keySize(); //output key size
-    public int blockSize(); //crypto block size
-
-    public void encrypt(byte[] key, byte[] cipherState, byte[] data) throws KrbException;
-    public void decrypt(byte[] key, byte[] cipherState, byte[] data) throws KrbException;
-    public void encrypt(byte[] key, byte[] data) throws KrbException;
-    public void decrypt(byte[] key, byte[] data) throws KrbException;
-    public byte[] cbcMac(byte[] key, byte[] iv, byte[] data) throws KrbException;
-    public boolean supportCbcMac();
-
-    public byte[] initState(byte[] key, int keyUsage);
-    public void cleanState();
-    public void cleanKey();
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiCmacEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiCmacEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiCmacEnc.java
deleted file mode 100644
index f4ad9be..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiCmacEnc.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.Cmac;
-import org.apache.kerberos.kerb.KrbException;
-
-public abstract class KeKiCmacEnc extends KeKiEnc {
-
-    public KeKiCmacEnc(EncryptProvider encProvider) {
-        super(encProvider, null);
-    }
-
-    @Override
-    public int paddingSize() {
-        return 0;
-    }
-
-    @Override
-    public int checksumSize() {
-        return encProvider().blockSize();
-    }
-
-    @Override
-    protected byte[] makeChecksum(byte[] key, byte[] data, int hashSize)
-            throws KrbException {
-
-        // generate hash
-        byte[] hash = Cmac.cmac(encProvider(), key, data);
-
-        // truncate hash
-        byte[] output = new byte[hashSize];
-        System.arraycopy(hash, 0, output, 0, hashSize);
-        return output;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiEnc.java
deleted file mode 100644
index faaeb38..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiEnc.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.KrbErrorCode;
-import org.apache.kerberos.kerb.crypto.BytesUtil;
-import org.apache.kerberos.kerb.crypto.Confounder;
-import org.apache.kerberos.kerb.crypto.cksum.HashProvider;
-import org.apache.kerberos.kerb.crypto.key.DkKeyMaker;
-import org.apache.kerberos.kerb.KrbException;
-
-public abstract class KeKiEnc extends AbstractEncTypeHandler {
-
-    public KeKiEnc(EncryptProvider encProvider,
-                   HashProvider hashProvider) {
-        super(encProvider, hashProvider);
-    }
-
-    @Override
-    public int paddingSize() {
-        return 0;
-    }
-
-
-    @Override
-    protected void encryptWith(byte[] workBuffer, int[] workLens,
-                               byte[] key, byte[] iv, int usage) throws KrbException {
-        int confounderLen = workLens[0];
-        int checksumLen = workLens[1];
-        int inputLen = workLens[2];
-        int paddingLen = workLens[3];
-
-        byte[] Ke, Ki;
-        byte[] constant = new byte[5];
-        constant[0] = (byte) ((usage>>24)&0xff);
-        constant[1] = (byte) ((usage>>16)&0xff);
-        constant[2] = (byte) ((usage>>8)&0xff);
-        constant[3] = (byte) (usage&0xff);
-        constant[4] = (byte) 0xaa;
-        Ke = ((DkKeyMaker) keyMaker()).dk(key, constant);
-        constant[4] = (byte) 0x55;
-        Ki = ((DkKeyMaker) keyMaker()).dk(key, constant);
-
-        /**
-         * Instead of E(Confounder | Checksum | Plaintext | Padding),
-         * E(Confounder | Plaintext | Padding) | Checksum,
-         * so need to adjust the workBuffer arrangement
-         */
-
-        byte[] tmpEnc = new byte[confounderLen + inputLen + paddingLen];
-        // confounder
-        byte[] confounder = Confounder.makeBytes(confounderLen);
-        System.arraycopy(confounder, 0, tmpEnc, 0, confounderLen);
-
-        // data
-        System.arraycopy(workBuffer, confounderLen + checksumLen,
-                tmpEnc, confounderLen, inputLen);
-
-        // padding
-        for (int i = confounderLen + inputLen; i < paddingLen; ++i) {
-            tmpEnc[i] = 0;
-        }
-
-        // checksum & encrypt
-        byte[] checksum;
-        checksum = makeChecksum(Ki, tmpEnc, checksumLen);
-        encProvider().encrypt(Ke, iv, tmpEnc);
-
-        System.arraycopy(tmpEnc, 0, workBuffer, 0, tmpEnc.length);
-        System.arraycopy(checksum, 0, workBuffer, tmpEnc.length, checksum.length);
-    }
-
-    @Override
-    protected byte[] decryptWith(byte[] workBuffer, int[] workLens,
-                                 byte[] key, byte[] iv, int usage) throws KrbException {
-        int confounderLen = workLens[0];
-        int checksumLen = workLens[1];
-        int dataLen = workLens[2];
-
-        byte[] Ke, Ki;
-        byte[] constant = new byte[5];
-        BytesUtil.int2bytes(usage, constant, 0, true);
-        constant[4] = (byte) 0xaa;
-        Ke = ((DkKeyMaker) keyMaker()).dk(key, constant);
-        constant[4] = (byte) 0x55;
-        Ki = ((DkKeyMaker) keyMaker()).dk(key, constant);
-
-        // decrypt and verify checksum
-
-        byte[] tmpEnc = new byte[confounderLen + dataLen];
-        System.arraycopy(workBuffer, 0,
-                tmpEnc, 0, confounderLen + dataLen);
-        byte[] checksum = new byte[checksumLen];
-        System.arraycopy(workBuffer, confounderLen + dataLen,
-                checksum, 0, checksumLen);
-
-        byte[] newChecksum;
-        encProvider().decrypt(Ke, iv, tmpEnc);
-        newChecksum = makeChecksum(Ki, tmpEnc, checksumLen);
-
-        if (! checksumEqual(checksum, newChecksum)) {
-            throw new KrbException(KrbErrorCode.KRB_AP_ERR_BAD_INTEGRITY);
-        }
-
-        byte[] data = new byte[dataLen];
-        System.arraycopy(tmpEnc, confounderLen, data, 0, dataLen);
-        return data;
-    }
-
-    protected abstract byte[] makeChecksum(byte[] key, byte[] data, int hashSize)
-            throws KrbException;
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java
deleted file mode 100644
index c731248..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/KeKiHmacSha1Enc.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.crypto.Hmac;
-import org.apache.kerberos.kerb.crypto.cksum.HashProvider;
-import org.apache.kerberos.kerb.KrbException;
-
-public abstract class KeKiHmacSha1Enc extends KeKiEnc {
-
-    public KeKiHmacSha1Enc(EncryptProvider encProvider,
-                           HashProvider hashProvider) {
-        super(encProvider, hashProvider);
-    }
-
-    @Override
-    public int paddingSize() {
-        return 0;
-    }
-
-    @Override
-    protected byte[] makeChecksum(byte[] key, byte[] data, int hashSize)
-            throws KrbException {
-
-        // generate hash
-        byte[] hash = Hmac.hmac(hashProvider(), key, data);
-
-        // truncate hash
-        byte[] output = new byte[hashSize];
-        System.arraycopy(hash, 0, output, 0, hashSize);
-        return output;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacEnc.java
deleted file mode 100644
index 27d660c..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacEnc.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.KrbErrorCode;
-import org.apache.kerberos.kerb.crypto.BytesUtil;
-import org.apache.kerberos.kerb.crypto.Confounder;
-import org.apache.kerberos.kerb.crypto.Rc4;
-import org.apache.kerberos.kerb.crypto.Hmac;
-import org.apache.kerberos.kerb.crypto.cksum.provider.Md5Provider;
-import org.apache.kerberos.kerb.crypto.enc.provider.Rc4Provider;
-import org.apache.kerberos.kerb.crypto.key.Rc4KeyMaker;
-import org.apache.kerberos.kerb.KrbException;
-import org.apache.kerberos.kerb.spec.common.CheckSumType;
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class Rc4HmacEnc extends AbstractEncTypeHandler {
-    private boolean exportable;
-
-    public Rc4HmacEnc() {
-        this(false);
-    }
-
-    public Rc4HmacEnc(boolean exportable) {
-        super(new Rc4Provider(), new Md5Provider());
-        keyMaker(new Rc4KeyMaker(this.encProvider()));
-        this.exportable = exportable;
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.ARCFOUR_HMAC;
-    }
-
-    @Override
-    public int confounderSize() {
-        return 8;
-    }
-
-    @Override
-    public int paddingSize() {
-        return 0;
-    }
-
-    public CheckSumType checksumType() {
-        return CheckSumType.HMAC_MD5_ARCFOUR;
-    }
-
-    protected void encryptWith(byte[] workBuffer, int[] workLens,
-         byte[] key, byte[] iv, int usage) throws KrbException {
-        int confounderLen = workLens[0];
-        int checksumLen = workLens[1];
-        int dataLen = workLens[2];
-
-        /**
-         * Instead of E(Confounder | Checksum | Plaintext | Padding),
-         * Checksum | E(Confounder | Plaintext)
-         */
-
-        // confounder
-        byte[] confounder = Confounder.makeBytes(confounderLen);
-        System.arraycopy(confounder, 0, workBuffer, checksumLen, confounderLen);
-
-        // no padding
-
-        /* checksum and encryption */
-        byte[] usageKey = makeUsageKey(key, usage);
-
-        byte[] checksum = Hmac.hmac(hashProvider(), usageKey, workBuffer,
-                checksumLen, confounderLen + dataLen);
-
-        byte[] encKey = makeEncKey(usageKey, checksum);
-
-        byte[] tmpEnc = new byte[confounderLen + dataLen];
-        System.arraycopy(workBuffer, checksumLen,
-                tmpEnc, 0, confounderLen + dataLen);
-        encProvider().encrypt(encKey, iv, tmpEnc);
-        System.arraycopy(checksum, 0, workBuffer, 0, checksumLen);
-        System.arraycopy(tmpEnc, 0, workBuffer, checksumLen, tmpEnc.length);
-    }
-
-    protected byte[] makeUsageKey(byte[] key, int usage) throws KrbException {
-        byte[] salt = Rc4.getSalt(usage, exportable);
-        byte[] usageKey = Hmac.hmac(hashProvider(), key, salt);
-        return usageKey;
-    }
-
-    protected byte[] makeEncKey(byte[] usageKey, byte[] checksum) throws KrbException {
-        byte[] tmpKey = usageKey;
-
-        if (exportable) {
-            tmpKey = BytesUtil.duplicate(usageKey);
-            for (int i = 0; i < 9; ++i) {
-                tmpKey[i + 7] = (byte) 0xab;
-            }
-        }
-
-        byte[] encKey = Hmac.hmac(hashProvider(), tmpKey, checksum);
-        return encKey;
-    }
-
-    @Override
-    protected byte[] decryptWith(byte[] workBuffer, int[] workLens,
-                                 byte[] key, byte[] iv, int usage) throws KrbException {
-        int confounderLen = workLens[0];
-        int checksumLen = workLens[1];
-        int dataLen = workLens[2];
-
-        /* checksum and decryption */
-        byte[] usageKey = makeUsageKey(key, usage);
-
-        byte[] checksum = new byte[checksumLen];
-        System.arraycopy(workBuffer, 0, checksum, 0, checksumLen);
-
-        byte[] encKey = makeEncKey(usageKey, checksum);
-
-        byte[] tmpEnc = new byte[confounderLen + dataLen];
-        System.arraycopy(workBuffer, checksumLen,
-                tmpEnc, 0, confounderLen + dataLen);
-        encProvider().decrypt(encKey, iv, tmpEnc);
-
-        byte[] newChecksum = Hmac.hmac(hashProvider(), usageKey, tmpEnc);
-        if (! checksumEqual(checksum, newChecksum)) {
-            throw new KrbException(KrbErrorCode.KRB_AP_ERR_BAD_INTEGRITY);
-        }
-
-        byte[] data = new byte[dataLen];
-        System.arraycopy(tmpEnc, confounderLen,
-                data, 0, dataLen);
-
-        return data;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacExpEnc.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacExpEnc.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacExpEnc.java
deleted file mode 100644
index 63ea752..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/Rc4HmacExpEnc.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc;
-
-import org.apache.kerberos.kerb.spec.common.EncryptionType;
-
-public class Rc4HmacExpEnc extends Rc4HmacEnc {
-
-    public Rc4HmacExpEnc() {
-        super(true);
-    }
-
-    public EncryptionType eType() {
-        return EncryptionType.ARCFOUR_HMAC_EXP;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AbstractEncryptProvider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AbstractEncryptProvider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AbstractEncryptProvider.java
deleted file mode 100644
index 8d2a693..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AbstractEncryptProvider.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-import org.apache.kerberos.kerb.crypto.enc.EncryptProvider;
-import org.apache.kerberos.kerb.KrbException;
-
-public abstract class AbstractEncryptProvider implements EncryptProvider {
-    private int blockSize;
-    private int keyInputSize;
-    private int keySize;
-
-    public AbstractEncryptProvider(int blockSize, int keyInputSize, int keySize) {
-        this.blockSize = blockSize;
-        this.keyInputSize = keyInputSize;
-        this.keySize = keySize;
-    }
-
-    @Override
-    public int keyInputSize() {
-        return keyInputSize;
-    }
-
-    @Override
-    public int keySize() {
-        return keySize;
-    }
-
-    @Override
-    public int blockSize() {
-        return blockSize;
-    }
-
-    @Override
-    public byte[] initState(byte[] key, int keyUsage) {
-        return new byte[0];
-    }
-
-    @Override
-    public void encrypt(byte[] key, byte[] cipherState, byte[] data) throws KrbException {
-        doEncrypt(data, key, cipherState, true);
-    }
-
-    @Override
-    public void decrypt(byte[] key, byte[] cipherState, byte[] data) throws KrbException {
-        doEncrypt(data, key, cipherState, false);
-    }
-
-    @Override
-    public void encrypt(byte[] key, byte[] data) throws KrbException {
-        byte[] cipherState = new byte[blockSize()];
-        encrypt(key, cipherState, data);
-    }
-
-    @Override
-    public void decrypt(byte[] key, byte[] data) throws KrbException {
-        byte[] cipherState = new byte[blockSize()];
-        decrypt(key, cipherState, data);
-    }
-
-    protected abstract void doEncrypt(byte[] data, byte[] key, byte[] cipherState, boolean encrypt) throws KrbException;
-
-    @Override
-    public byte[] cbcMac(byte[] key, byte[] iv, byte[] data) throws KrbException {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override
-    public boolean supportCbcMac() {
-        return false;
-    }
-
-    @Override
-    public void cleanState() {
-
-    }
-
-    @Override
-    public void cleanKey() {
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes128Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes128Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes128Provider.java
deleted file mode 100644
index 52157e6..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes128Provider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-public class Aes128Provider extends AesProvider {
-
-    public Aes128Provider() {
-        super(16, 16, 16);
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes256Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes256Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes256Provider.java
deleted file mode 100644
index 91c1b49..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Aes256Provider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-public class Aes256Provider extends AesProvider {
-
-    public Aes256Provider() {
-        super(16, 32, 32);
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AesProvider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AesProvider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AesProvider.java
deleted file mode 100644
index 334f8c9..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/AesProvider.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-import org.apache.kerberos.kerb.KrbException;
-
-import javax.crypto.Cipher;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-import java.security.GeneralSecurityException;
-
-public abstract class AesProvider extends AbstractEncryptProvider {
-
-    public AesProvider(int blockSize, int keyInputSize, int keySize) {
-        super(blockSize, keyInputSize, keySize);
-    }
-
-    @Override
-    protected void doEncrypt(byte[] data, byte[] key,
-                                  byte[] cipherState, boolean encrypt) throws KrbException {
-        Cipher cipher = null;
-        try {
-            cipher = Cipher.getInstance("AES/CTS/NoPadding");
-        } catch (GeneralSecurityException e) {
-            KrbException ke = new KrbException("JCE provider may not be installed. "
-                    + e.getMessage());
-            ke.initCause(e);
-            throw ke;
-        }
-
-        try {
-            SecretKeySpec secretKey = new SecretKeySpec(key, "AES");
-            IvParameterSpec param = new IvParameterSpec(cipherState);
-
-            cipher.init(encrypt ?
-                    Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, secretKey, param);
-            byte[] output = cipher.doFinal(data);
-            System.arraycopy(output, 0, data, 0, output.length);
-        } catch (GeneralSecurityException e) {
-            KrbException ke = new KrbException(e.getMessage());
-            ke.initCause(e);
-            throw ke;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia128Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia128Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia128Provider.java
deleted file mode 100644
index 50096dc..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia128Provider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-public class Camellia128Provider extends CamelliaProvider {
-
-    public Camellia128Provider() {
-        super(16, 16, 16);
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia256Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia256Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia256Provider.java
deleted file mode 100644
index 0561847..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Camellia256Provider.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-public class Camellia256Provider extends CamelliaProvider {
-
-    public Camellia256Provider() {
-        super(16, 32, 32);
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/CamelliaProvider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/CamelliaProvider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/CamelliaProvider.java
deleted file mode 100644
index 8c41b5e..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/CamelliaProvider.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-import org.apache.kerberos.kerb.crypto.Camellia;
-import org.apache.kerberos.kerb.KrbException;
-
-public abstract class CamelliaProvider extends AbstractEncryptProvider {
-
-    public CamelliaProvider(int blockSize, int keyInputSize, int keySize) {
-        super(blockSize, keyInputSize, keySize);
-    }
-
-    @Override
-    protected void doEncrypt(byte[] data, byte[] key,
-                             byte[] cipherState, boolean encrypt) throws KrbException {
-
-        Camellia cipher = new Camellia();
-        cipher.setKey(encrypt, key);
-        if (encrypt) {
-            cipher.encrypt(data, cipherState);
-        } else {
-            cipher.decrypt(data, cipherState);
-        }
-    }
-
-    @Override
-    public boolean supportCbcMac() {
-        return true;
-    }
-
-    @Override
-    public byte[] cbcMac(byte[] key, byte[] cipherState, byte[] data) {
-        Camellia cipher = new Camellia();
-        cipher.setKey(true, key);
-
-        int blocksNum = data.length / blockSize();
-        cipher.cbcEnc(data, 0, blocksNum, cipherState);
-        return data;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Des3Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Des3Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Des3Provider.java
deleted file mode 100644
index 6e78d8a..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Des3Provider.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-import org.apache.kerberos.kerb.KrbException;
-
-import javax.crypto.Cipher;
-import javax.crypto.SecretKey;
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.spec.DESedeKeySpec;
-import javax.crypto.spec.IvParameterSpec;
-import java.security.GeneralSecurityException;
-import java.security.spec.KeySpec;
-
-public class Des3Provider extends AbstractEncryptProvider {
-
-    public Des3Provider() {
-        super(8, 21, 24);
-    }
-
-    @Override
-    protected void doEncrypt(byte[] input, byte[] key,
-                             byte[] cipherState, boolean encrypt) throws KrbException {
-
-        Cipher cipher = null;
-        try {
-            cipher = Cipher.getInstance("DESede/CBC/NoPadding");
-        } catch (GeneralSecurityException e) {
-            throw new KrbException("Failed to init cipher", e);
-        }
-
-        try {
-            IvParameterSpec params = new IvParameterSpec(cipherState);
-            KeySpec skSpec = new DESedeKeySpec(key, 0);
-
-            SecretKeyFactory skf = SecretKeyFactory.getInstance("desede");
-            SecretKey secretKey = skf.generateSecret(skSpec);
-
-            cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, secretKey, params);
-
-            byte[] output = cipher.doFinal(input);
-            System.arraycopy(output, 0, input, 0, output.length);
-        } catch (GeneralSecurityException e) {
-            throw new KrbException("Failed to doEncrypt", e);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/DesProvider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/DesProvider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/DesProvider.java
deleted file mode 100644
index 9caa308..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/DesProvider.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-import org.apache.kerberos.kerb.KrbException;
-
-import javax.crypto.Cipher;
-import javax.crypto.SecretKey;
-import javax.crypto.SecretKeyFactory;
-import javax.crypto.spec.IvParameterSpec;
-import javax.crypto.spec.SecretKeySpec;
-import java.security.GeneralSecurityException;
-
-public class DesProvider extends AbstractEncryptProvider {
-
-    public DesProvider() {
-        super(8, 7, 8);
-    }
-
-    @Override
-    protected void doEncrypt(byte[] input, byte[] key,
-                                 byte[] cipherState, boolean encrypt) throws KrbException {
-
-        Cipher cipher = null;
-        try {
-            cipher = Cipher.getInstance("DES/CBC/NoPadding");
-        } catch (GeneralSecurityException e) {
-            throw new KrbException("Failed to init cipher", e);
-        }
-        IvParameterSpec params = new IvParameterSpec(cipherState);
-        SecretKeySpec skSpec = new SecretKeySpec(key, "DES");
-        try {
-            SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
-            SecretKey sk = (SecretKey) skSpec;
-
-            cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, sk, params);
-
-            byte[] output = cipher.doFinal(input);
-            System.arraycopy(output, 0, input, 0, output.length);
-        } catch (GeneralSecurityException e) {
-            KrbException ke = new KrbException(e.getMessage());
-            ke.initCause(e);
-            throw ke;
-        }
-    }
-
-    @Override
-    public byte[] cbcMac(byte[] key, byte[] cipherState, byte[] data) throws KrbException {
-        Cipher cipher = null;
-        try {
-            cipher = Cipher.getInstance("DES/CBC/NoPadding");
-        } catch (GeneralSecurityException e) {
-            throw new KrbException("Failed to init cipher", e);
-        }
-        IvParameterSpec params = new IvParameterSpec(cipherState);
-        SecretKeySpec skSpec = new SecretKeySpec(key, "DES");
-
-        byte[] output = null;
-        try {
-            SecretKeyFactory skf = SecretKeyFactory.getInstance("DES");
-            // SecretKey sk = skf.generateSecret(skSpec);
-            SecretKey sk = (SecretKey) skSpec;
-            cipher.init(Cipher.ENCRYPT_MODE, sk, params);
-            for (int i = 0; i < data.length / 8; i++) {
-                output = cipher.doFinal(data, i * 8, 8);
-                cipher.init(Cipher.ENCRYPT_MODE, sk, (new IvParameterSpec(output)));
-            }
-        }
-        catch (GeneralSecurityException e) {
-            KrbException ke = new KrbException(e.getMessage());
-            ke.initCause(e);
-            throw ke;
-        }
-        return output;
-    }
-
-    @Override
-    public boolean supportCbcMac() {
-        return true;
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Rc4Provider.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Rc4Provider.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Rc4Provider.java
deleted file mode 100644
index 5836ad0..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/enc/provider/Rc4Provider.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.enc.provider;
-
-import org.apache.kerberos.kerb.KrbException;
-
-import javax.crypto.Cipher;
-import javax.crypto.spec.SecretKeySpec;
-import java.security.GeneralSecurityException;
-
-public class Rc4Provider extends AbstractEncryptProvider {
-
-    public Rc4Provider() {
-        super(1, 16, 16);
-    }
-
-    @Override
-    protected void doEncrypt(byte[] data, byte[] key,
-                             byte[] cipherState, boolean encrypt) throws KrbException {
-        try {
-            Cipher cipher = Cipher.getInstance("ARCFOUR");
-            SecretKeySpec secretKey = new SecretKeySpec(key, "ARCFOUR");
-            cipher.init(encrypt ? Cipher.ENCRYPT_MODE : Cipher.DECRYPT_MODE, secretKey);
-            byte[] output = cipher.doFinal(data);
-            System.arraycopy(output, 0, data, 0, output.length);
-        } catch (GeneralSecurityException e) {
-            KrbException ke = new KrbException(e.getMessage());
-            ke.initCause(e);
-            throw ke;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AbstractKeyMaker.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AbstractKeyMaker.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AbstractKeyMaker.java
deleted file mode 100644
index 69b5576..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AbstractKeyMaker.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.key;
-
-import org.apache.kerberos.kerb.crypto.BytesUtil;
-import org.apache.kerberos.kerb.crypto.enc.EncryptProvider;
-import org.apache.kerberos.kerb.KrbException;
-
-import java.io.UnsupportedEncodingException;
-
-public abstract class AbstractKeyMaker implements KeyMaker {
-
-    protected static final byte[] KERBEROS_CONSTANT = "kerberos".getBytes();
-
-    private EncryptProvider encProvider;
-
-    public AbstractKeyMaker(EncryptProvider encProvider) {
-        this.encProvider = encProvider;
-    }
-
-    protected EncryptProvider encProvider() {
-        return encProvider;
-    }
-
-    @Override
-    public byte[] random2Key(byte[] randomBits) throws KrbException {
-        return new byte[0];
-    }
-
-    /**
-     * Visible for test
-     */
-    public static byte[] makePasswdSalt(String password, String salt) {
-        char[] chars = new char[password.length() + salt.length()];
-        System.arraycopy(password.toCharArray(), 0, chars, 0, password.length());
-        System.arraycopy(salt.toCharArray(), 0, chars, password.length(), salt.length());
-
-        try {
-            return new String(chars).getBytes("UTF-8");
-        } catch (UnsupportedEncodingException e) {
-            throw new RuntimeException("Character decoding failed", e);
-        }
-    }
-
-    protected static int getIterCount(byte[] param, int defCount) {
-        int iterCount = defCount;
-
-        if (param != null) {
-            if (param.length != 4) {
-                throw new IllegalArgumentException("Invalid param to str2Key");
-            }
-            iterCount = BytesUtil.bytes2int(param, 0, true);
-        }
-
-        return iterCount;
-    }
-
-    protected static byte[] getSaltBytes(String salt, String pepper)
-            throws UnsupportedEncodingException {
-        byte[] saltBytes = salt.getBytes("UTF-8");
-        if (pepper != null && ! pepper.isEmpty()) {
-            byte[] pepperBytes = pepper.getBytes("UTF-8");
-            int len = saltBytes.length;
-            len += 1 + pepperBytes.length;
-            byte[] results = new byte[len];
-            System.arraycopy(pepperBytes, 0, results, 0, pepperBytes.length);
-            results[pepperBytes.length] = (byte) 0;
-            System.arraycopy(saltBytes, 0,
-                    results, pepperBytes.length + 1, saltBytes.length);
-
-            return results;
-        } else {
-            return saltBytes;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/directory-kerberos/blob/7d9261af/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AesKeyMaker.java
----------------------------------------------------------------------
diff --git a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AesKeyMaker.java b/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AesKeyMaker.java
deleted file mode 100644
index b370bfe..0000000
--- a/haox-kerb/kerb-crypto/src/main/java/org/apache/kerberos/kerb/crypto/key/AesKeyMaker.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *  
- *    http://www.apache.org/licenses/LICENSE-2.0
- *  
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License. 
- *  
- */
-package org.apache.kerberos.kerb.crypto.key;
-
-import org.apache.kerberos.kerb.KrbException;
-import org.apache.kerberos.kerb.crypto.Pbkdf;
-import org.apache.kerberos.kerb.crypto.enc.provider.AesProvider;
-
-import java.io.UnsupportedEncodingException;
-import java.security.GeneralSecurityException;
-
-public class AesKeyMaker extends DkKeyMaker {
-
-    public AesKeyMaker(AesProvider encProvider) {
-        super(encProvider);
-    }
-
-    @Override
-    public byte[] random2Key(byte[] randomBits) throws KrbException {
-        return randomBits;
-    }
-
-    @Override
-    public byte[] str2key(String string, String salt, byte[] param) throws KrbException {
-        int iterCount = getIterCount(param, 4096);
-
-        byte[] saltBytes = null;
-        try {
-            saltBytes = getSaltBytes(salt, null);
-        } catch (UnsupportedEncodingException e) {
-            throw new RuntimeException(e);
-        }
-
-        int keySize = encProvider().keySize();
-        byte[] random = new byte[0];
-        try {
-            random = Pbkdf.PBKDF2(string.toCharArray(), saltBytes, iterCount, keySize);
-        } catch (GeneralSecurityException e) {
-            throw new KrbException("PBKDF2 failed", e);
-        }
-
-        byte[] tmpKey = random2Key(random);
-        byte[] result = dk(tmpKey, KERBEROS_CONSTANT);
-
-        return result;
-    }
-
-}