package io.ebeaninternal.server.type;
import io.ebean.config.EncryptKey;
import io.ebean.config.EncryptKeyManager;
import io.ebean.config.Encryptor;
public class DataEncryptSupport {
private final EncryptKeyManager encryptKeyManager;
private final Encryptor encryptor;
private final String table;
private final String column;
public DataEncryptSupport(EncryptKeyManager encryptKeyManager, Encryptor encryptor, String table, String column) {
this.encryptKeyManager = encryptKeyManager;
this.encryptor = encryptor;
this.table = table;
this.column = column;
}
public byte[] encrypt(byte[] data) {
EncryptKey key = encryptKeyManager.getEncryptKey(table, column);
return encryptor.encrypt(data, key);
}
public byte[] decrypt(byte[] data) {
EncryptKey key = encryptKeyManager.getEncryptKey(table, column);
return encryptor.decrypt(data, key);
}
public String decryptObject(byte[] data) {
EncryptKey key = encryptKeyManager.getEncryptKey(table, column);
return encryptor.decryptString(data, key);
}
public byte[] encryptObject(String formattedValue) {
EncryptKey key = encryptKeyManager.getEncryptKey(table, column);
return encryptor.encryptString(formattedValue, key);
}
}