Classe: Mongo::Crypt::ExplicitEncrypter Private
- Herda:
-
Objeto
- Objeto
- Mongo::Crypt::ExplicitEncrypter
- Estendido por:
- Encaminhável
- Definido em:
- build/ruby-driver-v2.19/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.
-
#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.
-
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options) ➤ ExplicitEncrypter
construtor
privado
Crie um novo objeto ExplicitEncrypter.
-
#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) ➤ 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.
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', linha 38 def inicializar(key_vault_client, key_vault_namespace, kms_providers, ) Criptografar.validate_ffi! @crypt_handle = Lidar.Novo( kms_providers, , explicitamente_encryption_only: true ) @encryption_io = EncryptionIO.Novo( key_vault_client: key_vault_client, metadata_client: nada, key_vault_namespace: key_vault_namespace ) 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.
197 198 199 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', linha 197 def add_key_alt_name(id, key_alt_name) @encryption_io.add_key_alt_name(id, key_alt_name) 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.
67 68 69 70 71 72 73 74 75 76 77 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', linha 67 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 @encryption_io.insert_data_key(data_key_document).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
182 183 184 185 186 187 188 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', linha 182 def Descriptografar(valor) Criptografar::ExplicitDecryptionContext.Novo( @crypt_handle, @encryption_io, { v: valor } ).run_state_machine['v'] 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
se o algoritmo de criptografia estiver definido como "Indexado". O tipo de query deve ser definido
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
108 109 110 111 112 113 114 115 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', linha 108 def criptografar(valor, ) Criptografar::ExplicitEncryptionContext.Novo( @crypt_handle, @encryption_io, { v: valor }, ).run_state_machine['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 RangePreview é 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 "rangePreview" e algoritmo for "RangePreview". @note: o algoritmo Range é apenas experimental. Não é destinado
for public use. It is subject to breaking changes.
# Opções de [Hash] destinadas ao uso público.
167 168 169 170 171 172 173 174 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', linha 167 def encryption_expression(expressão, ) Criptografar::ExplicitEncryptionExpressionContext.Novo( @crypt_handle, @encryption_io, { v: expressão }, ).run_state_machine['v'] 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 com uma nova master_key,
or with their current master_key if a new one is not given.
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', linha 250 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 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)) end |