package com.avaje.ebean.config.dbplatform; /** * Postgres pgp_sym_encrypt pgp_sym_decrypt based encryption support. * * @author rbygrave */ public class PostgresDbEncrypt extends AbstractDbEncrypt { public PostgresDbEncrypt() { this.varcharEncryptFunction = new PgVarcharFunction(); this.dateEncryptFunction = new PgDateFunction(); } private static class PgVarcharFunction implements DbEncryptFunction { public String getDecryptSql(String columnWithTableAlias) { return "pgp_sym_decrypt(" + columnWithTableAlias + ",?)"; } public String getEncryptBindSql() { return "pgp_sym_encrypt(?,?)"; } } private static class PgDateFunction implements DbEncryptFunction { public String getDecryptSql(String columnWithTableAlias) { return "to_date(pgp_sym_decrypt(" + columnWithTableAlias + ",?),'YYYYMMDD')"; } public String getEncryptBindSql() { return "pgp_sym_encrypt(to_char(?::date,'YYYYMMDD'),?)"; } } }