Class: Mongo::Crypt::KMS::Local::Credentials Private

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Validations
Defined in:
lib/mongo/crypt/kms/local/credentials.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Local KMS Credentials object contains credentials for using local KMS provider.

API:

  • private

Constant Summary collapse

FORMAT_HINT =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

API:

  • private

"Local KMS provider options must be in the format: " +
"{ key: 'MASTER-KEY' }"

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Validations

#validate_param, validate_tls_options

Constructor Details

#initialize(opts) ⇒ Credentials

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Creates a local KMS credentials object form a parameters hash.

Parameters:

  • A hash that contains credentials for local KMS provider

Options Hash (opts):

  • :key (String)

    Master key.

Raises:

  • If required options are missing or incorrectly formatted.

API:

  • private



46
47
48
49
50
51
# File 'lib/mongo/crypt/kms/local/credentials.rb', line 46

def initialize(opts)
  @opts = opts
  unless empty?
    @key = validate_param(:key, opts, FORMAT_HINT)
  end
end

Instance Attribute Details

#keyString (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns Master key.

Returns:

  • Master key.

API:

  • private



30
31
32
# File 'lib/mongo/crypt/kms/local/credentials.rb', line 30

def key
  @key
end

Instance Method Details

#to_documentBSON::Document

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns Local KMS credentials in libmongocrypt format.

Returns:

  • Local KMS credentials in libmongocrypt format.

API:

  • private



54
55
56
57
58
59
# File 'lib/mongo/crypt/kms/local/credentials.rb', line 54

def to_document
  return BSON::Document.new({}) if empty?
  BSON::Document.new({
    key: BSON::Binary.new(@key, :generic),
  })
end