mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-10-08 06:36:59 +02:00
60 lines
1.4 KiB
Plaintext
60 lines
1.4 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)
|
|
|
|
-- 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: pgp_encrypt error: No usable key found (expecting Elgamal key)
|
|
-- try with secret key
|
|
select pgp_pub_decrypt(
|
|
pgp_pub_encrypt('Secret msg', dearmor(seckey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=1;
|
|
ERROR: pgp_encrypt error: Refusing to encrypt with secret key
|
|
-- does text-to-bytea works
|
|
select pgp_pub_decrypt_bytea(
|
|
pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
|
|
dearmor(seckey))
|
|
from keytbl where keytbl.id=1;
|
|
pgp_pub_decrypt_bytea
|
|
-----------------------
|
|
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: pgp_decrypt error: Not text data
|