Подскажите пример как вставить новую запись в зашифрованном виде в таблицу?
Создал функцию для шифрования и расшифрования:
-- Создание функции для шифрования
CREATE OR REPLACE FUNCTION asymmetric_encrypt(data text, public_key text)
RETURNS text AS $$
BEGIN
RETURN encode(pgp_pub_encrypt_bytea(data::bytea, public_key::bytea, 'compress-algo=1, cipher-algo=aes256'), 'escape');
END;
$$ LANGUAGE plpgsql;
-- Создание функции для расшифровки
CREATE OR REPLACE FUNCTION asymmetric_decrypt(encrypted_data text, private_key text)
RETURNS text AS $$
BEGIN
RETURN pgp_pub_decrypt_bytea(decode(encrypted_data, 'escape')::bytea, private_key::bytea)::text;
END;
$$ LANGUAGE plpgsql;
Использую:
insert into odo.test1
(tex1)
values
(asymmetric_encrypt('text_text__text', '
OyhldCT7TSAA2CY+SZCYVP6oEa9unnjeHryZ43zvCGJ9PL6g2gDVE771cbKDPjs/
5fDMOLTurgefxwvB5CABjnR8ecBhuaghxYNG+f5o7cJVHCL57sFvFxc8H/UUUzH4
RuoLoW1iwwYVVu4KuQENBGVOBU8BCAC78pi2nAeRAAIWxmhcGZGQi2nUau4uJUuN
a3xbs+bDwxILTwsg+Sek9Zb4/+UOGabs2X9JWCE5gk5Q1kBFXgKuYJ7B2+sMJE5j
Yt0sskpXMVX6HqOAVneMPTURdmO8FKpIaxoYjGTCKedmEgneiz9mRG/WAEx98vfB
KeVI6NWM5C82XGz+TNiXhY77MrnP6a4tATia58UyUBv3eZi9nbyKqn+MEElcn63t
7lSvKyr5+dLkTnY1b8tPAL/7LgETAzk4F+nuDUlUSxzu6nsHizQ5S/8YOn7sWc0Q
yNKfVO7NhJm55g0EMIOYg2GsIDuDEBG1+uLoJCcPwHM7YNK3AxzDABEBAAGJAR8E
'))
Но выводит ошибку:
ERROR: функция pgp_pub_encrypt_bytea(bytea, bytea, unknown) не существует
LINE 1: SELECT encode(pgp_pub_encrypt_bytea(data::bytea, public_key:...
^
HINT: Функция с данными именем и типами аргументов не найдена. Возможно, вам следует добавить явные приведения типов.
QUERY: SELECT encode(pgp_pub_encrypt_bytea(data::bytea, public_key::bytea, 'compress-algo=1, cipher-algo=aes256'), 'escape')
CONTEXT: функция PL/pgSQL asymmetric_encrypt(text,text), строка 3, оператор RETURN
ОШИБКА: функция pgp_pub_encrypt_bytea(bytea, bytea, unknown) не существует
SQL state: 42883
Подкиньте примеры пожалуйста