class Eligible::Lockbox
Public Class Methods
all(params, api_key = nil)
click to toggle source
# File lib/eligible/lockbox.rb, line 10 def self.all(params, api_key = nil) send_request(:get, api_url('lockboxes'), api_key, params) end
decrypt_data(data, encrypted_data_key, private_key)
click to toggle source
# File lib/eligible/lockbox.rb, line 25 def self.decrypt_data(data, encrypted_data_key, private_key) pkey = OpenSSL::PKey::RSA.new(private_key) aes_key = pkey.private_decrypt(Base64.decode64(encrypted_data_key)) sha_key = Digest::SHA256.hexdigest(aes_key) Encryptor.decrypt(value: Base64.decode64(data), key: sha_key, insecure_mode: true) end
delete_private_key!(params)
click to toggle source
# File lib/eligible/lockbox.rb, line 20 def self.delete_private_key!(params) params.delete('private_key') params.delete(:private_key) end
extract_private_key(params)
click to toggle source
# File lib/eligible/lockbox.rb, line 14 def self.extract_private_key(params) private_key = Util.value(params, :private_key) fail ArgumentError, "Private key is required for decryption" if private_key.nil? private_key end
get(params, api_key = nil)
click to toggle source
# File lib/eligible/lockbox.rb, line 6 def self.get(params, api_key = nil) send_request(:get, api_url('lockboxes', params, :lockbox_id), api_key, params, :lockbox_id) end
get_and_decrypt_from_lockbox(params, api_key = nil)
click to toggle source
# File lib/eligible/lockbox.rb, line 32 def self.get_and_decrypt_from_lockbox(params, api_key = nil) private_key = extract_private_key(params) delete_private_key!(params) req = get(params, api_key).to_hash decrypt_data(req[:encrypted_data], req[:encrypted_key], private_key) end