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'