mirror of
https://github.com/postgres/postgres.git
synced 2025-08-14 02:22:38 +03:00
config
contrib
adminpack
amcheck
auth_delay
auto_explain
basebackup_to_shell
basic_archive
bloom
bool_plperl
btree_gin
btree_gist
citext
cube
dblink
dict_int
dict_xsyn
earthdistance
file_fdw
fuzzystrmatch
hstore
hstore_plperl
hstore_plpython
intagg
intarray
isn
jsonb_plperl
jsonb_plpython
lo
ltree
ltree_plpython
oid2name
old_snapshot
pageinspect
passwordcheck
pg_buffercache
pg_freespacemap
pg_prewarm
pg_stat_statements
pg_surgery
pg_trgm
pg_visibility
pg_walinspect
pgcrypto
expected
sql
3des.sql
blowfish.sql
cast5.sql
crypt-blowfish.sql
crypt-des.sql
crypt-md5.sql
crypt-xdes.sql
des.sql
hmac-md5.sql
hmac-sha1.sql
init.sql
md5.sql
pgp-armor.sql
pgp-compression.sql
pgp-decrypt.sql
pgp-encrypt.sql
pgp-info.sql
pgp-pubkey-decrypt.sql
pgp-pubkey-encrypt.sql
pgp-zlib-DISABLED.sql
rijndael.sql
sha1.sql
sha2.sql
.gitignore
Makefile
crypt-blowfish.c
crypt-des.c
crypt-gensalt.c
crypt-md5.c
mbuf.c
mbuf.h
meson.build
openssl.c
pgcrypto--1.0--1.1.sql
pgcrypto--1.1--1.2.sql
pgcrypto--1.2--1.3.sql
pgcrypto--1.3.sql
pgcrypto.c
pgcrypto.control
pgcrypto.h
pgp-armor.c
pgp-cfb.c
pgp-compress.c
pgp-decrypt.c
pgp-encrypt.c
pgp-info.c
pgp-mpi-openssl.c
pgp-mpi.c
pgp-pgsql.c
pgp-pubdec.c
pgp-pubenc.c
pgp-pubkey.c
pgp-s2k.c
pgp.c
pgp.h
px-crypt.c
px-crypt.h
px-hmac.c
px.c
px.h
pgrowlocks
pgstattuple
postgres_fdw
seg
sepgsql
spi
sslinfo
start-scripts
tablefunc
tcn
test_decoding
tsm_system_rows
tsm_system_time
unaccent
uuid-ossp
vacuumlo
xml2
Makefile
README
contrib-global.mk
meson.build
doc
src
.cirrus.yml
.dir-locals.el
.editorconfig
.git-blame-ignore-revs
.gitattributes
.gitignore
COPYRIGHT
GNUmakefile.in
HISTORY
Makefile
README
README.git
aclocal.m4
configure
configure.ac
meson.build
meson_options.txt
This was from before the hex format was available in bytea. Now we can remove the extra explicit encoding/decoding calls and rely on the default output format. Discussion: https://www.postgresql.org/message-id/flat/17dcb4f7-7ac1-e2b6-d5f7-2dfba06cd9ee%40enterprisedb.com
105 lines
3.1 KiB
SQL
105 lines
3.1 KiB
SQL
--
|
|
-- PGP encrypt
|
|
--
|
|
|
|
select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'), 'key');
|
|
|
|
-- check whether the defaults are ok
|
|
select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'),
|
|
'key', 'expect-cipher-algo=aes128,
|
|
expect-disable-mdc=0,
|
|
expect-sess-key=0,
|
|
expect-s2k-mode=3,
|
|
expect-s2k-digest-algo=sha1,
|
|
expect-compress-algo=0
|
|
');
|
|
|
|
-- maybe the expect- stuff simply does not work
|
|
select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'),
|
|
'key', 'expect-cipher-algo=bf,
|
|
expect-disable-mdc=1,
|
|
expect-sess-key=1,
|
|
expect-s2k-mode=0,
|
|
expect-s2k-digest-algo=md5,
|
|
expect-compress-algo=1
|
|
');
|
|
|
|
-- bytea as text
|
|
select pgp_sym_decrypt(pgp_sym_encrypt_bytea('Binary', 'baz'), 'baz');
|
|
|
|
-- text as bytea
|
|
select encode(pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'), 'escape');
|
|
|
|
|
|
-- algorithm change
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=bf'),
|
|
'key', 'expect-cipher-algo=bf');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=aes'),
|
|
'key', 'expect-cipher-algo=aes128');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=aes192'),
|
|
'key', 'expect-cipher-algo=aes192');
|
|
|
|
-- s2k change
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 's2k-mode=0'),
|
|
'key', 'expect-s2k-mode=0');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 's2k-mode=1'),
|
|
'key', 'expect-s2k-mode=1');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 's2k-mode=3'),
|
|
'key', 'expect-s2k-mode=3');
|
|
|
|
-- s2k count change
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 's2k-count=1024'),
|
|
'key', 'expect-s2k-count=1024');
|
|
-- s2k_count rounds up
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 's2k-count=65000000'),
|
|
'key', 'expect-s2k-count=65000000');
|
|
|
|
-- s2k digest change
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 's2k-digest-algo=md5'),
|
|
'key', 'expect-s2k-digest-algo=md5');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 's2k-digest-algo=sha1'),
|
|
'key', 'expect-s2k-digest-algo=sha1');
|
|
|
|
-- sess key
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=0'),
|
|
'key', 'expect-sess-key=0');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1'),
|
|
'key', 'expect-sess-key=1');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=bf'),
|
|
'key', 'expect-sess-key=1, expect-cipher-algo=bf');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=aes192'),
|
|
'key', 'expect-sess-key=1, expect-cipher-algo=aes192');
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=aes256'),
|
|
'key', 'expect-sess-key=1, expect-cipher-algo=aes256');
|
|
|
|
-- no mdc
|
|
select pgp_sym_decrypt(
|
|
pgp_sym_encrypt('Secret.', 'key', 'disable-mdc=1'),
|
|
'key', 'expect-disable-mdc=1');
|
|
|
|
-- crlf
|
|
select pgp_sym_decrypt_bytea(
|
|
pgp_sym_encrypt(E'1\n2\n3\r\n', 'key', 'convert-crlf=1'),
|
|
'key');
|
|
|
|
-- conversion should be lossless
|
|
select digest(pgp_sym_decrypt(
|
|
pgp_sym_encrypt(E'\r\n0\n1\r\r\n\n2\r', 'key', 'convert-crlf=1'),
|
|
'key', 'convert-crlf=1'), 'sha1') as result,
|
|
digest(E'\r\n0\n1\r\r\n\n2\r', 'sha1') as expect;
|