You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/04/17 15:55:49 UTC
svn commit: r1588253 - in /cayenne/main/trunk/cayenne-crypto/src:
main/java/org/apache/cayenne/crypto/transformer/bytes/
main/java/org/apache/cayenne/crypto/transformer/value/
test/java/org/apache/cayenne/crypto/
test/java/org/apache/cayenne/crypto/tra...
Author: aadamchik
Date: Thu Apr 17 13:55:48 2014
New Revision: 1588253
URL: http://svn.apache.org/r1588253
Log:
CAY-1925 cayenne-crypto: add optional compression to the encryption pipeline
(in progress) don't compress smaller values
Modified:
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/BytesEncryptor.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptor.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptor.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/Header.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptor.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueEncryptor.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_GZIP_Test.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptorTest.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptorTest.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptorTest.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderTest.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/CryptoUnitUtils.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformer.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformerTest.java
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/BytesEncryptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/BytesEncryptor.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/BytesEncryptor.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/BytesEncryptor.java Thu Apr 17 13:55:48 2014
@@ -32,7 +32,10 @@ public interface BytesEncryptor {
* how much empty space to leave in the beginning of the returned
* output array. This would allow the caller to prepend extra
* data to the encrypted array.
+ * @param flags
+ * a byte[1] that allows nested encryptors to manipulate header
+ * flags.
*/
- byte[] encrypt(byte[] input, int outputOffset);
+ byte[] encrypt(byte[] input, int outputOffset, byte[] flags);
}
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptor.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptor.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptor.java Thu Apr 17 13:55:48 2014
@@ -65,7 +65,7 @@ class CbcEncryptor implements BytesEncry
}
@Override
- public byte[] encrypt(byte[] input, int outputOffset) {
+ public byte[] encrypt(byte[] input, int outputOffset, byte[] flags) {
try {
return doEncrypt(input, outputOffset);
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptor.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptor.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptor.java Thu Apr 17 13:55:48 2014
@@ -29,7 +29,7 @@ import org.apache.cayenne.crypto.Cayenne
*/
class GzipEncryptor implements BytesEncryptor {
- private static final int GZIP_THRESHOLD = 150;
+ static final int GZIP_THRESHOLD = 150;
private BytesEncryptor delegate;
@@ -38,11 +38,11 @@ class GzipEncryptor implements BytesEncr
}
@Override
- public byte[] encrypt(byte[] input, int outputOffset) {
+ public byte[] encrypt(byte[] input, int outputOffset, byte[] flags) {
- boolean compress = input.length >= GZIP_THRESHOLD;
+ boolean compressed = input.length >= GZIP_THRESHOLD;
- if (compress) {
+ if (compressed) {
try {
input = gzip(input);
} catch (IOException e) {
@@ -51,7 +51,8 @@ class GzipEncryptor implements BytesEncr
}
}
- return delegate.encrypt(input, outputOffset);
+ flags[0] = Header.setCompressed(flags[0], compressed);
+ return delegate.encrypt(input, outputOffset, flags);
}
static byte[] gzip(byte[] input) throws IOException {
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/Header.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/Header.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/Header.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/Header.java Thu Apr 17 13:55:48 2014
@@ -113,10 +113,18 @@ public class Header {
return new Header(data, offset);
}
+ public static byte setCompressed(byte bits, boolean compressed) {
+ return compressed ? bitOn(bits, COMPRESS_BIT) : bitOff(bits, COMPRESS_BIT);
+ }
+
private static byte bitOn(byte bits, int position) {
return (byte) (bits | (1 << position));
}
+ private static byte bitOff(byte bits, int position) {
+ return (byte) (bits & ~(1 << position));
+ }
+
private static boolean isBitOn(byte bits, int position) {
return ((bits >> position) & 1) == 1;
}
@@ -132,14 +140,19 @@ public class Header {
}
public boolean isCompressed() {
- return isBitOn(data[offset + FLAGS_POSITION], COMPRESS_BIT);
+ return isBitOn(getFlags(), COMPRESS_BIT);
+ }
+
+ public byte getFlags() {
+ return data[offset + FLAGS_POSITION];
}
/**
* Saves the header bytes in the provided buffer at specified offset.
*/
- public void store(byte[] output, int outputOffset) {
+ public void store(byte[] output, int outputOffset, byte flags) {
System.arraycopy(data, offset, output, outputOffset, size());
+ output[outputOffset + FLAGS_POSITION] = flags;
}
public String getKeyName() {
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptor.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptor.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptor.java Thu Apr 17 13:55:48 2014
@@ -29,9 +29,12 @@ class HeaderEncryptor implements BytesEn
}
@Override
- public byte[] encrypt(byte[] input, int outputOffset) {
- byte[] output = delegate.encrypt(input, outputOffset + header.size());
- header.store(output, outputOffset);
+ public byte[] encrypt(byte[] input, int outputOffset, byte[] flags) {
+
+ flags[0] = header.getFlags();
+
+ byte[] output = delegate.encrypt(input, outputOffset + header.size(), flags);
+ header.store(output, outputOffset, flags[0]);
return output;
}
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueEncryptor.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueEncryptor.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueEncryptor.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueEncryptor.java Thu Apr 17 13:55:48 2014
@@ -50,7 +50,7 @@ class DefaultValueEncryptor implements V
}
byte[] bytes = preConverter.toBytes(value);
- byte[] transformed = encryptor.encrypt(bytes, 0);
+ byte[] transformed = encryptor.encrypt(bytes, 0, new byte[1]);
return postConverter.fromBytes(transformed);
}
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_GZIP_Test.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_GZIP_Test.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_GZIP_Test.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/Runtime_AES128_GZIP_Test.java Thu Apr 17 13:55:48 2014
@@ -28,7 +28,6 @@ import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Random;
import org.apache.cayenne.ObjectContext;
import org.apache.cayenne.crypto.db.Table2;
@@ -47,20 +46,13 @@ public class Runtime_AES128_GZIP_Test ex
super.setUp(true);
}
- byte[] bytesOfSize(int len) {
- Random r = new Random();
- byte[] b = new byte[len];
- r.nextBytes(b);
- return b;
- }
-
@Test
public void testInsert() throws SQLException {
ObjectContext context = runtime.newContext();
// make sure compression is on...
- byte[] cryptoBytes = bytesOfSize(GZIP_THRESHOLD + 100);
+ byte[] cryptoBytes = CryptoUnitUtils.bytesOfSize(GZIP_THRESHOLD + 100);
Table2 t1 = context.newObject(Table2.class);
t1.setPlainBytes("plain_1".getBytes());
@@ -83,7 +75,7 @@ public class Runtime_AES128_GZIP_Test ex
ObjectContext context = runtime.newContext();
// make sure compression is on...
- byte[] cryptoBytes = bytesOfSize(GZIP_THRESHOLD - 20);
+ byte[] cryptoBytes = CryptoUnitUtils.bytesOfSize(GZIP_THRESHOLD - 20);
Table2 t1 = context.newObject(Table2.class);
t1.setPlainBytes("plain_1".getBytes());
@@ -105,8 +97,8 @@ public class Runtime_AES128_GZIP_Test ex
ObjectContext context = runtime.newContext();
// make sure compression is on...
- byte[] cryptoBytes1 = bytesOfSize(GZIP_THRESHOLD + 101);
- byte[] cryptoBytes2 = bytesOfSize(GZIP_THRESHOLD + 102);
+ byte[] cryptoBytes1 = CryptoUnitUtils.bytesOfSize(GZIP_THRESHOLD + 101);
+ byte[] cryptoBytes2 = CryptoUnitUtils.bytesOfSize(GZIP_THRESHOLD + 102);
Table2 t1 = context.newObject(Table2.class);
t1.setPlainBytes("a".getBytes());
@@ -141,8 +133,8 @@ public class Runtime_AES128_GZIP_Test ex
public void test_SelectQuery() throws SQLException {
// make sure compression is on...
- byte[] cryptoBytes1 = bytesOfSize(GZIP_THRESHOLD + 101);
- byte[] cryptoBytes2 = bytesOfSize(GZIP_THRESHOLD + 102);
+ byte[] cryptoBytes1 = CryptoUnitUtils.bytesOfSize(GZIP_THRESHOLD + 101);
+ byte[] cryptoBytes2 = CryptoUnitUtils.bytesOfSize(GZIP_THRESHOLD + 102);
ObjectContext context = runtime.newContext();
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptorTest.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptorTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/CbcEncryptorTest.java Thu Apr 17 13:55:48 2014
@@ -71,7 +71,7 @@ public class CbcEncryptorTest {
// copy ivBytes, as they are reset
CbcEncryptor encryptor = new CbcEncryptor(cipher, key, ivBytes);
- byte[] encrypted = encryptor.encrypt(plain, 0);
+ byte[] encrypted = encryptor.encrypt(plain, 0, new byte[1]);
assertEquals(16 * 3, encrypted.length);
assertArrayEquals(ivBytes, Arrays.copyOfRange(encrypted, 0, 16));
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptorTest.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptorTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/GzipEncryptorTest.java Thu Apr 17 13:55:48 2014
@@ -48,29 +48,39 @@ public class GzipEncryptorTest {
public void testEncrypt() throws UnsupportedEncodingException {
BytesEncryptor delegate = mock(BytesEncryptor.class);
- when(delegate.encrypt(any(byte[].class), anyInt())).thenAnswer(new Answer<byte[]>() {
+ when(delegate.encrypt(any(byte[].class), anyInt(), any(byte[].class))).thenAnswer(new Answer<byte[]>() {
@Override
public byte[] answer(InvocationOnMock invocation) throws Throwable {
Object[] args = invocation.getArguments();
byte[] answer = (byte[]) args[0];
int offset = (Integer) args[1];
-
+
assertEquals(1, offset);
-
+
return answer;
}
});
-
GzipEncryptor e = new GzipEncryptor(delegate);
byte[] input1 = "Hello Hello Hello".getBytes("UTF8");
- byte[] output1 = e.encrypt(input1, 1);
- byte[] expectedOutput1 = CryptoUnitUtils.hexToBytes("1f8b0800000000000000f348cdc9c957f0409000a91a078c11000000");
+ byte[] output1 = e.encrypt(input1, 1, new byte[1]);
+ byte[] expectedOutput1 = input1;
assertArrayEquals(expectedOutput1, output1);
+ byte[] input2 = ("Hello AAAAA Hello AAAAA Hello AAAAA Hello AAAAA Hello AAAAA Hello AAAAA Hello "
+ + "Hello AAAAA Hello AAAAA Hello AAAAA Hello AAAAA Hello AAAAA Hello AAAAA Hello").getBytes("UTF8");
+ byte[] output2 = e.encrypt(input2, 1, new byte[1]);
+
+ // somehow 'gzip -c' fills bytes 3..9 with values... the rest of the
+ // gzip string is identical...
+ byte[] expectedOutput2 = CryptoUnitUtils
+ .hexToBytes("1f8b0800000000000000f348cdc9c957700401050f8ad9949b80c40600bbec62509b000000");
+
+ assertArrayEquals(expectedOutput2, output2);
+
}
}
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptorTest.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptorTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderEncryptorTest.java Thu Apr 17 13:55:48 2014
@@ -39,10 +39,10 @@ public class HeaderEncryptorTest {
// intentionally non-standard block size..
HeaderEncryptor encryptor = new HeaderEncryptor(delegate, encryptionHeader);
- byte[] output1 = encryptor.encrypt(input, 0);
+ byte[] output1 = encryptor.encrypt(input, 0, new byte[1]);
assertArrayEquals(new byte[] { 'C', 'C', '1', 10, 0, 'm', 'y', 'k', 'e', 'y', 8, 7, 6, 5, 4, 3, 2, 1 }, output1);
- byte[] output2 = encryptor.encrypt(input, 1);
+ byte[] output2 = encryptor.encrypt(input, 1, new byte[1]);
assertArrayEquals(new byte[] { 0, 'C', 'C', '1', 10, 0, 'm', 'y', 'k', 'e', 'y', 8, 7, 6, 5, 4, 3, 2, 1 }, output2);
}
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderTest.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/bytes/HeaderTest.java Thu Apr 17 13:55:48 2014
@@ -28,6 +28,15 @@ import org.junit.Test;
public class HeaderTest {
@Test
+ public void testSetCompressed() {
+ assertEquals(1, Header.setCompressed((byte) 0, true));
+ assertEquals(0, Header.setCompressed((byte) 0, false));
+
+ assertEquals(1, Header.setCompressed((byte) 1, true));
+ assertEquals(0, Header.setCompressed((byte) 1, false));
+ }
+
+ @Test
public void testCreate_WithKeyName() {
Header h1 = Header.create("bcd", false);
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/CryptoUnitUtils.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/CryptoUnitUtils.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/CryptoUnitUtils.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/CryptoUnitUtils.java Thu Apr 17 13:55:48 2014
@@ -24,6 +24,7 @@ import java.io.IOException;
import java.math.BigInteger;
import java.security.Key;
import java.util.Arrays;
+import java.util.Random;
import java.util.zip.GZIPInputStream;
import javax.crypto.Cipher;
@@ -35,6 +36,13 @@ import org.apache.cayenne.crypto.transfo
public class CryptoUnitUtils {
+ public static byte[] bytesOfSize(int len) {
+ Random r = new Random();
+ byte[] b = new byte[len];
+ r.nextBytes(b);
+ return b;
+ }
+
public static byte[] hexToBytes(String hexString) {
byte[] bytes = new BigInteger(hexString, 16).toByteArray();
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformer.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformer.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformer.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformer.java Thu Apr 17 13:55:48 2014
@@ -52,7 +52,7 @@ public class SwapBytesTransformer implem
}
@Override
- public byte[] encrypt(byte[] input, int outputOffset) {
+ public byte[] encrypt(byte[] input, int outputOffset, byte[] flags) {
byte[] output = new byte[input.length + outputOffset];
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformerTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformerTest.java?rev=1588253&r1=1588252&r2=1588253&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformerTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/SwapBytesTransformerTest.java Thu Apr 17 13:55:48 2014
@@ -31,7 +31,7 @@ public class SwapBytesTransformerTest {
BytesEncryptor instance = SwapBytesTransformer.encryptor();
byte[] input = { 1, 3, 5 };
- byte[] output = instance.encrypt(input, 3);
+ byte[] output = instance.encrypt(input, 3, new byte[1]);
assertArrayEquals(new byte[] { 0, 0, 0, 5, 3, 1 }, output);
}
@@ -41,7 +41,7 @@ public class SwapBytesTransformerTest {
BytesEncryptor instance = SwapBytesTransformer.encryptor();
byte[] input = { 1, 3, 5, 8 };
- byte[] output = instance.encrypt(input, 3);
+ byte[] output = instance.encrypt(input, 3, new byte[1]);
assertArrayEquals(new byte[] { 0, 0, 0, 8, 5, 3, 1 }, output);
}