Módulo: Mongoid::Tasks::Encryption

Estendido por:
Criptografia
Incluído em:
Criptografia
Definido em:
lib/mongoid/tasks/encryption.rb

Visão geral

Este módulo contém métodos de assistente para criptografia de dados.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#create_data_key(client_name: nil, kms_provider_name: nil, key_alt_name: nil) ➤ Hash

Crie uma chave de criptografia de dados para o provedor de KMS fornecido usando o auto_encryption_options da configuração do cliente.

Parâmetros:

  • kms_provider_name (string | nil) (padrão para: nil)

    O nome do provedor KMS a ser usado. Se não for fornecido, o primeiro fornecedor nas auto_encryption_options do cliente será usado.

  • client_name (string | nil) (padrão para: nil)

    O nome do cliente de quem obter auto_encryption_options. Se não for fornecido, o cliente padrão será usado.

  • key_alt_name (string | nil) (padrão para: nil)

    O nome alternativo da chave.

Retorna:

  • (Hash)

    Um hash contendo a ID da chave como :key_id, o nome do provedor KMS como :kms_provider e o namespace do cofre de chaves como :key_vault_namespace.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/mongoid/tasks/encryption.rb', linha 24

def create_data_key(client_name: nada, kms_provider_name: nada, key_alt_name: nada)
  kms_provider_name, kms_providers, key_vault_namespace = prepare_arguments(
    kms_provider_name,
    client_name
  )
  key_vault_client = Mongoid::Clientes.default.com(database: key_vault_namespace.dividir('.').primeiro)
  client_encryption = mongo::ClientEncryption.Novo(
    key_vault_client,
    key_vault_namespace: key_vault_namespace,
    kms_providers: kms_providers
  )
  client_encryption_opts = {}.toque fazer |opciona|
    opciona[:key_alt_names] = [key_alt_name] se key_alt_name
  end
  data_key_id = client_encryption.create_data_key(kms_provider_name, client_encryption_opts)
  {
    key_id: Base64.strict_encode64(data_key_id.de dados),
    kms_provider: kms_provider_name,
    key_vault_namespace: key_vault_namespace,
    key_alt_name: key_alt_name
  }.compactar
end