class KmsEncrypted::Clients::Base
Attributes
key_id[R]
Public Class Methods
new(key_id: nil, legacy_context: false)
click to toggle source
# File lib/kms_encrypted/clients/base.rb, line 6 def initialize(key_id: nil, legacy_context: false) @key_id = key_id @legacy_context = legacy_context end
Protected Instance Methods
context_key(k)
click to toggle source
# File lib/kms_encrypted/clients/base.rb, line 30 def context_key(k) unless k.is_a?(String) || k.is_a?(Symbol) raise ArgumentError, "Context keys must be a string or symbol" end k.to_s end
context_value(v)
click to toggle source
# File lib/kms_encrypted/clients/base.rb, line 37 def context_value(v) unless v.is_a?(String) || v.is_a?(Integer) raise ArgumentError, "Context values must be a string or integer" end v.to_s end
decryption_failed!()
click to toggle source
# File lib/kms_encrypted/clients/base.rb, line 13 def decryption_failed! raise DecryptionError, "Decryption failed" end
generate_context(context)
click to toggle source
keys must be ordered consistently values are checked for validity then converted to strings
# File lib/kms_encrypted/clients/base.rb, line 20 def generate_context(context) if @legacy_context context.to_json elsif context.is_a?(Hash) Hash[context.sort_by { |k| k.to_s }.map { |k, v| [context_key(k), context_value(v)] }].to_json else context end end