lib/mongo/crypt/kms/local.rb in mongo-2.18.3 vs lib/mongo/crypt/kms/local.rb in mongo-2.19.0

- old
+ new

@@ -1,7 +1,7 @@ # frozen_string_literal: true -# encoding: utf-8 +# rubocop:todo all # Copyright (C) 2019-2021 MongoDB Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,70 +13,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -module Mongo - module Crypt - module KMS - module Local - # Local KMS Credentials object contains credentials for using local KMS provider. - # - # @api private - class Credentials - extend Forwardable - include KMS::Validations - - # @return [ String ] Master key. - attr_reader :key - - # @api private - def_delegator :@opts, :empty? - - FORMAT_HINT = "Local KMS provider options must be in the format: " + - "{ key: 'MASTER-KEY' }" - - # Creates a local KMS credentials object form a parameters hash. - # - # @param [ Hash ] opts A hash that contains credentials for - # local KMS provider - # @option opts [ String ] :key Master key. - # - # @raise [ ArgumentError ] If required options are missing or incorrectly - # formatted. - def initialize(opts) - @opts = opts - unless empty? - @key = validate_param(:key, opts, FORMAT_HINT) - end - end - - # @return [ BSON::Document ] Local KMS credentials in libmongocrypt format. - def to_document - return BSON::Document.new({}) if empty? - BSON::Document.new({ - key: BSON::Binary.new(@key, :generic), - }) - end - end - - # Local KMS master key document object contains KMS master key parameters. - # - # @api private - class MasterKeyDocument - - # Creates a master key document object form a parameters hash. - # This empty method is to keep a uniform interface for all KMS providers. - def initialize(_opts) - end - - # Convert master key document object to a BSON document in libmongocrypt format. - # - # @return [ BSON::Document ] Local KMS credentials in libmongocrypt format. - def to_document - BSON::Document.new({ provider: "local" }) - end - end - end - end - end -end +require 'mongo/crypt/kms/local/credentials' +require 'mongo/crypt/kms/local/master_document'