From 0697e19b014e229ae28ed5e880787f697876d374 Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Sun, 6 Dec 2015 14:52:46 +0100 Subject: [PATCH] less random numbers in tests, explicit test timeout --- .../crypto/aes256/Aes256CryptorTest.java | 39 +++++++------------ 1 file changed, 14 insertions(+), 25 deletions(-) diff --git a/main/crypto-aes/src/test/java/org/cryptomator/crypto/aes256/Aes256CryptorTest.java b/main/crypto-aes/src/test/java/org/cryptomator/crypto/aes256/Aes256CryptorTest.java index 34a8c2669..adfcaafd0 100644 --- a/main/crypto-aes/src/test/java/org/cryptomator/crypto/aes256/Aes256CryptorTest.java +++ b/main/crypto-aes/src/test/java/org/cryptomator/crypto/aes256/Aes256CryptorTest.java @@ -29,11 +29,16 @@ import org.junit.Test; public class Aes256CryptorTest { - @Test + private final Aes256Cryptor cryptor; + + public Aes256CryptorTest() { + cryptor = new Aes256Cryptor(); + cryptor.randomizeMasterKey(); + } + + @Test(timeout = 10000) public void testCorrectPassword() throws IOException, WrongPasswordException, DecryptFailedException, UnsupportedKeyLengthException, DestroyFailedException, UnsupportedVaultException { final String pw = "asd"; - final Aes256Cryptor cryptor = new Aes256Cryptor(); - cryptor.randomizeMasterKey(); final ByteArrayOutputStream out = new ByteArrayOutputStream(); cryptor.encryptMasterKey(out, pw); @@ -47,11 +52,9 @@ public class Aes256CryptorTest { IOUtils.closeQuietly(in); } - @Test + @Test(timeout = 10000) public void testWrongPassword() throws IOException, DecryptFailedException, WrongPasswordException, UnsupportedKeyLengthException, DestroyFailedException, UnsupportedVaultException { final String pw = "asd"; - final Aes256Cryptor cryptor = new Aes256Cryptor(); - cryptor.randomizeMasterKey(); final ByteArrayOutputStream out = new ByteArrayOutputStream(); cryptor.encryptMasterKey(out, pw); @@ -74,18 +77,14 @@ public class Aes256CryptorTest { } } - @Test(expected = DecryptFailedException.class) + @Test(expected = DecryptFailedException.class, timeout = 10000) public void testIntegrityViolationDuringDecryption() throws IOException, DecryptFailedException, EncryptFailedException { // our test plaintext data: final byte[] plaintextData = "Hello World".getBytes(); final InputStream plaintextIn = new ByteArrayInputStream(plaintextData); - // init cryptor: - final Aes256Cryptor cryptor = new Aes256Cryptor(); - cryptor.randomizeMasterKey(); - // encrypt: - final ByteBuffer encryptedData = ByteBuffer.allocate(104 + plaintextData.length + 4096); + final ByteBuffer encryptedData = ByteBuffer.allocate(104 + plaintextData.length + 4096 + 32); // header + content + maximum possible size obfuscation padding + 32 bytes mac (per each 32k) final SeekableByteChannel encryptedOut = new ByteBufferBackedSeekableChannel(encryptedData); cryptor.encryptFile(plaintextIn, encryptedOut); IOUtils.closeQuietly(plaintextIn); @@ -107,16 +106,12 @@ public class Aes256CryptorTest { cryptor.decryptFile(encryptedIn, plaintextOut, true); } - @Test + @Test(timeout = 10000) public void testEncryptionAndDecryption() throws IOException, DecryptFailedException, WrongPasswordException, UnsupportedKeyLengthException, EncryptFailedException { // our test plaintext data: final byte[] plaintextData = "Hello World".getBytes(); final InputStream plaintextIn = new ByteArrayInputStream(plaintextData); - // init cryptor: - final Aes256Cryptor cryptor = new Aes256Cryptor(); - cryptor.randomizeMasterKey(); - // encrypt: final ByteBuffer encryptedData = ByteBuffer.allocate(104 + plaintextData.length + 4096 + 32); // header + content + maximum possible size obfuscation padding + 32 bytes mac (per each 32k) final SeekableByteChannel encryptedOut = new ByteBufferBackedSeekableChannel(encryptedData); @@ -143,7 +138,7 @@ public class Aes256CryptorTest { Assert.assertArrayEquals(plaintextData, result); } - @Test + @Test(timeout = 10000) public void testPartialDecryption() throws IOException, DecryptFailedException, WrongPasswordException, UnsupportedKeyLengthException, EncryptFailedException { // 8MiB test plaintext data: final byte[] plaintextData = new byte[2097152 * Integer.BYTES]; @@ -153,10 +148,6 @@ public class Aes256CryptorTest { } final InputStream plaintextIn = new ByteArrayInputStream(plaintextData); - // init cryptor: - final Aes256Cryptor cryptor = new Aes256Cryptor(); - cryptor.randomizeMasterKey(); - // encrypt: final ByteBuffer encryptedData = ByteBuffer.allocate((int) (104 + plaintextData.length * 1.2)); final SeekableByteChannel encryptedOut = new ByteBufferBackedSeekableChannel(encryptedData); @@ -180,10 +171,8 @@ public class Aes256CryptorTest { Assert.assertArrayEquals(expected, result); } - @Test + @Test(timeout = 10000) public void testEncryptionOfFilenames() throws IOException, DecryptFailedException { - final Aes256Cryptor cryptor = new Aes256Cryptor(); - cryptor.randomizeMasterKey(); // directory paths final String originalPath1 = "foo/bar/baz";