mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-31 18:47:20 +02:00
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
69 lines
1.5 KiB
Plaintext
69 lines
1.5 KiB
Plaintext
--
|
|
-- PGP Public Key Encryption
|
|
--
|
|
-- successful encrypt/decrypt
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=1;
|
|
pgp_pub_decrypt
|
|
-----------------
|
|
Secret msg
|
|
(1 row)
|
|
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=2;
|
|
pgp_pub_decrypt
|
|
-----------------
|
|
Secret msg
|
|
(1 row)
|
|
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=3;
|
|
pgp_pub_decrypt
|
|
-----------------
|
|
Secret msg
|
|
(1 row)
|
|
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=6;
|
|
pgp_pub_decrypt
|
|
-----------------
|
|
Secret msg
|
|
(1 row)
|
|
|
|
-- try with rsa-sign only
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=4;
|
|
ERROR: No encryption key found
|
|
-- try with secret key
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt('Secret msg', dearmor(seckey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=1;
|
|
ERROR: Refusing to encrypt with secret key
|
|
-- does text-to-bytea works
|
|
select encode(pgp_pub_decrypt_bytea(
|
|
pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey)), 'escape')
|
|
from keytbl where keytbl.id=1;
|
|
encode
|
|
------------
|
|
Secret msg
|
|
(1 row)
|
|
|
|
-- and bytea-to-text?
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt_bytea('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=1;
|
|
ERROR: Not text data
|