Classe: Mongo::Crypt::ExplicitEncrypter Private
- Herda:
-
Objeto
- Objeto
- Mongo::Crypt::ExplicitEncrypter
- Estendido por:
- Encaminhável
- Definido em:
- lib/mongo/crypt/explicit_encrypter.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.
Um ExplicitEncrypter é um objeto que executa operações de criptografia explícitas e lida com todas as opções associadas e variáveis de instância.
Recolhimento do Resumo do método de instância
-
#add_key_alt_name(ID, key_alt_name) ➤ BSON::Document | nada
privado
Adiciona um key_alt_name para a chave na key vault collection com o ID fornecido.
-
#create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) ➤ BSON::Binary
privado
Gera uma chave de dados usada para criptografia/descriptografia e armazena essa chave na coleção KMS.
-
#descriptografar(valor) ➤ Objeto
privado
Descriptografa um valor que já foi criptografado.
-
#delete_key(ID) ➤ Operação::Result
privado
Remove a chave com o ID fornecido da coleção de cofre de chave.
-
#encrypt(value, options) ➤ BSON::Binary
privado
Criptografa um valor usando a chave de encriptação e o algoritmo especificados.
-
#encrypt_expression(expressão, opções) ➤ BSON::Binary
privado
Criptografa uma expressão de correspondência ou expressão de agregação para consultar um índice de faixa.
-
#get_key(id) ⇒ BSON::Document | nil
privado
Encontra uma única chave com o ID fornecido.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
privado
Retorna uma chave na key vault collection com o key_alt_name fornecido.
-
#get_keys ➤ Collection::View
privado
Retorna todas as chaves na key vault collection.
-
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options, timeout_ms = nil, key_expiration_ms = nil) ⇒ ExplicitEncrypter
construtor
privado
Crie um novo objeto ExplicitEncrypter.
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
privado
Remove um key_alt_name de uma chave na key vault collection com o ID fornecido.
-
#rewrap_many_data_key(filter, opts = {}) ➤ Crypt::RewrapManyDataKeyResult
privado
Descriptografa várias chaves de dados e (re)criptografa-as com uma nova master_key ou com sua master_key atual se uma nova não for fornecida.
Detalhes do construtor
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options, timeout_ms = nil, key_expiration_ms = nil) ⇒ ExplicitEncrypter
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.
Crie um novo objeto ExplicitEncrypter.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 43 def inicializar( key_vault_client, key_vault_namespace, kms_providers, , timeout_ms = nada, key_expiration_ms = nada ) Criptografar.validate_ffi! @crypt_handle = Lidar.Novo( kms_providers, , explicitamente_encryption_only: true, key_expiration_ms: key_expiration_ms ) @encryption_io = EncryptionIO.Novo( key_vault_client: key_vault_client, metadata_client: nada, key_vault_namespace: key_vault_namespace ) @timeout_ms = timeout_ms end |
Detalhes do método de instância
#add_key_alt_name(ID, key_alt_name) ➤ BSON::Document | nada
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.
Adiciona um key_alt_name para a chave na key vault collection com o ID fornecido.
218 219 220 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 218 def add_key_alt_name(id, key_alt_name) @encryption_io.add_key_alt_name(id, key_alt_name, timeout_ms: @timeout_ms) end |
#create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) ➤ BSON::Binary
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.
Gera uma chave de dados usada para criptografia/descriptografia e armazena essa chave na coleção KMS. A chave gerada é criptografada com a chave mestre KMS.
77 78 79 80 81 82 83 84 85 86 87 88 89 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 77 def create_and_insert_data_key(master_key_document, key_alt_names, key_material = nada) data_key_document = Criptografar::DataKeyContext.Novo( @crypt_handle, @encryption_io, master_key_document, key_alt_names, key_material ).run_state_machine(timeout_holder) @encryption_io.insert_data_key( data_key_document, timeout_ms: timeout_holder.remaining_timeout_ms! ).insert_id end |
#descriptografar(valor) ➤ Objeto
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.
Descriptografa um valor que já foi criptografado
203 204 205 206 207 208 209 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 203 def Descriptografar(valor) Criptografar::ExplicitDecryptionContext.Novo( @crypt_handle, @encryption_io, { v: valor } ).run_state_machine(timeout_holder)['v'] end |
#delete_key(ID) ➤ Operação::Result
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.
Remove a chave com o ID fornecido da coleção de cofre de chave.
228 229 230 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 228 def delete_key(id) @encryption_io.delete_key(id, timeout_ms: @timeout_ms) end |
#encrypt(value, options) ➤ BSON::Binary
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.
As opções :key_id e :key_alt_name são mutuamente exclusivas. Apenas um é necessário para executar a criptografia explícita.
Criptografa um valor usando a chave de encriptação e o algoritmo especificados
128 129 130 131 132 133 134 135 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 128 def criptografar(valor, ) Criptografar::ExplicitEncryptionContext.Novo( @crypt_handle, @encryption_io, { v: valor }, ).run_state_machine(timeout_holder)['v'] end |
#encrypt_expression(expressão, opções) ➤ BSON::Binary
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.
O algoritmo Range é apenas experimental. Não é
As opções :key_id e :key_alt_name são mutuamente exclusivas. Apenas um é necessário para executar a criptografia explícita.
Criptografa uma expressão de correspondência ou expressão de agregação para consultar um índice de faixa.
Somente suportado quando queryType for "faixa" e algoritmo for "faixa". @note: o algoritmo faixa é apenas experimental. Não se destina ao uso público. Ele está sujeito a alterações interruptivas.
@param [ Hash ] opções
destinado ao uso público.
188 189 190 191 192 193 194 195 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 188 def encryption_expression(expressão, ) Criptografar::ExplicitEncryptionExpressionContext.Novo( @crypt_handle, @encryption_io, { v: expressão }, ).run_state_machine(timeout_holder)['v'] end |
#get_key(id) ⇒ BSON::Document | nil
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.
Encontra uma única chave com o ID fornecido.
238 239 240 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 238 def get_key(id) @encryption_io.get_key(id, timeout_ms: @timeout_ms) end |
#get_key_by_alt_name(key_alt_name) ➤ BSON::Document | nada
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.
Retorna uma chave na key vault collection com o key_alt_name fornecido.
248 249 250 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 248 def get_key_by_alt_name(key_alt_name) @encryption_io.get_key_by_alt_name(key_alt_name, timeout_ms: @timeout_ms) end |
#get_keys ➤ Collection::View
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.
Retorna todas as chaves na key vault collection.
rubocop:disable Naming/AccessorMethodName O nome deste método é definido na especificação FLE
257 258 259 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 257 def get_keys @encryption_io.get_keys(timeout_ms: @timeout_ms) end |
#remove_key_alt_name(ID, key_alt_name) ➤ BSON::Document | nada
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.
Remove um key_alt_name de uma chave na key vault collection com o ID fornecido.
269 270 271 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 269 def remove_key_alt_name(id, key_alt_name) @encryption_io.remove_key_alt_name(id, key_alt_name, timeout_ms: @timeout_ms) end |
#rewrap_many_data_key(filter, opts = {}) ➤ Crypt::RewrapManyDataKeyResult
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.
Descriptografa várias chaves de dados e (re)criptografa-as com uma nova master_key ou com sua master_key atual se uma nova não for fornecida.
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 |
# Arquivo 'lib/mongo/crypt/explicit_encrypter.rb', linha 284 def rewrap_many_data_key(filtro, filtro, opciona = {}) (opciona) master_key_document = master_key_for_provider(opciona) rewrap_result = Criptografar::RewrapManyDataKeyContext.Novo( @crypt_handle, @encryption_io, filtro, filtro, master_key_document ).run_state_machine(timeout_holder) Método RewrapManyDataKeyResult.Novo(nada) se rewrap_result.nada? Atualizações = Updates_from_data_key_documents(rewrap_result.buscar('v')) RewrapManyDataKeyResult.Novo( @encryption_io.update_data_keys(Atualizações, timeout_ms: @timeout_ms) ) end |