package io.kaif.token;
import static org.junit.Assert.*;
import java.security.SecureRandom;
import java.util.Arrays;
import org.junit.Test;
public class DecryptorTest {
@Test
public void decrypt() throws Exception {
final byte[] bytes = new byte[100];
final SecureRandom secureRandom = new SecureRandom();
for (int i = 0; i < 100; i++) {
final byte[] keys = new byte[16];
secureRandom.nextBytes(keys);
secureRandom.nextBytes(bytes);
final byte[] actual = Decryptor.create(keys).decrypt(Encryptor.create(keys).encrypt(bytes));
assertTrue(Arrays.equals(actual, bytes));
}
}
@Test
public void ivPerformance() throws Exception {
final byte[] bytes = new byte[1000];
final SecureRandom secureRandom = new SecureRandom();
final byte[] keys = new byte[16];
final byte[] iv = new byte[16];
secureRandom.nextBytes(keys);
secureRandom.nextBytes(iv);
final Decryptor decryptor = Decryptor.create(keys, iv);
final Encryptor encryptor = Encryptor.create(keys, iv);
for (int i = 0; i < 1000; i++) {
secureRandom.nextBytes(bytes);
final byte[] actual = decryptor.decrypt(encryptor.encrypt(bytes));
assertTrue(Arrays.equals(actual, bytes));
secureRandom.nextBytes(iv);
encryptor.resetIvParameter(iv, 0);
decryptor.resetIvParameter(iv, 0);
}
}
}