mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-31 10:30:33 +03: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
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| --
 | |
| -- 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;
 | |
| 
 | |
| select pgp_pub_decrypt(
 | |
| 		pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
 | |
| 		dearmor(seckey))
 | |
| from keytbl where keytbl.id=2;
 | |
| 
 | |
| select pgp_pub_decrypt(
 | |
| 		pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
 | |
| 		dearmor(seckey))
 | |
| from keytbl where keytbl.id=3;
 | |
| 
 | |
| select pgp_pub_decrypt(
 | |
| 		pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
 | |
| 		dearmor(seckey))
 | |
| from keytbl where keytbl.id=6;
 | |
| 
 | |
| -- try with rsa-sign only
 | |
| select pgp_pub_decrypt(
 | |
| 		pgp_pub_encrypt('Secret msg', dearmor(pubkey)),
 | |
| 		dearmor(seckey))
 | |
| from keytbl where keytbl.id=4;
 | |
| 
 | |
| -- try with secret key
 | |
| select pgp_pub_decrypt(
 | |
| 		pgp_pub_encrypt('Secret msg', dearmor(seckey)),
 | |
| 		dearmor(seckey))
 | |
| from keytbl where keytbl.id=1;
 | |
| 
 | |
| -- 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;
 | |
| 
 | |
| -- and bytea-to-text?
 | |
| select pgp_pub_decrypt(
 | |
| 		pgp_pub_encrypt_bytea('Secret msg', dearmor(pubkey)),
 | |
| 		dearmor(seckey))
 | |
| from keytbl where keytbl.id=1;
 |