package jp.agentec.sinaburocast.common.util;

import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;

import junit.framework.TestSuite;

import org.seasar.dao.unit.S2DaoTestCase;

public class EncryptUtilTest extends S2DaoTestCase {

	public EncryptUtilTest(String string) {
		super(string);
	}

	public static TestSuite suite() {
		TestSuite suite = new TestSuite("EncryptUtilTest");
		suite.addTest(new EncryptUtilTest("testEncrypt"));
		return suite;
	}


	/**
	 * @throws java.lang.Exception
	 */
	@Override
	public void setUp() throws Exception {
		super.setUp();
//        include("app.dicon");
	}

	/**
	 * @throws java.lang.Exception
	 */
	@Override
	public void tearDown() throws Exception {
		super.tearDown();
	}

	public void testEncrypt() throws InvalidKeyException, IllegalBlockSizeException, NoSuchAlgorithmException, BadPaddingException, NoSuchPaddingException, IOException, InvalidAlgorithmParameterException {
//		System.out.println(EncryptUtil.encryptBASE64(ContractProvisioningService.CERT_CRYPTOGRAPHIC_KEY,"123agt!"));
		try {
			System.out.println(EncryptUtil.encrypt("keyaaa",null));
		} catch (NullPointerException e) {
		}
		System.out.println(EncryptUtil.encryptBASE64("hoge", "hagefadsrearereaessfdsa"));
		System.out.println(EncryptUtil.decryptBASE64("hoge", "QT73gjOjB3U="));
//		System.out.println(EncryptUtil.concatByte(new byte[]{111},EncryptUtil.encrypt("keyaaa","bbb")));
//		System.out.println(EncryptUtil.encryptBASE64(EncryptUtil.concatByte(new byte[]{111},EncryptUtil.encrypt("keyaaa","bbb"))));
		assertEquals("bbb", EncryptUtil.decrypt("keyaaa", EncryptUtil.encrypt("keyaaa","bbb")));
		assertEquals("bbb", EncryptUtil.decryptBASE64("keyaaa", EncryptUtil.encryptBASE64("keyaaa","bbb")));
	}
}