|
@@ -32,17 +32,15 @@ public class BouncyCastleAesBytesEncryptorEquivalencyTest {
|
|
|
private byte[] testData;
|
|
|
private String password;
|
|
|
private String salt;
|
|
|
+ private SecureRandom secureRandom = new SecureRandom();
|
|
|
|
|
|
@Before
|
|
|
public void setup() {
|
|
|
// generate random password, salt, and test data
|
|
|
- SecureRandom secureRandom = new SecureRandom();
|
|
|
password = UUID.randomUUID().toString();
|
|
|
byte[] saltBytes = new byte[16];
|
|
|
secureRandom.nextBytes(saltBytes);
|
|
|
salt = new String(Hex.encode(saltBytes));
|
|
|
- testData = new byte[1024 * 1024];
|
|
|
- secureRandom.nextBytes(testData);
|
|
|
}
|
|
|
|
|
|
@Test
|
|
@@ -87,30 +85,38 @@ public class BouncyCastleAesBytesEncryptorEquivalencyTest {
|
|
|
|
|
|
private void testEquivalence(BytesEncryptor left, BytesEncryptor right)
|
|
|
throws Exception {
|
|
|
- // tests that right and left generate the same encrypted bytes
|
|
|
- // and can decrypt back to the original input
|
|
|
- byte[] leftEncrypted = left.encrypt(testData);
|
|
|
- byte[] rightEncrypted = right.encrypt(testData);
|
|
|
- Assert.assertArrayEquals(leftEncrypted, rightEncrypted);
|
|
|
- byte[] leftDecrypted = left.decrypt(leftEncrypted);
|
|
|
- byte[] rightDecrypted = right.decrypt(rightEncrypted);
|
|
|
- Assert.assertArrayEquals(testData, leftDecrypted);
|
|
|
- Assert.assertArrayEquals(testData, rightDecrypted);
|
|
|
+ for (int size = 1; size < 2048; size++) {
|
|
|
+ testData = new byte[size];
|
|
|
+ secureRandom.nextBytes(testData);
|
|
|
+ // tests that right and left generate the same encrypted bytes
|
|
|
+ // and can decrypt back to the original input
|
|
|
+ byte[] leftEncrypted = left.encrypt(testData);
|
|
|
+ byte[] rightEncrypted = right.encrypt(testData);
|
|
|
+ Assert.assertArrayEquals(leftEncrypted, rightEncrypted);
|
|
|
+ byte[] leftDecrypted = left.decrypt(leftEncrypted);
|
|
|
+ byte[] rightDecrypted = right.decrypt(rightEncrypted);
|
|
|
+ Assert.assertArrayEquals(testData, leftDecrypted);
|
|
|
+ Assert.assertArrayEquals(testData, rightDecrypted);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void testCompatibility(BytesEncryptor left, BytesEncryptor right)
|
|
|
throws Exception {
|
|
|
// tests that right can decrypt what left encrypted and vice versa
|
|
|
// and that the decypted data is the same as the original
|
|
|
- byte[] leftEncrypted = left.encrypt(testData);
|
|
|
- byte[] rightEncrypted = right.encrypt(testData);
|
|
|
- byte[] leftDecrypted = left.decrypt(rightEncrypted);
|
|
|
- byte[] rightDecrypted = right.decrypt(leftEncrypted);
|
|
|
- Assert.assertArrayEquals(testData, leftDecrypted);
|
|
|
- Assert.assertArrayEquals(testData, rightDecrypted);
|
|
|
+ for (int size = 1; size < 2048; size++) {
|
|
|
+ testData = new byte[size];
|
|
|
+ secureRandom.nextBytes(testData);
|
|
|
+ byte[] leftEncrypted = left.encrypt(testData);
|
|
|
+ byte[] rightEncrypted = right.encrypt(testData);
|
|
|
+ byte[] leftDecrypted = left.decrypt(rightEncrypted);
|
|
|
+ byte[] rightDecrypted = right.decrypt(leftEncrypted);
|
|
|
+ Assert.assertArrayEquals(testData, leftDecrypted);
|
|
|
+ Assert.assertArrayEquals(testData, rightDecrypted);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* A BytesKeyGenerator that always generates the same sequence of values
|
|
|
*/
|