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/04 14:04:11 UTC
svn commit: r1584630 - in /cayenne/main/trunk/cayenne-crypto/src:
main/java/org/apache/cayenne/crypto/
main/java/org/apache/cayenne/crypto/transformer/
main/java/org/apache/cayenne/crypto/transformer/value/
test/java/org/apache/cayenne/crypto/ test/jav...
Author: aadamchik
Date: Fri Apr 4 12:04:11 2014
New Revision: 1584630
URL: http://svn.apache.org/r1584630
Log:
CAY-1916 cayenne-crypto module that enables data encryption for certain model attributes
splitting valuetransformer implementations into encryptor and decryptor
Added:
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultDecryptor.java
- copied, changed from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptor.java
- copied, changed from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java
- copied, changed from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactory.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueDecryptor.java
- copied, changed from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueEncryptor.java
- copied, changed from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptorTest.java
- copied, changed from r1584629, cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerTest.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactoryTest.java
- copied, changed from r1584629, cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactoryTest.java
Removed:
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactory.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactoryTest.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerTest.java
Modified:
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultBindingsTransformer.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultMapTransformer.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultTransformerFactory.java
cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformerFactory.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactory.java
cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactoryTest.java
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/CryptoModuleBuilder.java Fri Apr 4 12:04:11 2014
@@ -36,7 +36,7 @@ import org.apache.cayenne.crypto.transfo
import org.apache.cayenne.crypto.transformer.TransformerFactory;
import org.apache.cayenne.crypto.transformer.bytes.BytesTransformerFactory;
import org.apache.cayenne.crypto.transformer.bytes.DefaultBytesTransformerFactory;
-import org.apache.cayenne.crypto.transformer.value.JceValueTransformerFactory;
+import org.apache.cayenne.crypto.transformer.value.DefaultValueTransformerFactory;
import org.apache.cayenne.crypto.transformer.value.ValueTransformerFactory;
import org.apache.cayenne.di.Binder;
import org.apache.cayenne.di.MapBuilder;
@@ -87,7 +87,7 @@ public class CryptoModuleBuilder {
this.columnMapperPattern = "^CRYPTO_";
- this.valueTransformerFactoryType = JceValueTransformerFactory.class;
+ this.valueTransformerFactoryType = DefaultValueTransformerFactory.class;
}
public CryptoModuleBuilder cipherAlgorithm(String algorithm) {
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultBindingsTransformer.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultBindingsTransformer.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultBindingsTransformer.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultBindingsTransformer.java Fri Apr 4 12:04:11 2014
@@ -21,7 +21,7 @@ package org.apache.cayenne.crypto.transf
import javax.crypto.Cipher;
import org.apache.cayenne.access.translator.batch.BatchParameterBinding;
-import org.apache.cayenne.crypto.transformer.value.ValueTransformer;
+import org.apache.cayenne.crypto.transformer.value.ValueEncryptor;
/**
* @since 3.2
@@ -29,10 +29,10 @@ import org.apache.cayenne.crypto.transfo
public class DefaultBindingsTransformer implements BindingsTransformer {
private int[] positions;
- private ValueTransformer[] transformers;
+ private ValueEncryptor[] transformers;
private Cipher cipher;
- public DefaultBindingsTransformer(int[] positions, ValueTransformer[] transformers, Cipher cipher) {
+ public DefaultBindingsTransformer(int[] positions, ValueEncryptor[] transformers, Cipher cipher) {
this.positions = positions;
this.transformers = transformers;
this.cipher = cipher;
@@ -45,7 +45,7 @@ public class DefaultBindingsTransformer
for (int i = 0; i < len; i++) {
BatchParameterBinding b = bindings[positions[i]];
- Object transformed = transformers[i].transform(cipher, b.getValue());
+ Object transformed = transformers[i].encrypt(cipher, b.getValue());
b.setValue(transformed);
}
}
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultMapTransformer.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultMapTransformer.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultMapTransformer.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultMapTransformer.java Fri Apr 4 12:04:11 2014
@@ -22,7 +22,7 @@ import java.util.Map;
import javax.crypto.Cipher;
-import org.apache.cayenne.crypto.transformer.value.ValueTransformer;
+import org.apache.cayenne.crypto.transformer.value.ValueDecryptor;
/**
* @since 3.2
@@ -30,10 +30,10 @@ import org.apache.cayenne.crypto.transfo
public class DefaultMapTransformer implements MapTransformer {
private String[] mapKeys;
- private ValueTransformer[] transformers;
+ private ValueDecryptor[] transformers;
private Cipher cipher;
- public DefaultMapTransformer(String[] mapKeys, ValueTransformer[] transformers, Cipher cipher) {
+ public DefaultMapTransformer(String[] mapKeys, ValueDecryptor[] transformers, Cipher cipher) {
this.mapKeys = mapKeys;
this.transformers = transformers;
this.cipher = cipher;
@@ -48,7 +48,7 @@ public class DefaultMapTransformer imple
Object value = map.get(mapKeys[i]);
if (value != null) {
- Object transformed = transformers[i].transform(cipher, value);
+ Object transformed = transformers[i].decrypt(cipher, value);
map.put(mapKeys[i], transformed);
}
}
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultTransformerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultTransformerFactory.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultTransformerFactory.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/DefaultTransformerFactory.java Fri Apr 4 12:04:11 2014
@@ -26,7 +26,8 @@ import org.apache.cayenne.access.jdbc.Co
import org.apache.cayenne.access.translator.batch.BatchParameterBinding;
import org.apache.cayenne.crypto.cipher.CipherFactory;
import org.apache.cayenne.crypto.map.ColumnMapper;
-import org.apache.cayenne.crypto.transformer.value.ValueTransformer;
+import org.apache.cayenne.crypto.transformer.value.ValueDecryptor;
+import org.apache.cayenne.crypto.transformer.value.ValueEncryptor;
import org.apache.cayenne.crypto.transformer.value.ValueTransformerFactory;
import org.apache.cayenne.di.Inject;
import org.apache.cayenne.map.DbAttribute;
@@ -73,7 +74,7 @@ public class DefaultTransformerFactory i
int dlen = cryptoColumns.size();
String[] mapKeys = new String[dlen];
- ValueTransformer[] transformers = new ValueTransformer[dlen];
+ ValueDecryptor[] transformers = new ValueDecryptor[dlen];
for (int i = 0; i < dlen; i++) {
@@ -110,7 +111,7 @@ public class DefaultTransformerFactory i
int dlen = cryptoColumns.size();
int[] positions = new int[dlen];
- ValueTransformer[] transformers = new ValueTransformer[dlen];
+ ValueEncryptor[] transformers = new ValueEncryptor[dlen];
for (int i = 0; i < dlen; i++) {
int pos = cryptoColumns.get(i);
Copied: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultDecryptor.java (from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultDecryptor.java?p2=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultDecryptor.java&p1=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java&r1=1584629&r2=1584630&rev=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultDecryptor.java Fri Apr 4 12:04:11 2014
@@ -27,12 +27,12 @@ import org.apache.cayenne.crypto.Cayenne
/**
* @since 3.2
*/
-public class JceValueTransformer implements ValueTransformer {
+class DefaultDecryptor implements ValueDecryptor {
private BytesConverter preConverter;
private BytesConverter postConverter;
- public JceValueTransformer(BytesConverter preConverter, BytesConverter postConverter) {
+ public DefaultDecryptor(BytesConverter preConverter, BytesConverter postConverter) {
this.preConverter = preConverter;
this.postConverter = postConverter;
}
@@ -46,7 +46,7 @@ public class JceValueTransformer impleme
}
@Override
- public Object transform(Cipher cipher, Object value) {
+ public Object decrypt(Cipher cipher, Object value) {
byte[] bytes = preConverter.toBytes(value);
byte[] transformed;
Copied: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptor.java (from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptor.java?p2=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptor.java&p1=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java&r1=1584629&r2=1584630&rev=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformer.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptor.java Fri Apr 4 12:04:11 2014
@@ -27,12 +27,12 @@ import org.apache.cayenne.crypto.Cayenne
/**
* @since 3.2
*/
-public class JceValueTransformer implements ValueTransformer {
+class DefaultEncryptor implements ValueEncryptor {
private BytesConverter preConverter;
private BytesConverter postConverter;
- public JceValueTransformer(BytesConverter preConverter, BytesConverter postConverter) {
+ public DefaultEncryptor(BytesConverter preConverter, BytesConverter postConverter) {
this.preConverter = preConverter;
this.postConverter = postConverter;
}
@@ -46,7 +46,7 @@ public class JceValueTransformer impleme
}
@Override
- public Object transform(Cipher cipher, Object value) {
+ public Object encrypt(Cipher cipher, Object value) {
byte[] bytes = preConverter.toBytes(value);
byte[] transformed;
Copied: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java (from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactory.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java?p2=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java&p1=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactory.java&r1=1584629&r2=1584630&rev=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactory.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactory.java Fri Apr 4 12:04:11 2014
@@ -39,7 +39,7 @@ import org.apache.cayenne.map.ObjEntity;
*
* @since 3.2
*/
-public class JceValueTransformerFactory implements ValueTransformerFactory {
+public class DefaultValueTransformerFactory implements ValueTransformerFactory {
private Map<String, BytesConverter> objectToBytes;
private Map<Integer, BytesConverter> dbToBytes;
@@ -47,12 +47,12 @@ public class JceValueTransformerFactory
private Map<String, BytesConverter> bytesToObject;
private Map<Integer, BytesConverter> bytesToDb;
- private ConcurrentMap<DbAttribute, ValueTransformer> encryptors;
- private ConcurrentMap<DbAttribute, ValueTransformer> decryptors;
+ private ConcurrentMap<DbAttribute, ValueEncryptor> encryptors;
+ private ConcurrentMap<DbAttribute, ValueDecryptor> decryptors;
- public JceValueTransformerFactory() {
- this.encryptors = new ConcurrentHashMap<DbAttribute, ValueTransformer>();
- this.decryptors = new ConcurrentHashMap<DbAttribute, ValueTransformer>();
+ public DefaultValueTransformerFactory() {
+ this.encryptors = new ConcurrentHashMap<DbAttribute, ValueEncryptor>();
+ this.decryptors = new ConcurrentHashMap<DbAttribute, ValueDecryptor>();
this.objectToBytes = createObjectToBytesConverters();
this.dbToBytes = createDbToBytesConverters();
@@ -61,13 +61,13 @@ public class JceValueTransformerFactory
}
@Override
- public ValueTransformer decryptor(DbAttribute a) {
- ValueTransformer e = decryptors.get(a);
+ public ValueDecryptor decryptor(DbAttribute a) {
+ ValueDecryptor e = decryptors.get(a);
if (e == null) {
- ValueTransformer newTransformer = createDecryptor(a);
- ValueTransformer oldTransformer = decryptors.putIfAbsent(a, newTransformer);
+ ValueDecryptor newTransformer = createDecryptor(a);
+ ValueDecryptor oldTransformer = decryptors.putIfAbsent(a, newTransformer);
e = oldTransformer != null ? oldTransformer : newTransformer;
}
@@ -76,13 +76,13 @@ public class JceValueTransformerFactory
}
@Override
- public ValueTransformer encryptor(DbAttribute a) {
- ValueTransformer e = encryptors.get(a);
+ public ValueEncryptor encryptor(DbAttribute a) {
+ ValueEncryptor e = encryptors.get(a);
if (e == null) {
- ValueTransformer newTransformer = createEncryptor(a);
- ValueTransformer oldTransformer = encryptors.putIfAbsent(a, newTransformer);
+ ValueEncryptor newTransformer = createEncryptor(a);
+ ValueEncryptor oldTransformer = encryptors.putIfAbsent(a, newTransformer);
e = oldTransformer != null ? oldTransformer : newTransformer;
}
@@ -141,7 +141,7 @@ public class JceValueTransformerFactory
return map;
}
- protected ValueTransformer createEncryptor(DbAttribute a) {
+ protected ValueEncryptor createEncryptor(DbAttribute a) {
String type = getJavaType(a);
@@ -157,10 +157,10 @@ public class JceValueTransformerFactory
+ " for attribute " + a + " has no bytes-to-db conversion");
}
- return new JceValueTransformer(toBytes, fromBytes);
+ return new DefaultEncryptor(toBytes, fromBytes);
}
- protected ValueTransformer createDecryptor(DbAttribute a) {
+ protected ValueDecryptor createDecryptor(DbAttribute a) {
BytesConverter toBytes = dbToBytes.get(a.getType());
if (toBytes == null) {
@@ -175,7 +175,7 @@ public class JceValueTransformerFactory
+ " has no bytes-to-object conversion");
}
- return new JceValueTransformer(toBytes, fromBytes);
+ return new DefaultDecryptor(toBytes, fromBytes);
}
// TODO: calculating Java type of ObjAttribute may become unneeded per
Copied: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueDecryptor.java (from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueDecryptor.java?p2=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueDecryptor.java&p1=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java&r1=1584629&r2=1584630&rev=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueDecryptor.java Fri Apr 4 12:04:11 2014
@@ -21,16 +21,13 @@ package org.apache.cayenne.crypto.transf
import javax.crypto.Cipher;
/**
- * An encryptor or decryptor of a single value.
- *
* @since 3.2
*/
-public interface ValueTransformer {
-
+public interface ValueDecryptor {
/**
* Transforms a value using the provided Cipher. Cipher is assumed to be
* fully initialized for the right operation (encryption or decryption) and
* its state reset from any previous operations.
*/
- Object transform(Cipher cipher, Object value);
+ Object decrypt(Cipher cipher, Object value);
}
Copied: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueEncryptor.java (from r1584629, cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueEncryptor.java?p2=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueEncryptor.java&p1=cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java&r1=1584629&r2=1584630&rev=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformer.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueEncryptor.java Fri Apr 4 12:04:11 2014
@@ -25,12 +25,12 @@ import javax.crypto.Cipher;
*
* @since 3.2
*/
-public interface ValueTransformer {
+public interface ValueEncryptor {
/**
* Transforms a value using the provided Cipher. Cipher is assumed to be
* fully initialized for the right operation (encryption or decryption) and
* its state reset from any previous operations.
*/
- Object transform(Cipher cipher, Object value);
+ Object encrypt(Cipher cipher, Object value);
}
Modified: cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformerFactory.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformerFactory.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/main/java/org/apache/cayenne/crypto/transformer/value/ValueTransformerFactory.java Fri Apr 4 12:04:11 2014
@@ -28,7 +28,7 @@ import org.apache.cayenne.map.DbAttribut
*/
public interface ValueTransformerFactory {
- ValueTransformer encryptor(DbAttribute a);
+ ValueEncryptor encryptor(DbAttribute a);
- ValueTransformer decryptor(DbAttribute a);
+ ValueDecryptor decryptor(DbAttribute a);
}
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/CryptoModuleBuilderTest.java Fri Apr 4 12:04:11 2014
@@ -25,7 +25,7 @@ import java.security.Key;
import org.apache.cayenne.crypto.key.KeySource;
import org.apache.cayenne.crypto.key.JceksKeySourceTest;
-import org.apache.cayenne.crypto.transformer.value.JceValueTransformerFactory;
+import org.apache.cayenne.crypto.transformer.value.DefaultValueTransformerFactory;
import org.apache.cayenne.di.DIBootstrap;
import org.apache.cayenne.di.Injector;
import org.apache.cayenne.di.Module;
@@ -37,7 +37,7 @@ public class CryptoModuleBuilderTest {
public void testBuild_KeySource() {
Module m = new CryptoModuleBuilder().keyPassword(JceksKeySourceTest.TEST_KEY_PASS)
.keyStore(JceksKeySourceTest.class.getResource(JceksKeySourceTest.KS1_JCEKS))
- .valueTransformer(JceValueTransformerFactory.class).build();
+ .valueTransformer(DefaultValueTransformerFactory.class).build();
Injector injector = DIBootstrap.createInjector(m);
Copied: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptorTest.java (from r1584629, cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerTest.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptorTest.java?p2=cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptorTest.java&p1=cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerTest.java&r1=1584629&r2=1584630&rev=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultEncryptorTest.java Fri Apr 4 12:04:11 2014
@@ -38,7 +38,7 @@ import javax.xml.bind.DatatypeConverter;
import org.junit.Before;
import org.junit.Test;
-public class JceValueTransformerTest {
+public class DefaultEncryptorTest {
private Cipher encCipher;
private Cipher decCipher;
@@ -62,18 +62,18 @@ public class JceValueTransformerTest {
@Test
public void testTransform_BytesToBytes() throws IllegalBlockSizeException, BadPaddingException {
- JceValueTransformer e = new JceValueTransformer(BytesToBytesConverter.INSTANCE, BytesToBytesConverter.INSTANCE);
+ DefaultEncryptor e = new DefaultEncryptor(BytesToBytesConverter.INSTANCE, BytesToBytesConverter.INSTANCE);
byte[] b1 = new byte[] { 1, 2 };
byte[] b2 = new byte[] { 2, 3 };
- byte[] b1_t = (byte[]) e.transform(encCipher, b1);
+ byte[] b1_t = (byte[]) e.encrypt(encCipher, b1);
assertNotNull(b1_t);
assertEquals(encCipher.getBlockSize(), b1_t.length);
assertArrayEquals(b1, decCipher.doFinal(b1_t));
- byte[] b2_t = (byte[]) e.transform(encCipher, b2);
+ byte[] b2_t = (byte[]) e.encrypt(encCipher, b2);
assertNotNull(b2_t);
assertEquals(encCipher.getBlockSize(), b2_t.length);
@@ -83,7 +83,7 @@ public class JceValueTransformerTest {
@Test
public void testTransform_BytesToBytes_DifferentSizes() {
- JceValueTransformer e = new JceValueTransformer(BytesToBytesConverter.INSTANCE, BytesToBytesConverter.INSTANCE);
+ DefaultEncryptor e = new DefaultEncryptor(BytesToBytesConverter.INSTANCE, BytesToBytesConverter.INSTANCE);
int blockSize = encCipher.getBlockSize();
@@ -101,19 +101,19 @@ public class JceValueTransformerTest {
b5[i] = (byte) i;
}
- byte[] b1_t = (byte[]) e.transform(encCipher, b1);
+ byte[] b1_t = (byte[]) e.encrypt(encCipher, b1);
assertEquals(encCipher.getBlockSize(), b1_t.length);
- byte[] b2_t = (byte[]) e.transform(encCipher, b2);
+ byte[] b2_t = (byte[]) e.encrypt(encCipher, b2);
assertEquals(encCipher.getBlockSize(), b2_t.length);
- byte[] b3_t = (byte[]) e.transform(encCipher, b3);
+ byte[] b3_t = (byte[]) e.encrypt(encCipher, b3);
assertEquals(encCipher.getBlockSize(), b3_t.length);
- byte[] b4_t = (byte[]) e.transform(encCipher, b4);
+ byte[] b4_t = (byte[]) e.encrypt(encCipher, b4);
assertEquals(encCipher.getBlockSize() * 2, b4_t.length);
- byte[] b5_t = (byte[]) e.transform(encCipher, b5);
+ byte[] b5_t = (byte[]) e.encrypt(encCipher, b5);
assertEquals(encCipher.getBlockSize() * 2, b5_t.length);
}
@@ -121,18 +121,18 @@ public class JceValueTransformerTest {
public void testTransform_StringToBytes() throws UnsupportedEncodingException, IllegalBlockSizeException,
BadPaddingException {
- JceValueTransformer e = new JceValueTransformer(Utf8StringConverter.INSTANCE, BytesToBytesConverter.INSTANCE);
+ DefaultEncryptor e = new DefaultEncryptor(Utf8StringConverter.INSTANCE, BytesToBytesConverter.INSTANCE);
String s1 = "ab";
String s2 = "cd";
- byte[] b1_t = (byte[]) e.transform(encCipher, s1);
+ byte[] b1_t = (byte[]) e.encrypt(encCipher, s1);
assertNotNull(b1_t);
assertEquals(encCipher.getBlockSize(), b1_t.length);
assertEquals(s1, new String(decCipher.doFinal(b1_t), Utf8StringConverter.DEFAULT_CHARSET));
- byte[] b2_t = (byte[]) e.transform(encCipher, s2);
+ byte[] b2_t = (byte[]) e.encrypt(encCipher, s2);
assertNotNull(b2_t);
assertEquals(encCipher.getBlockSize(), b2_t.length);
@@ -143,7 +143,7 @@ public class JceValueTransformerTest {
public void testTransform_StringToString() throws UnsupportedEncodingException, IllegalBlockSizeException,
BadPaddingException {
- JceValueTransformer e = new JceValueTransformer(Utf8StringConverter.INSTANCE, Base64StringConverter.INSTANCE);
+ DefaultEncryptor e = new DefaultEncryptor(Utf8StringConverter.INSTANCE, Base64StringConverter.INSTANCE);
String s1 = "ab";
@@ -154,7 +154,7 @@ public class JceValueTransformerTest {
+ "Donec convallis mi vitae luctus rutrum. Sed ut imperdiet ante. Praesent condimentum velit eget "
+ "felis pretium blandit. Praesent lacus tortor, facilisis eget sapien quis, hendrerit iaculis tellus.";
- String s1_t = (String) e.transform(encCipher, s1);
+ String s1_t = (String) e.encrypt(encCipher, s1);
assertNotNull(s1_t);
assertNotEquals(s1_t, s1);
@@ -162,7 +162,7 @@ public class JceValueTransformerTest {
byte[] b1_t = DatatypeConverter.parseBase64Binary(s1_t);
assertEquals(s1, new String(decCipher.doFinal(b1_t), Utf8StringConverter.DEFAULT_CHARSET));
- String s2_t = (String) e.transform(encCipher, s2);
+ String s2_t = (String) e.encrypt(encCipher, s2);
assertNotNull(s2_t);
assertNotEquals(s2_t, s2);
Copied: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactoryTest.java (from r1584629, cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactoryTest.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactoryTest.java?p2=cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactoryTest.java&p1=cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactoryTest.java&r1=1584629&r2=1584630&rev=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/JceValueTransformerFactoryTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/transformer/value/DefaultValueTransformerFactoryTest.java Fri Apr 4 12:04:11 2014
@@ -33,7 +33,7 @@ import org.apache.cayenne.map.DbEntity;
import org.junit.Before;
import org.junit.Test;
-public class JceValueTransformerFactoryTest {
+public class DefaultValueTransformerFactoryTest {
private DbEntity t1;
private DbEntity t2;
@@ -50,7 +50,7 @@ public class JceValueTransformerFactoryT
@Test
public void testGetJavaType() {
- JceValueTransformerFactory f = new JceValueTransformerFactory();
+ DefaultValueTransformerFactory f = new DefaultValueTransformerFactory();
DbAttribute t1_ct = t1.getAttribute("CRYPTO_STRING");
assertEquals("java.lang.String", f.getJavaType(t1_ct));
@@ -78,68 +78,68 @@ public class JceValueTransformerFactoryT
@Test
public void testCreateEncryptor() {
- JceValueTransformerFactory f = new JceValueTransformerFactory();
+ DefaultValueTransformerFactory f = new DefaultValueTransformerFactory();
DbAttribute t1_ct = t1.getAttribute("CRYPTO_STRING");
- ValueTransformer t1 = f.createEncryptor(t1_ct);
+ ValueEncryptor t1 = f.createEncryptor(t1_ct);
assertNotNull(t1);
- assertTrue(t1 instanceof JceValueTransformer);
- assertSame(Utf8StringConverter.INSTANCE, ((JceValueTransformer) t1).getPreConverter());
- assertSame(Base64StringConverter.INSTANCE, ((JceValueTransformer) t1).getPostConverter());
+ assertTrue(t1 instanceof DefaultEncryptor);
+ assertSame(Utf8StringConverter.INSTANCE, ((DefaultEncryptor) t1).getPreConverter());
+ assertSame(Base64StringConverter.INSTANCE, ((DefaultEncryptor) t1).getPostConverter());
DbAttribute t2_cb = t2.getAttribute("CRYPTO_BYTES");
- ValueTransformer t2 = f.createEncryptor(t2_cb);
+ ValueEncryptor t2 = f.createEncryptor(t2_cb);
assertNotNull(t2);
- assertTrue(t2 instanceof JceValueTransformer);
- assertSame(BytesToBytesConverter.INSTANCE, ((JceValueTransformer) t2).getPreConverter());
- assertSame(BytesToBytesConverter.INSTANCE, ((JceValueTransformer) t2).getPostConverter());
+ assertTrue(t2 instanceof DefaultEncryptor);
+ assertSame(BytesToBytesConverter.INSTANCE, ((DefaultEncryptor) t2).getPreConverter());
+ assertSame(BytesToBytesConverter.INSTANCE, ((DefaultEncryptor) t2).getPostConverter());
}
@Test
public void testCreateDecryptor() {
- JceValueTransformerFactory f = new JceValueTransformerFactory();
+ DefaultValueTransformerFactory f = new DefaultValueTransformerFactory();
DbAttribute t1_ct = t1.getAttribute("CRYPTO_STRING");
- ValueTransformer t1 = f.createDecryptor(t1_ct);
+ ValueDecryptor t1 = f.createDecryptor(t1_ct);
assertNotNull(t1);
- assertTrue(t1 instanceof JceValueTransformer);
- assertSame(Base64StringConverter.INSTANCE, ((JceValueTransformer) t1).getPreConverter());
- assertSame(Utf8StringConverter.INSTANCE, ((JceValueTransformer) t1).getPostConverter());
+ assertTrue(t1 instanceof DefaultDecryptor);
+ assertSame(Base64StringConverter.INSTANCE, ((DefaultDecryptor) t1).getPreConverter());
+ assertSame(Utf8StringConverter.INSTANCE, ((DefaultDecryptor) t1).getPostConverter());
DbAttribute t2_cb = t2.getAttribute("CRYPTO_BYTES");
- ValueTransformer t2 = f.createDecryptor(t2_cb);
+ ValueDecryptor t2 = f.createDecryptor(t2_cb);
assertNotNull(t2);
- assertTrue(t2 instanceof JceValueTransformer);
- assertSame(BytesToBytesConverter.INSTANCE, ((JceValueTransformer) t2).getPreConverter());
- assertSame(BytesToBytesConverter.INSTANCE, ((JceValueTransformer) t2).getPostConverter());
+ assertTrue(t2 instanceof DefaultDecryptor);
+ assertSame(BytesToBytesConverter.INSTANCE, ((DefaultDecryptor) t2).getPreConverter());
+ assertSame(BytesToBytesConverter.INSTANCE, ((DefaultDecryptor) t2).getPostConverter());
DbAttribute t3_cb = t3.getAttribute("CRYPTO_BYTES");
- ValueTransformer t3 = f.createDecryptor(t3_cb);
+ ValueDecryptor t3 = f.createDecryptor(t3_cb);
assertNotNull(t3);
- assertTrue(t3 instanceof JceValueTransformer);
- assertSame(BytesToBytesConverter.INSTANCE, ((JceValueTransformer) t3).getPreConverter());
- assertSame(Utf8StringConverter.INSTANCE, ((JceValueTransformer) t3).getPostConverter());
+ assertTrue(t3 instanceof DefaultDecryptor);
+ assertSame(BytesToBytesConverter.INSTANCE, ((DefaultDecryptor) t3).getPreConverter());
+ assertSame(Utf8StringConverter.INSTANCE, ((DefaultDecryptor) t3).getPostConverter());
}
@Test
public void testEncryptor() {
- JceValueTransformerFactory f = new JceValueTransformerFactory();
+ DefaultValueTransformerFactory f = new DefaultValueTransformerFactory();
DbAttribute t1_ct = t1.getAttribute("CRYPTO_STRING");
- ValueTransformer t1 = f.encryptor(t1_ct);
+ ValueEncryptor t1 = f.encryptor(t1_ct);
assertNotNull(t1);
assertSame(t1, f.encryptor(t1_ct));
assertSame(t1, f.encryptor(t1_ct));
DbAttribute t2_cb = t2.getAttribute("CRYPTO_BYTES");
- ValueTransformer t2 = f.encryptor(t2_cb);
+ ValueEncryptor t2 = f.encryptor(t2_cb);
assertNotNull(t2);
assertSame(t2, f.encryptor(t2_cb));
assertSame(t2, f.encryptor(t2_cb));
@@ -147,18 +147,18 @@ public class JceValueTransformerFactoryT
@Test
public void testDecryptor() {
- JceValueTransformerFactory f = new JceValueTransformerFactory();
+ DefaultValueTransformerFactory f = new DefaultValueTransformerFactory();
DbAttribute t1_ct = t1.getAttribute("CRYPTO_STRING");
- ValueTransformer t1 = f.decryptor(t1_ct);
+ ValueDecryptor t1 = f.decryptor(t1_ct);
assertNotNull(t1);
assertSame(t1, f.decryptor(t1_ct));
assertSame(t1, f.decryptor(t1_ct));
DbAttribute t2_cb = t2.getAttribute("CRYPTO_BYTES");
- ValueTransformer t2 = f.decryptor(t2_cb);
+ ValueDecryptor t2 = f.decryptor(t2_cb);
assertNotNull(t2);
assertSame(t2, f.decryptor(t2_cb));
assertSame(t2, f.decryptor(t2_cb));
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactory.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactory.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactory.java Fri Apr 4 12:04:11 2014
@@ -22,13 +22,15 @@ import java.io.UnsupportedEncodingExcept
import javax.crypto.Cipher;
-import org.apache.cayenne.crypto.transformer.value.ValueTransformer;
+import org.apache.cayenne.crypto.transformer.value.ValueDecryptor;
+import org.apache.cayenne.crypto.transformer.value.ValueEncryptor;
import org.apache.cayenne.crypto.transformer.value.ValueTransformerFactory;
import org.apache.cayenne.map.DbAttribute;
public class Rot13TransformerFactory implements ValueTransformerFactory {
- private ValueTransformer stringTransformer;
+ private ValueEncryptor stringEncryptor;
+ private ValueDecryptor stringDecryptor;
public static String rotate(String value) {
if (value == null) {
@@ -65,10 +67,18 @@ public class Rot13TransformerFactory imp
}
public Rot13TransformerFactory() {
- this.stringTransformer = new ValueTransformer() {
+ this.stringEncryptor = new ValueEncryptor() {
@Override
- public Object transform(Cipher cipher, Object value) {
+ public Object encrypt(Cipher cipher, Object value) {
+ return value != null ? rotate(value.toString()) : null;
+ }
+ };
+
+ this.stringDecryptor = new ValueDecryptor() {
+
+ @Override
+ public Object decrypt(Cipher cipher, Object value) {
return value != null ? rotate(value.toString()) : null;
}
};
@@ -76,12 +86,12 @@ public class Rot13TransformerFactory imp
}
@Override
- public ValueTransformer decryptor(DbAttribute a) {
- return stringTransformer;
+ public ValueDecryptor decryptor(DbAttribute a) {
+ return stringDecryptor;
}
@Override
- public ValueTransformer encryptor(DbAttribute a) {
- return stringTransformer;
+ public ValueEncryptor encryptor(DbAttribute a) {
+ return stringEncryptor;
}
}
Modified: cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactoryTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactoryTest.java?rev=1584630&r1=1584629&r2=1584630&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactoryTest.java (original)
+++ cayenne/main/trunk/cayenne-crypto/src/test/java/org/apache/cayenne/crypto/unit/Rot13TransformerFactoryTest.java Fri Apr 4 12:04:11 2014
@@ -29,14 +29,14 @@ public class Rot13TransformerFactoryTest
public void testEncrypt() {
Rot13TransformerFactory factory = new Rot13TransformerFactory();
- assertEquals("nop", factory.encryptor(new DbAttribute()).transform(null, "abc"));
+ assertEquals("nop", factory.encryptor(new DbAttribute()).encrypt(null, "abc"));
}
@Test
public void testDecrypt() {
Rot13TransformerFactory factory = new Rot13TransformerFactory();
- assertEquals("nop", factory.decryptor(new DbAttribute()).transform(null, "abc"));
+ assertEquals("nop", factory.decryptor(new DbAttribute()).decrypt(null, "abc"));
}
}