summaryrefslogtreecommitdiffstats
path: root/wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb
diff options
context:
space:
mode:
Diffstat (limited to 'wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb')
-rw-r--r--wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java210
-rw-r--r--wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java193
2 files changed, 403 insertions, 0 deletions
diff --git a/wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java b/wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java
new file mode 100644
index 0000000..c66e36a
--- /dev/null
+++ b/wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/impl/AesCipherTest.java
@@ -0,0 +1,210 @@
+/*
+ * Copyright 2016 Huawei Technologies Co., Ltd.
+ *
+ * Licensed 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.openo.baseservice.encrypt.cbb.impl;
+
+import java.security.NoSuchAlgorithmException;
+import java.security.spec.InvalidKeySpecException;
+
+import javax.crypto.Cipher;
+import javax.crypto.SecretKeyFactory;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.openo.baseservice.encrypt.cbb.CipherCreator;
+import org.openo.baseservice.encrypt.cbb.inf.AbstractCipher;
+
+import junit.framework.Assert;
+import mockit.Mocked;
+import mockit.NonStrictExpectations;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version 02-Jun-2016
+ */
+public class AesCipherTest {
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ CipherCreator.instance().setFactory(new AesCipherFactory());
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.impl.AesCipher#encrypt(java.lang.String)}.
+ */
+ @Test
+ public void testEncrypt() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ final String decrypted = cipherManager.decrypt(encrypted);
+
+ Assert.assertEquals("test-encrypt", decrypted);
+ }
+
+ @Test
+ public void testEncryptException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ Cipher cipher;
+
+ {
+ cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+ result = new InvalidKeySpecException();
+ }
+ };
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+
+ Assert.assertEquals(null, encrypted);
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.impl.AesCipher#decrypt(java.lang.String)}.
+ */
+ @Test
+ public void testDecrypt() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ final String decrypted = cipherManager.decrypt(encrypted);
+
+ Assert.assertEquals("test-encrypt", decrypted);
+ }
+
+ @Test
+ public void testDecryptNull() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create();
+ String decrypted = cipherManager.decrypt(null);
+ Assert.assertEquals(null, decrypted);
+
+ decrypted = cipherManager.decrypt("");
+
+ Assert.assertEquals(null, decrypted);
+ }
+
+ /**
+ * Test method for
+ * {@link
+ * org.openo.baseservice.encrypt.cbb.impl.AesCipher#CipherManagerImpl(java.lang.String)}
+ * .
+ */
+ @Test
+ public void testCipherManagerImplString() {
+ final AbstractCipher cipherManager = CipherCreator.instance().create("secret-key");
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ final String decrypted = cipherManager.decrypt(encrypted);
+
+ Assert.assertEquals("test-encrypt", decrypted);
+ }
+
+ /**
+ * <br/>
+ *
+ * @since
+ */
+ @Test
+ public void testCipherManagerImplStringDiffKey() {
+ final String encrypted = CipherCreator.instance().create("secret-key").encrypt("test-encrypt");
+ final String decrypted = CipherCreator.instance().create("wrong-key").decrypt(encrypted);
+
+ Assert.assertNotSame("test-encrypt", decrypted);
+
+ final String decrypt = CipherCreator.instance().create("secret-key").decrypt(encrypted);
+ Assert.assertEquals("test-encrypt", decrypt);
+ }
+
+ @Test
+ public void testCreateSecretKeyNoSuchAlgorithmException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ SecretKeyFactory keyFactory;
+
+ {
+ keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
+ result = new NoSuchAlgorithmException();
+ }
+ };
+
+ final AbstractCipher cipherManager = CipherCreator.instance().create("secret-key");
+ final String encrypted = cipherManager.encrypt("test-encrypt");
+ Assert.assertEquals(encrypted, null);
+
+ }
+
+ @Test
+ public void testCreateSecretKeyInvalidKeySpecException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ SecretKeyFactory keyFactory;
+
+ {
+ keyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
+ result = new InvalidKeySpecException();
+ }
+ };
+
+ final AbstractCipher cipherManager = CipherCreator.instance().create("secret-key");
+ final String decrypted = cipherManager.decrypt("test-encrypt");
+ Assert.assertEquals(decrypted, null);
+
+ }
+}
diff --git a/wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java b/wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java
new file mode 100644
index 0000000..f7eaf23
--- /dev/null
+++ b/wso2/common-util/src/test/java/org/openo/baseservice/encrypt/cbb/sha/Sha256Test.java
@@ -0,0 +1,193 @@
+/*
+ * Copyright 2016 Huawei Technologies Co., Ltd.
+ *
+ * Licensed 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.openo.baseservice.encrypt.cbb.sha;
+
+import static org.junit.Assert.fail;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.security.InvalidKeyException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+
+import mockit.Mocked;
+import mockit.NonStrictExpectations;
+import mockit.integration.junit4.JMockit;
+
+/**
+ * <br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version 03-Jun-2016
+ */
+@RunWith(JMockit.class)
+public class Sha256Test {
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ /**
+ * <br/>
+ *
+ * @throws java.lang.Exception
+ * @since
+ */
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ /**
+ * Test method for {@link org.openo.baseservice.encrypt.cbb.sha.Sha256#digest(java.lang.String)}
+ * .
+ */
+ @Test
+ public void testDigest() {
+ String plain = "";
+ String expected = "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855";
+ Assert.assertEquals(expected, Sha256.digest(plain));
+
+ expected = "D7A8FBB307D7809469CA9ABCB0082E4F8D5651E46D3CDB762D02D0BF37C9E592";
+ plain = "The quick brown fox jumps over the lazy dog";
+ Assert.assertEquals(expected, Sha256.digest(plain));
+ }
+
+ @Test
+ public void testDigestException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ MessageDigest md;
+
+ {
+ md = MessageDigest.getInstance("SHA-256");
+ result = new NoSuchAlgorithmException();
+ }
+ };
+ final String plain = "";
+ final String expected = "";
+ Assert.assertEquals(expected, Sha256.digest(plain));
+
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.sha.Sha256#mac(java.lang.String, java.security.Key)}
+ * .
+ *
+ * @throws InvalidKeyException
+ */
+ @Test
+ public void testMacStringKey() {
+ final String expected = "F7BC83F430538424B13298E6AA6FB143EF4D59A14946175997479DBC2D1A3CD8";
+ final String plain = "The quick brown fox jumps over the lazy dog";
+ try {
+ Assert.assertEquals(expected, Sha256.mac(plain, new SecretKeySpec("key".getBytes(), "HmacSHA256")));
+ } catch(final InvalidKeyException e) {
+ e.printStackTrace();
+ fail("testMacStringKey failed" + e.getMessage());
+ }
+ try {
+ Assert.assertEquals(expected, Sha256.mac(plain, new SecretKeySpec("key".getBytes(), "AES")));
+ } catch(final InvalidKeyException e) {
+ e.printStackTrace();
+ fail("testMacStringKey failed" + e.getMessage());
+ }
+
+ }
+
+ @Test
+ public void testMacStringKeyException() throws Exception {
+ new NonStrictExpectations() {
+
+ @Mocked
+ Mac mac;
+
+ {
+ mac = Mac.getInstance("HmacSHA256");
+ result = new NoSuchAlgorithmException();
+ }
+ };
+ Sha256.mac("dummy", new SecretKeySpec("key".getBytes(), "AES"));
+ }
+
+ /**
+ * Test method for
+ * {@link org.openo.baseservice.encrypt.cbb.sha.Sha256#mac(java.lang.String, byte[])}.
+ */
+ @Test
+ public void testMacStringByteArray() {
+ final String expected = "F7BC83F430538424B13298E6AA6FB143EF4D59A14946175997479DBC2D1A3CD8";
+ final String plain = "The quick brown fox jumps over the lazy dog";
+ Assert.assertEquals(expected, Sha256.mac(plain, "key".getBytes()));
+ }
+
+ @Test
+ public void testMacStringByteArrayInvalidKeyException() throws Exception {
+ final String key = "key";
+ new NonStrictExpectations() {
+
+ @Mocked
+ Mac mac;
+
+ {
+ mac = Mac.getInstance("HmacSHA256");
+ result = new InvalidKeyException();
+ }
+ };
+ final String expected = "";
+ final String plain = "The quick brown fox jumps over the lazy dog";
+ Assert.assertEquals(expected, Sha256.mac(plain, key.getBytes()));
+ }
+
+}