camper/deploy/redsys_encrypt.sql

30 lines
838 B
PL/PgSQL

-- Deploy camper:redsys_encrypt to pg
-- requires: roles
-- requires: schema_camper
-- requires: zero_pad
-- requires: redsys
-- requires: extension_pgcrypto
begin;
set search_path to camper, public;
create or replace function redsys_encrypt(company_id integer, data bytea) returns bytea as
$$
select public.encrypt_iv(zero_pad(data, 8), encrypt_key, '\x0000000000000000'::bytea, '3des-cbc/pad:none')
from redsys
where redsys.company_id = redsys_encrypt.company_id;
$$
language sql
stable
security definer
set search_path = camper, pg_temp;
;
revoke execute on function redsys_encrypt(integer, bytea) from public;
grant execute on function redsys_encrypt(integer, bytea) to guest;
grant execute on function redsys_encrypt(integer, bytea) to employee;
grant execute on function redsys_encrypt(integer, bytea) to admin;
commit;