class KmsClient

Public Class Methods

aws_kms_client(options) click to toggle source
# File lib/kms_client.rb, line 19
def self.aws_kms_client(options)
  params = {
    region: 'us-east-1',
    stub_responses: ENV['APP_ENV'] == 'test'
  }.merge(options)
  @@kms = Aws::KMS::Client.new(params) if @@kms.nil?
  @@kms
end
new(options = {}) click to toggle source
# File lib/kms_client.rb, line 7
def initialize(options = {})
  options ||= {}
  @kms = self.class.aws_kms_client(options)
end

Public Instance Methods

decrypt(cipher) click to toggle source
# File lib/kms_client.rb, line 12
def decrypt(cipher)
  # Assume value is base64 encoded:
  decoded = Base64.decode64 cipher
  decrypted = @kms.decrypt ciphertext_blob: decoded
  decrypted[:plaintext]
end