class Mongo::Crypt::KMS::MasterKeyDocument
KMS master key document object contains KMS master key parameters that are used for creation of data keys.
@api private
Constants
- KMS_PROVIDERS
Known KMS provider names.
Public Class Methods
new(kms_provider, options)
click to toggle source
Creates a master key document object form a parameters hash.
@param [ String ] kms_provider. KMS provider name. @param [ Hash ] options A hash that contains master key options for
the KMS provider. Required parameters for KMS providers are described in corresponding classes inside Mongo::Crypt::KMS module.
@raise [ ArgumentError ] If required options are missing or incorrectly.
# File lib/mongo/crypt/kms/master_key_document.rb, line 39 def initialize(kms_provider, options) if options.nil? raise ArgumentError.new('Key document options must not be nil') end master_key = options.fetch(:master_key, {}) @key_document = case kms_provider.to_s when 'aws' then KMS::AWS::MasterKeyDocument.new(master_key) when 'azure' then KMS::Azure::MasterKeyDocument.new(master_key) when 'gcp' then KMS::GCP::MasterKeyDocument.new(master_key) when 'kmip' then KMS::KMIP::MasterKeyDocument.new(master_key) when 'local' then KMS::Local::MasterKeyDocument.new(master_key) else raise ArgumentError.new("KMS provider must be one of #{KMS_PROVIDERS}") end end