mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-30 00:04:49 -04: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
 |