class CryptKeeper::Provider::PostgresPgpPublicKey
Attributes
key[RW]
Public Class Methods
new(options = {})
click to toggle source
# File lib/crypt_keeper/provider/postgres_pgp_public_key.rb, line 6 def initialize(options = {}) ::ActiveSupport.run_load_hooks(:crypt_keeper_postgres_pgp_log, self) @key = options.fetch(:key) do raise ArgumentError, "Missing :key" end @public_key = options.fetch(:public_key) @private_key = options[:private_key] end
Public Instance Methods
decrypt(value)
click to toggle source
Public: Decrypts a string
Returns a plaintext string
# File lib/crypt_keeper/provider/postgres_pgp_public_key.rb, line 31 def decrypt(value) if @private_key.present? && encrypted?(value) escape_and_execute_sql(["SELECT pgp_pub_decrypt(?, dearmor(?), ?)", value, @private_key, @key])['pgp_pub_decrypt'] else value end end
encrypt(value)
click to toggle source
Public: Encrypts a string
Returns an encrypted string
# File lib/crypt_keeper/provider/postgres_pgp_public_key.rb, line 20 def encrypt(value) if !@private_key.present? && encrypted?(value) value else escape_and_execute_sql(["SELECT pgp_pub_encrypt(?, dearmor(?))", value.to_s, @public_key])['pgp_pub_encrypt'] end end