class Aws::S3::EncryptionV2::Materials

def initialize(options = {})

Options Hash: (**options)
  • :description (String) --
  • :key (required, OpenSSL::PKey::RSA, String) --
def initialize(options = {})
  @key = validate_key(options[:key])
  @description = validate_desc(options[:description])
end

def validate_desc(description)

def validate_desc(description)
  Json.load(description)
  description
rescue Json::ParseError, EncodingError
  msg = 'expected description to be a valid JSON document string'
  raise ArgumentError, msg
end

def validate_key(key)

def validate_key(key)
  case key
  when OpenSSL::PKey::RSA then key
  when String
    if [32, 24, 16].include?(key.bytesize)
      key
    else
      msg = 'invalid key, symmetric key required to be 16, 24, or '\
            '32 bytes in length, saw length ' + key.bytesize.to_s
      raise ArgumentError, msg
    end
  else
    msg = 'invalid encryption key, expected an OpenSSL::PKey::RSA key '\
          '(for asymmetric encryption) or a String (for symmetric '\
          'encryption).'
    raise ArgumentError, msg
  end
end