package net.i2p.crypto; /* * free (adj.): unencumbered; not under the control of others * Written by jrandom in 2003 and released into the public domain * with no warranty of any kind, either expressed or implied. * It probably won't make your computer catch on fire, or eat * your children, but it might. Use at your own risk. * */ import junit.framework.TestCase; import net.i2p.I2PAppContext; import net.i2p.data.DataHelper; import net.i2p.data.SessionKey; import net.i2p.util.RandomSource; /** * @author Comwiz */ public class AES256Test extends TestCase{ private I2PAppContext _context; private byte[] iv; protected void setUp() { _context = I2PAppContext.getGlobalContext(); } public void testMultiple(){ for(int i = 0; i < 100; i++){ SessionKey key = _context.keyGenerator().generateSessionKey(); byte[] iv = new byte[16]; _context.random().nextBytes(iv); byte[] plain = new byte[256]; _context.random().nextBytes(plain); byte[] e = new byte[plain.length]; _context.aes().encrypt(plain, 0, e, 0, key, iv, plain.length); byte[] d = new byte[e.length]; _context.aes().decrypt(e, 0, d, 0, key, iv, d.length); boolean same = true; assertTrue(DataHelper.eq(plain, d)); } } public void testLong(){ I2PAppContext ctx = new I2PAppContext(); SessionKey key = ctx.keyGenerator().generateSessionKey(); byte iv[] = new byte[16]; RandomSource.getInstance().nextBytes(iv); byte lbuf[] = new byte[1024]; RandomSource.getInstance().nextBytes(lbuf); byte le[] = ctx.aes().safeEncrypt(lbuf, key, iv, 2048); byte ld[] = ctx.aes().safeDecrypt(le, key, iv); assertTrue(DataHelper.eq(ld, lbuf)); } public void testShort(){ I2PAppContext ctx = new I2PAppContext(); SessionKey key = ctx.keyGenerator().generateSessionKey(); byte iv[] = new byte[16]; RandomSource.getInstance().nextBytes(iv); byte sbuf[] = new byte[16]; RandomSource.getInstance().nextBytes(sbuf); byte se[] = new byte[16]; ctx.aes().encrypt(sbuf, 0, se, 0, key, iv, sbuf.length); byte sd[] = new byte[16]; ctx.aes().decrypt(se, 0, sd, 0, key, iv, se.length); assertTrue(DataHelper.eq(sd, sbuf)); } }