209 lines
4.9 KiB
Plaintext
209 lines
4.9 KiB
Plaintext
|
--
|
||
|
-- PGP encrypt
|
||
|
--
|
||
|
select pgp_sym_decrypt(pgp_sym_encrypt('Secret.', 'key'), 'key');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- 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
|
||
|
');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- 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
|
||
|
');
|
||
|
NOTICE: pgp_decrypt: unexpected cipher_algo: expected 4 got 7
|
||
|
NOTICE: pgp_decrypt: unexpected s2k_mode: expected 0 got 3
|
||
|
NOTICE: pgp_decrypt: unexpected s2k_digest_algo: expected 1 got 2
|
||
|
NOTICE: pgp_decrypt: unexpected use_sess_key: expected 1 got 0
|
||
|
NOTICE: pgp_decrypt: unexpected disable_mdc: expected 1 got 0
|
||
|
NOTICE: pgp_decrypt: unexpected compress_algo: expected 1 got 0
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- bytea as text
|
||
|
select pgp_sym_decrypt(pgp_sym_encrypt_bytea('Binary', 'baz'), 'baz');
|
||
|
ERROR: Not text data
|
||
|
-- text as bytea
|
||
|
select encode(pgp_sym_decrypt_bytea(pgp_sym_encrypt('Text', 'baz'), 'baz'), 'escape');
|
||
|
encode
|
||
|
--------
|
||
|
Text
|
||
|
(1 row)
|
||
|
|
||
|
-- algorithm change
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=bf'),
|
||
|
'key', 'expect-cipher-algo=bf');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=aes'),
|
||
|
'key', 'expect-cipher-algo=aes128');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'cipher-algo=aes192'),
|
||
|
'key', 'expect-cipher-algo=aes192');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- s2k change
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 's2k-mode=0'),
|
||
|
'key', 'expect-s2k-mode=0');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 's2k-mode=1'),
|
||
|
'key', 'expect-s2k-mode=1');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 's2k-mode=3'),
|
||
|
'key', 'expect-s2k-mode=3');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- s2k count change
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 's2k-count=1024'),
|
||
|
'key', 'expect-s2k-count=1024');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- s2k_count rounds up
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 's2k-count=65000000'),
|
||
|
'key', 'expect-s2k-count=65000000');
|
||
|
NOTICE: pgp_decrypt: unexpected s2k_count: expected 65000000 got 65011712
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- s2k digest change
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 's2k-digest-algo=md5'),
|
||
|
'key', 'expect-s2k-digest-algo=md5');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 's2k-digest-algo=sha1'),
|
||
|
'key', 'expect-s2k-digest-algo=sha1');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- sess key
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=0'),
|
||
|
'key', 'expect-sess-key=0');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1'),
|
||
|
'key', 'expect-sess-key=1');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=bf'),
|
||
|
'key', 'expect-sess-key=1, expect-cipher-algo=bf');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=aes192'),
|
||
|
'key', 'expect-sess-key=1, expect-cipher-algo=aes192');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'sess-key=1, cipher-algo=aes256'),
|
||
|
'key', 'expect-sess-key=1, expect-cipher-algo=aes256');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- no mdc
|
||
|
select pgp_sym_decrypt(
|
||
|
pgp_sym_encrypt('Secret.', 'key', 'disable-mdc=1'),
|
||
|
'key', 'expect-disable-mdc=1');
|
||
|
pgp_sym_decrypt
|
||
|
-----------------
|
||
|
Secret.
|
||
|
(1 row)
|
||
|
|
||
|
-- crlf
|
||
|
select pgp_sym_decrypt_bytea(
|
||
|
pgp_sym_encrypt(E'1\n2\n3\r\n', 'key', 'convert-crlf=1'),
|
||
|
'key');
|
||
|
pgp_sym_decrypt_bytea
|
||
|
------------------------
|
||
|
\x310d0a320d0a330d0d0a
|
||
|
(1 row)
|
||
|
|
||
|
-- 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;
|
||
|
result | expect
|
||
|
--------------------------------------------+--------------------------------------------
|
||
|
\x47bde5d88d6ef8770572b9cbb4278b402aa69966 | \x47bde5d88d6ef8770572b9cbb4278b402aa69966
|
||
|
(1 row)
|
||
|
|