Author: dbkr Date: 2008-05-13 20:45:14 +0000 (Tue, 13 May 2008) New Revision: 19918
Added: trunk/freenet/test/freenet/crypt/ciphers/ trunk/freenet/test/freenet/crypt/ciphers/RijndaelTest.java Removed: trunk/freenet/src/freenet/crypt/ciphers/RijndaelTest.java Log: Move the Rijndael test to the test directory, so Freenet can still be built without junit. Please keep things with extra test dependencies separate! Deleted: trunk/freenet/src/freenet/crypt/ciphers/RijndaelTest.java =================================================================== --- trunk/freenet/src/freenet/crypt/ciphers/RijndaelTest.java 2008-05-13 16:14:21 UTC (rev 19917) +++ trunk/freenet/src/freenet/crypt/ciphers/RijndaelTest.java 2008-05-13 20:45:14 UTC (rev 19918) @@ -1,95 +0,0 @@ -/* This code is part of Freenet. It is distributed under the GNU General - * Public License, version 2 (or at your option any later version). See - * http://www.gnu.org/ for further details of the GPL. */ -package freenet.crypt.ciphers; - -import java.util.Arrays; -import java.util.Random; - -import javax.crypto.Cipher; - -import freenet.crypt.UnsupportedCipherException; -import freenet.support.HexUtil; -import junit.framework.TestCase; - -/** - * @author sdiz - */ -public class RijndaelTest extends TestCase { - private final byte[] PLAINTXT128_1 = HexUtil.hexToBytes("0123456789abcdef1123456789abcdef"); - private final byte[] KEY128_1 = HexUtil.hexToBytes("deadbeefcafebabe0123456789abcdef"); - private final byte[] CIPHER128_1 = HexUtil.hexToBytes("8c5b8c04805c0e07dd62b381730d5d10"); - - private final byte[] PLAINTXT192_1 = HexUtil.hexToBytes("0123456789abcdef1123456789abcdef2123456789abcdef"); - private final byte[] KEY192_1 = HexUtil.hexToBytes("deadbeefcafebabe0123456789abcdefcafebabedeadbeef"); - private final byte[] CIPHER192_1 = HexUtil.hexToBytes("7fae974786a9741d96693654bc7a8aff09b3f116840ffced"); - - private final byte[] PLAINTXT256_1 = HexUtil - .hexToBytes("0123456789abcdef1123456789abcdef2123456789abcdef3123456789abcdef"); - private final byte[] KEY256_1 = HexUtil - .hexToBytes("deadbeefcafebabe0123456789abcdefcafebabedeadbeefcafebabe01234567"); - private final byte[] CIPHER256_1 = HexUtil - .hexToBytes("6fcbc68fc938e5f5a7c24d7422f4b5f153257b6fb53e0bca26770497dd65078c"); - - private static final Random rand = new Random(); - - public void testKnownValue() throws UnsupportedCipherException { - Rijndael aes128 = new Rijndael(128, 128); - byte[] res128 = new byte[128 / 8]; - aes128.initialize(KEY128_1); - aes128.encipher(PLAINTXT128_1, res128); - assertTrue("(128,128) ENCIPHER", Arrays.equals(res128, CIPHER128_1)); - byte[] des128 = new byte[128 / 8]; - aes128.decipher(res128, des128); - assertTrue("(128,128) DECIPHER", Arrays.equals(des128, PLAINTXT128_1)); - - Rijndael aes192 = new Rijndael(192, 192); - byte[] res192 = new byte[192 / 8]; - aes192.initialize(KEY192_1); - aes192.encipher(PLAINTXT192_1, res192); - assertTrue("(192,192) ENCIPHER", Arrays.equals(res192, CIPHER192_1)); - byte[] des192 = new byte[192 / 8]; - aes192.decipher(res192, des192); - assertTrue("(192,192) DECIPHER", Arrays.equals(des192, PLAINTXT192_1)); - - Rijndael aes256 = new Rijndael(256, 256); - byte[] res256 = new byte[256 / 8]; - aes256.initialize(KEY256_1); - aes256.encipher(PLAINTXT256_1, res256); - assertTrue("(256,256) ENCIPHER", Arrays.equals(res256, CIPHER256_1)); - byte[] des256 = new byte[256 / 8]; - aes256.decipher(res256, des256); - assertTrue("(256,256) DECIPHER", Arrays.equals(des256, PLAINTXT256_1)); - } - - public void testRandom() throws UnsupportedCipherException { - final int[] SIZE = new int[] { 128, 192, 256 }; - - for (int k = 0; k < SIZE.length; k++) { - int size = SIZE[k]; - Rijndael aes = new Rijndael(size, size); - - byte[] key = new byte[size]; - rand.nextBytes(key); - aes.initialize(key); - - for (int i = 0; i < 1024; i++) { - byte[] plain = new byte[size / 8]; - rand.nextBytes(plain); - - byte[] cipher = new byte[size / 8]; - aes.encipher(plain, cipher); - - byte[] plain2 = new byte[size / 8]; - aes.decipher(cipher, plain2); - - assertTrue("(" + size + "," + size + // - ") KEY=" + HexUtil.bytesToHex(key) + // - ", PLAIN=" + HexUtil.bytesToHex(plain) + // - ", CIPHER=" + HexUtil.bytesToHex(cipher) + // - ", PLAIN2=" + HexUtil.bytesToHex(plain2),// - Arrays.equals(plain, plain2)); - } - } - } -} Copied: trunk/freenet/test/freenet/crypt/ciphers/RijndaelTest.java (from rev 19917, trunk/freenet/src/freenet/crypt/ciphers/RijndaelTest.java) =================================================================== --- trunk/freenet/test/freenet/crypt/ciphers/RijndaelTest.java (rev 0) +++ trunk/freenet/test/freenet/crypt/ciphers/RijndaelTest.java 2008-05-13 20:45:14 UTC (rev 19918) @@ -0,0 +1,95 @@ +/* This code is part of Freenet. It is distributed under the GNU General + * Public License, version 2 (or at your option any later version). See + * http://www.gnu.org/ for further details of the GPL. */ +package freenet.crypt.ciphers; + +import java.util.Arrays; +import java.util.Random; + +import javax.crypto.Cipher; + +import freenet.crypt.UnsupportedCipherException; +import freenet.support.HexUtil; +import junit.framework.TestCase; + +/** + * @author sdiz + */ +public class RijndaelTest extends TestCase { + private final byte[] PLAINTXT128_1 = HexUtil.hexToBytes("0123456789abcdef1123456789abcdef"); + private final byte[] KEY128_1 = HexUtil.hexToBytes("deadbeefcafebabe0123456789abcdef"); + private final byte[] CIPHER128_1 = HexUtil.hexToBytes("8c5b8c04805c0e07dd62b381730d5d10"); + + private final byte[] PLAINTXT192_1 = HexUtil.hexToBytes("0123456789abcdef1123456789abcdef2123456789abcdef"); + private final byte[] KEY192_1 = HexUtil.hexToBytes("deadbeefcafebabe0123456789abcdefcafebabedeadbeef"); + private final byte[] CIPHER192_1 = HexUtil.hexToBytes("7fae974786a9741d96693654bc7a8aff09b3f116840ffced"); + + private final byte[] PLAINTXT256_1 = HexUtil + .hexToBytes("0123456789abcdef1123456789abcdef2123456789abcdef3123456789abcdef"); + private final byte[] KEY256_1 = HexUtil + .hexToBytes("deadbeefcafebabe0123456789abcdefcafebabedeadbeefcafebabe01234567"); + private final byte[] CIPHER256_1 = HexUtil + .hexToBytes("6fcbc68fc938e5f5a7c24d7422f4b5f153257b6fb53e0bca26770497dd65078c"); + + private static final Random rand = new Random(); + + public void testKnownValue() throws UnsupportedCipherException { + Rijndael aes128 = new Rijndael(128, 128); + byte[] res128 = new byte[128 / 8]; + aes128.initialize(KEY128_1); + aes128.encipher(PLAINTXT128_1, res128); + assertTrue("(128,128) ENCIPHER", Arrays.equals(res128, CIPHER128_1)); + byte[] des128 = new byte[128 / 8]; + aes128.decipher(res128, des128); + assertTrue("(128,128) DECIPHER", Arrays.equals(des128, PLAINTXT128_1)); + + Rijndael aes192 = new Rijndael(192, 192); + byte[] res192 = new byte[192 / 8]; + aes192.initialize(KEY192_1); + aes192.encipher(PLAINTXT192_1, res192); + assertTrue("(192,192) ENCIPHER", Arrays.equals(res192, CIPHER192_1)); + byte[] des192 = new byte[192 / 8]; + aes192.decipher(res192, des192); + assertTrue("(192,192) DECIPHER", Arrays.equals(des192, PLAINTXT192_1)); + + Rijndael aes256 = new Rijndael(256, 256); + byte[] res256 = new byte[256 / 8]; + aes256.initialize(KEY256_1); + aes256.encipher(PLAINTXT256_1, res256); + assertTrue("(256,256) ENCIPHER", Arrays.equals(res256, CIPHER256_1)); + byte[] des256 = new byte[256 / 8]; + aes256.decipher(res256, des256); + assertTrue("(256,256) DECIPHER", Arrays.equals(des256, PLAINTXT256_1)); + } + + public void testRandom() throws UnsupportedCipherException { + final int[] SIZE = new int[] { 128, 192, 256 }; + + for (int k = 0; k < SIZE.length; k++) { + int size = SIZE[k]; + Rijndael aes = new Rijndael(size, size); + + byte[] key = new byte[size]; + rand.nextBytes(key); + aes.initialize(key); + + for (int i = 0; i < 1024; i++) { + byte[] plain = new byte[size / 8]; + rand.nextBytes(plain); + + byte[] cipher = new byte[size / 8]; + aes.encipher(plain, cipher); + + byte[] plain2 = new byte[size / 8]; + aes.decipher(cipher, plain2); + + assertTrue("(" + size + "," + size + // + ") KEY=" + HexUtil.bytesToHex(key) + // + ", PLAIN=" + HexUtil.bytesToHex(plain) + // + ", CIPHER=" + HexUtil.bytesToHex(cipher) + // + ", PLAIN2=" + HexUtil.bytesToHex(plain2),// + Arrays.equals(plain, plain2)); + } + } + } +}
