mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
1abf76e82c
Few cleanups and couple of new things: - add SHA2 algorithm to older OpenSSL - add BIGNUM math to have public-key cryptography work on non-OpenSSL build. - gen_random_bytes() function The status of SHA2 algoritms and public-key encryption can now be changed to 'always available.' That makes pgcrypto functionally complete and unless there will be new editions of AES, SHA2 or OpenPGP standards, there is no major changes planned.
217 lines
5.3 KiB
MySQL
217 lines
5.3 KiB
MySQL
-- Adjust this setting to control where the objects get created.
|
|
SET search_path = public;
|
|
|
|
CREATE OR REPLACE FUNCTION digest(text, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_digest'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION digest(bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_digest'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION digest_exists(text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME', 'pg_digest_exists'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION hmac(text, text, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_hmac'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION hmac(bytea, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_hmac'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION hmac_exists(text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME', 'pg_hmac_exists'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION crypt(text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pg_crypt'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION gen_salt(text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pg_gen_salt'
|
|
LANGUAGE C VOLATILE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION gen_salt(text, int4)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pg_gen_salt_rounds'
|
|
LANGUAGE C VOLATILE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION encrypt(bytea, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_encrypt'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION decrypt(bytea, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_decrypt'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_encrypt_iv'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_decrypt_iv'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION cipher_exists(text)
|
|
RETURNS bool
|
|
AS 'MODULE_PATHNAME', 'pg_cipher_exists'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION gen_random_bytes(int4)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_random_bytes'
|
|
LANGUAGE 'C' VOLATILE STRICT;
|
|
|
|
--
|
|
-- pgp_sym_encrypt(data, key)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_sym_encrypt(text, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_sym_encrypt_bytea(bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- pgp_sym_encrypt(data, key, args)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_sym_encrypt(text, text, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_text'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_sym_encrypt_bytea(bytea, text, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_encrypt_bytea'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- pgp_sym_decrypt(data, key)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_sym_decrypt(bytea, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_sym_decrypt_bytea(bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
--
|
|
-- pgp_sym_decrypt(data, key, args)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_sym_decrypt(bytea, text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_text'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_sym_decrypt_bytea(bytea, text, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_sym_decrypt_bytea'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
--
|
|
-- pgp_pub_encrypt(data, key)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_pub_encrypt(text, bytea)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- pgp_pub_encrypt(data, key, args)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_pub_encrypt(text, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_text'
|
|
LANGUAGE C STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_encrypt_bytea'
|
|
LANGUAGE C STRICT;
|
|
|
|
--
|
|
-- pgp_pub_decrypt(data, key)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_pub_decrypt(bytea, bytea)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
--
|
|
-- pgp_pub_decrypt(data, key, psw)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_pub_decrypt(bytea, bytea, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
--
|
|
-- pgp_pub_decrypt(data, key, psw, arg)
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_pub_decrypt(bytea, bytea, text, text)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_text'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pgp_pub_decrypt_bytea'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
--
|
|
-- PGP key ID
|
|
--
|
|
CREATE OR REPLACE FUNCTION pgp_key_id(bytea)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pgp_key_id_w'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
--
|
|
-- pgp armor
|
|
--
|
|
CREATE OR REPLACE FUNCTION armor(bytea)
|
|
RETURNS text
|
|
AS 'MODULE_PATHNAME', 'pg_armor'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|
|
CREATE OR REPLACE FUNCTION dearmor(text)
|
|
RETURNS bytea
|
|
AS 'MODULE_PATHNAME', 'pg_dearmor'
|
|
LANGUAGE C IMMUTABLE STRICT;
|
|
|