package org.apereo.cas.util; import org.apereo.cas.CipherExecutor; import org.apereo.cas.util.cipher.BaseBinaryCipherExecutor; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import static org.junit.Assert.*; /** * Test cases for {@link BaseBinaryCipherExecutor}. * * @author Misagh Moayyed * @since 4.2 */ public class BinaryCipherExecutorTests { @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void checkEncodingDecoding() { final String value = "ThisIsATestValueThatIsGoingToBeEncodedAndDecodedAgainAndAgain"; final CipherExecutor<byte[], byte[]> cc = new BaseBinaryCipherExecutor("1234567890123456", "szxK-5_eJjs-aUj-64MpUZ-GPPzGLhYPLGl0wrYjYNVAGva2P0lLe6UGKGM7k8dWxsOVGutZWgvmY3l5oVPO3w", 512, 16) { }; final byte[] bytes = cc.encode(value.getBytes()); final byte[] decoded = cc.decode(bytes); assertEquals(new String(decoded), value); } @Test public void checkEncodingDecodingBadKeys() { final String value = "ThisIsATestValueThatIsGoingToBeEncodedAndDecodedAgainAndAgain"; final CipherExecutor<byte[], byte[]> cc = new BaseBinaryCipherExecutor("0000", "1234", 512, 16) { }; this.thrown.expect(RuntimeException.class); this.thrown.expectMessage("Unable to init cipher instance."); cc.encode(value.getBytes()); } }