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.
-
#inicializar(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options, timeout_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) ⇒ Encriptador Explícito
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.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 40 def inicializar(key_vault_client, key_vault_namespace, kms_providers, , timeout_ms = nulo) Cripta.validate_ffi! @crypt_handle = gestionar.Nuevo( kms_providers, , solo_cifrado_explícito: true ) @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.
203 204 205 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 203 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.
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 70 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
188 189 190 191 192 193 194 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 188 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.
213 214 215 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 213 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
Si el algoritmo de cifrado está configurado en "Indexado". El tipo de query solo debe configurarse si el algoritmo de cifrado está configurado en "Indexado". El único valor permitido es "igualdad".
113 114 115 116 117 118 119 120 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 113 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.
173 174 175 176 177 178 179 180 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 173 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.
223 224 225 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 223 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.
233 234 235 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 233 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.
242 243 244 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 242 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.
254 255 256 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 254 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.
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 269 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 |