Class: KmsClient

Inherits:
Object
  • Object
show all
Defined in:
lib/kms_client.rb

Direct Known Subclasses

NYPLRubyUtil::KmsClient

Constant Summary collapse

@@kms =
nil

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ KmsClient

Returns a new instance of KmsClient.



7
8
9
10
# File 'lib/kms_client.rb', line 7

def initialize(options = {})
  options ||= {}
  @kms = self.class.aws_kms_client(options)
end

Class Method Details

.aws_kms_client(options) ⇒ Object



19
20
21
22
23
24
25
26
# 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

Instance Method Details

#decrypt(cipher) ⇒ Object



12
13
14
15
16
17
# 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