Classe: Mongo::Crypt::KMS::MasterKeyDocument Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongo/crypt/KMS/master_key_document.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

O objeto de documento de chave mestra KMS contém parâmetros de chave mestra KMS que são usados para a criação de chaves de dados.

Colapsode resumo constante

KMS_providers =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Tipos de provedores KMS conhecidos.

%w[AWS Azure GCP KMIP Local].congelar

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(kms_provider, options) ➤ MasterKeyDocument

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Cria um objeto de documento de chave mestra a partir de um hash de parâmetros.

Parâmetros:

  • kms_provider (string)

    Identificador do provedor de KMS. Pode ser um tipo de provedor (por exemplo, "aws") ou um provedor nomeado (por exemplo, "aws:name1").

  • opções (Hash)

    Um hash que contém opções de chave mestre para o provedor de KMS. Os parâmetros necessários para provedores de KMS são descritos em classes correspondentes dentro do módulo Mongo::Crypt::KMS.

Aumenta:

  • (ArgumentError)

    Se as opções necessárias estiverem ausentes ou formatadas incorretamente.



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/mongo/crypt/KMS/master_key_document.rb', linha 39

def inicializar(kms_provider, opções)
  aumentar ArgumentError.Novo('As principais opções de documentos não devem ser nulas') se opções.nada?

  @provider = kms_provider.to_s
  provider_type = KMS.provider_base_type(@provider)

  master_key = opções.buscar(:master_key, {})
  @key_document = caso provider_type
                  quando 'aws' então KMS::AWS::Documento MasterKey.Novo(master_key)
                  quando 'azure' então KMS::Azure::Documento MasterKey.Novo(master_key)
                  quando 'gcp' então KMS::GCP::Documento MasterKey.Novo(master_key)
                  quando 'kmip' então KMS::KMIP::Documento MasterKey.Novo(master_key)
                  quando 'local' então KMS::Local::Documento MasterKey.Novo(master_key)
                  mais
                    aumentar ArgumentError.Novo("O provedor de KMS deve ser um dos #{KMS_providers}")
                  end
end

Detalhes do método de instância

#to_document ➤ BSON::Document

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Converta o objeto de documento de chave mestra em um documento BSON no formato libmongocrypt.

Retorna:

  • (BSON::Document)

    documento de chave mestra como documento BSON.



60
61
62
# File 'lib/mongo/crypt/KMS/master_key_document.rb', linha 60

def to_document
  @key_document.to_document.mesclar(fornecedor: @provider)
end