Você precisa usar
pgp_sym_encrypt
para escrever e pgp_sym_decrypt
para ler. Você fez o contrário. @ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Como codificar a chave de criptografia no mapeamento não parece uma boa ideia, usaremos o suporte do PostgreSQL para configurações definidas pelo usuário.
Portanto, o
encrypt.key
é armazenado no postgresql.conf
arquivo de configuração:encrypt.key = 'Wow! So much security.'
O exemplo está no GitHub e funciona como um encanto.