Clase: Mongo::Crypt::ExplicitEncrypter Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Crypt::ExplicitEncrypter
- Ampliado por:
- Reenviable
- Definido en:
- lib/mongo/crypt/explicit_encrypter.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Un ExplicitEncrypter es un objeto que realiza operaciones de cifrado explícitas y gestiona todas las opciones asociadas y variables de instancia.
Resumen del método de instancia colapsar
-
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
privado
Agrega un key_alt_name para la clave en la Colección de Bóvedas de Llaves con el ID proporcionado.
-
#create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) ⇒ BSON::Binary
privado
Genera una clave de datos utilizada para cifrado/descifrado y almacena esa clave en la colección KMS.
-
#decrypt(valor) ⇒ objeto
privado
Descifra un valor que ya ha sido cifrado.
-
#delete_key(id) ⇒ Operation::Result
privado
Remueve la clave con la ID indicada de la Colección de Bóvedas de Llaves.
-
#encryptar(valor, opciones) ⇒ BSON::Binary
privado
Encripta un valor usando la clave y algoritmo de cifrado especificados.
-
#encrypt_expression(expresión, options) ⇒ BSON::Binary
privado
Encripta una expresión de coincidencia o una expresión de agregación para consultar un índice de rango.
-
#get_key(id) ⇒ BSON::Document | nil
privado
Encuentra una sola clave con el ID proporcionado.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
privado
Devuelve una clave en la Colección de Bóvedas de Llaves con el key_alt_name (nombre alternativo de clave) proporcionado.
-
#get_keys ⇒ Collection::View
privado
Devuelve todas las Colección de Bóvedas de Llaves.
-
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options, timeout_ms = nil, key_expiration_ms = nil) ⇒ ExplicitEncrypter
constructor
privado
Crea un nuevo objeto ExplicitEncrypter.
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
privado
Remueve un key_alt_name de una clave en la Colección de Bóvedas de Llaves con el ID especificado.
-
#rewrap_many_data_key(filtro, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
privado
Descifra varias claves de datos y las (re)encripta con una nueva master_key, o con su master_key actual si no se proporciona una nueva.
Detalles del Constructor
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options, timeout_ms = nil, key_expiration_ms = nil) ⇒ ExplicitEncrypter
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Crea un nuevo objeto ExplicitEncrypter.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 43 def inicializar( key_vault_client, key_vault_namespace, kms_providers, , timeout_ms = nulo, key_expiration_ms = nulo ) Cripta.validate_ffi! @crypt_handle = gestionar.Nuevo( kms_providers, , solo_cifrado_explícito: true, key_expiration_ms: key_expiration_ms ) @encryption_io = EncryptionIO.Nuevo( key_vault_client: key_vault_client, metadata_client: nulo, key_vault_namespace: key_vault_namespace ) @timeout_ms = timeout_ms end |
Detalles del método de instancia
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Agrega un key_alt_name para la clave en la Colección de Bóvedas de Llaves con el ID proporcionado.
218 219 220 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 218 def add_key_alt_name(ID, key_alt_name) @encryption_io.add_key_alt_name(ID, key_alt_name, tiempo_de_espera_ms: @timeout_ms) end |
#create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) ⇒ BSON::Binary
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Genera una clave de datos utilizada para el cifrado/descifrado y almacena esa clave en la colección KMS. La clave generada está cifrado con la clave maestra KMS.
77 78 79 80 81 82 83 84 85 86 87 88 89 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 77 def create_and_insert_data_key(master_key_document, clave_nombres_alternativos, material de clave = nulo) data_key_document = Cripta::DataKeyContext.Nuevo( @crypt_handle, @encryption_io, master_key_document, clave_nombres_alternativos, material de clave ).run_state_machine(timeout_holder) @encryption_io.insert_data_key( data_key_document, tiempo_de_espera_ms: timeout_holder.remaining_timeout_ms! ).inserted_id end |
#descifrar(valor) ⇒ Objeto
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Descifra un valor que ya ha sido cifrado
203 204 205 206 207 208 209 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 203 def descifrar(Valor) Cripta::ExplicitDecryptionContext.Nuevo( @crypt_handle, @encryption_io, { v: Valor } ).run_state_machine(timeout_holder)['v'] end |
#delete_key(id) ⇒ Operación::Result
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Remueve la clave con la ID indicada de la Colección de Bóvedas de Llaves.
228 229 230 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 228 def delete_key(ID) @encryption_io.delete_key(ID, tiempo_de_espera_ms: @timeout_ms) end |
#encriptar(valor, opciones) ⇒ BSON::Binary
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Las opciones :key_id y :key_alt_name son mutuamente excluyentes. Solo se requiere uno para realizar el cifrado explícito.
Cifra un valor utilizando la llave de cifrado y el algoritmo especificados
128 129 130 131 132 133 134 135 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 128 def cifrado(Valor, ) Cripta::ExplicitEncryptionContext.Nuevo( @crypt_handle, @encryption_io, { v: Valor }, ).run_state_machine(timeout_holder)['v'] end |
#encrypt_expression(expresión, opciones) ⇒ BSON::Binary
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
El algoritmo de rango es únicamente experimental. No es
Las opciones :key_id y :key_alt_name son mutuamente excluyentes. Solo se requiere uno para realizar el cifrado explícito.
Encripta una expresión de coincidencia o una expresión de agregación para consultar un índice de rango.
Solo se admite cuando queryType es "range" y el algoritmo es "Range". @note: El algoritmo de Rango es solo experimental. No está destinado al uso público. Está sujeto a cambios disruptivos.
@param [ Hash ] opciones
destinado al uso público.
188 189 190 191 192 193 194 195 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 188 def encrypt_expression(expresión, ) Cripta::ExplicitEncryptionExpressionContext.Nuevo( @crypt_handle, @encryption_io, { v: expresión }, ).run_state_machine(timeout_holder)['v'] end |
#get_key(id) ⇒ BSON::Document | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Encuentra una sola clave con el ID proporcionado.
238 239 240 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 238 def obtener_clave(ID) @encryption_io.obtener_clave(ID, tiempo_de_espera_ms: @timeout_ms) end |
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve una clave en la Colección de Bóvedas de Llaves con el key_alt_name (nombre alternativo de clave) proporcionado.
248 249 250 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 248 def get_key_by_alt_name(key_alt_name) @encryption_io.get_key_by_alt_name(key_alt_name, tiempo_de_espera_ms: @timeout_ms) end |
#get_keys ⇒ colección::View
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve todas las Colección de Bóvedas de Llaves.
rubocop:disable Naming/AccessorMethodName El nombre de este método está definido en la especificación de FLE.
257 258 259 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 257 def get_keys @encryption_io.get_keys(tiempo_de_espera_ms: @timeout_ms) end |
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Remueve un key_alt_name de una clave en la Colección de Bóvedas de Llaves con el ID especificado.
269 270 271 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 269 def eliminar_nombre_alternativo_de_clave(ID, key_alt_name) @encryption_io.eliminar_nombre_alternativo_de_clave(ID, key_alt_name, tiempo_de_espera_ms: @timeout_ms) end |
#rewrap_many_data_key(filtro, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Descifra varias claves de datos y las (re)encripta con una nueva master_key, o con su master_key actual si no se proporciona una nueva.
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 284 def rewrap_many_data_key(filtro, opciones = {}) (opciones) master_key_document = master_key_for_provider(opciones) rewrap_result = Cripta::RewrapManyDataKeyContext.Nuevo( @crypt_handle, @encryption_io, filtro, master_key_document ).run_state_machine(timeout_holder) return RewrapManyDataKeyResult.Nuevo(nulo) si rewrap_result.nil? updates = updates_from_data_key_documents(rewrap_result.obtener('v')) RewrapManyDataKeyResult.Nuevo( @encryption_io.update_data_keys(updates, tiempo_de_espera_ms: @timeout_ms) ) end |