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 40 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
Public Instance Methods
to_document()
click to toggle source
Convert master key document object to a BSON document in libmongocrypt format.
@return [ BSON::Document ] Master key document as BSON document.
# File lib/mongo/crypt/kms/master_key_document.rb, line 59 def to_document @key_document.to_document end