Clase: Mongo::Crypt::ExplicitEncrypter Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Crypt::Cifrador explícito
- Ampliado por:
- Reenviable
- Definido en:
- lib/mongo/crypt/encrypter_explicit.rb
Overview
Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Un ExplicitEncrypter es un objeto que realiza operaciones de cifrado explícitas y maneja todas las opciones y variables de instancia asociadas.
Colapso del resumen del método de instancia
-
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
privada
Agrega un key_alt_name para la clave en la colección de almacén de claves con la identificación dada.
-
#crear_e_insertar_clave_de_datos(documento_de_clave_maestra, nombres_alt_de_clave, material_de_clave = nulo) ⇒ BSON::Binary
privada
Genera una clave de datos utilizada para el cifrado/descifrado y almacena esa clave en la colección KMS.
-
#descifrar(valor) ⇒ Objeto
privada
Descifra un valor que ya ha sido cifrado.
-
#delete_key(id) ⇒ Operación::Resultado
privada
Elimina la clave con la identificación dada de la colección de bóveda de claves.
-
#cifrar(valor, opciones) ⇒ BSON::Binary
privada
Cifra un valor utilizando la clave de cifrado y el algoritmo especificados.
-
#encrypt_expression(expresión, opciones) ⇒ BSON::Binary
privada
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
privada
Encuentra una sola clave con la identificación dada.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
privada
Devuelve una clave en la colección de almacén de claves con el key_alt_name indicado.
-
#get_keys ⇒ Colección::Vista
privada
Devuelve todas las claves de la colección de almacén de claves.
-
#inicializar(cliente de key_vault, espacio de nombres de key_vault, proveedores de kms, opciones de kms_tls, tiempo de espera_ms = nulo) ⇒ ExplicitEncrypter
constructor
privada
Crea un nuevo objeto ExplicitEncrypter.
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
privada
Elimina un key_alt_name de una clave en la colección de almacén de claves con la identificación dada.
-
#rewrap_many_data_key(filtro, opciones = {}) ⇒ Crypt::RewrapManyDataKeyResult
privada
Descifra múltiples claves de datos y las vuelve a cifrar con una nueva clave maestra, o con su clave maestra actual si no se proporciona una nueva.
Detalles del constructor
#inicializar(cliente de key_vault, espacio de nombres de key_vault, proveedores de kms, opciones de kms_tls, tiempo de espera_ms = nulo) ⇒ ExplicitEncrypter
Este método forma parte de una API privada. Debe evitarlo 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(cliente de bóveda de claves, key_vault_namespace, proveedores de kms, , tiempo de espera_ms = nulo) Cripta.validate_ffi! @crypt_handle = Manejar.Nuevo( proveedores de kms, , solo cifrado explícito: true ) @encryption_io = EncryptionIO.Nuevo( cliente de bóveda de claves: cliente de bóveda de claves, metadata_client: nulo, key_vault_namespace: key_vault_namespace ) @timeout_ms = tiempo de espera_ms end |
Detalles del método de instancia
#add_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
Este método forma parte de una API privada. Debe evitarlo 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 almacén de claves con la identificación dada.
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 |
#crear_e_insertar_clave_de_datos(documento_de_clave_maestra, nombres_alt_de_clave, material_de_clave = nulo) ⇒ BSON::Binary
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Genera una clave de datos para el cifrado/descifrado y la almacena en la colección KMS. La clave generada se cifra con la clave maestra de 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 crear_e_insertar_clave_de_datos(documento de clave maestra, nombres de teclas alternativas, material de clave = nulo) data_key_document = Cripta::Contexto de clave de datos.Nuevo( @crypt_handle, @encryption_io, documento de clave maestra, nombres de teclas alternativas, material de clave ).máquina de estado de ejecución(timeout_holder) @encryption_io.insert_data_key( data_key_document, tiempo de espera_ms: timeout_holder.¡tiempo de espera restante_ms! ).inserted_id end |
#descifrar(valor) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo 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 desencriptar(valor) Cripta::ExplicitDecryptionContext.Nuevo( @crypt_handle, @encryption_io, { v: valor } ).máquina de estado de ejecución(timeout_holder)['v'] end |
#delete_key(id) ⇒ Operación::Resultado
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Elimina la clave con la identificación dada de la colección de bóveda de claves.
213 214 215 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 213 def tecla_de_eliminar(ID.) @encryption_io.tecla_de_eliminar(ID., tiempo de espera_ms: @timeout_ms) end |
#cifrar(valor, opciones) ⇒ BSON::Binary
Este método forma parte de una API privada. Debe evitarlo 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 una para realizar el cifrado explícito.
Cifra un valor utilizando la clave de cifrado y el algoritmo especificados
Si el algoritmo de cifrado está configurado como "Indexado", se debe configurar el tipo de consulta.
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
113 114 115 116 117 118 119 120 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 113 def cifrar(valor, ) Cripta::Contexto de cifrado explícito.Nuevo( @crypt_handle, @encryption_io, { v: valor }, ).máquina de estado de ejecución(timeout_holder)['v'] end |
#encrypt_expression(expresión, opciones) ⇒ BSON::Binary
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
El algoritmo de rango es solo experimental. No es
Las opciones :key_id y :key_alt_name son mutuamente excluyentes. Solo se requiere una 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 el tipo de consulta es "rango" y el algoritmo es "Rango". @nota: El algoritmo de rango es solo experimental. No está diseñado para...
for public use. It is subject to breaking changes.
# @param [ Hash ] opciones destinadas al uso público.
173 174 175 176 177 178 179 180 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 173 def expresión_cifrada(expresión, ) Cripta::Contexto de expresión de cifrado explícito.Nuevo( @crypt_handle, @encryption_io, { v: expresión }, ).máquina de estado de ejecución(timeout_holder)['v'] end |
#get_key(id) ⇒ BSON::Document | nil
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Encuentra una sola clave con la identificación dada.
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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve una clave en la colección de almacén de claves con el key_alt_name indicado.
233 234 235 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 233 def obtener_clave_por_nombre_alt(key_alt_name) @encryption_io.obtener_clave_por_nombre_alt(key_alt_name, tiempo de espera_ms: @timeout_ms) end |
#get_keys ⇒ Colección::Vista
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve todas las claves de la colección de almacén de claves.
rubocop:disable Naming/AccessorMethodName El nombre de este método se define en la especificación 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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Elimina un key_alt_name de una clave en la colección de almacén de claves con la identificación dada.
254 255 256 |
# Archivo 'lib/mongo/crypt/explicit_encrypter.rb', línea 254 def eliminar_tecla_alt_nombre(ID., key_alt_name) @encryption_io.eliminar_tecla_alt_nombre(ID., key_alt_name, tiempo de espera_ms: @timeout_ms) end |
#rewrap_many_data_key(filtro, opciones = {}) ⇒ Crypt::RewrapManyDataKeyResult
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Descifra múltiples claves de datos y las vuelve a cifrar con una nueva clave maestra.
or with their current master_key if a new one is not given.
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, opta = {}) (opta) documento de clave maestra = llave maestra para proveedor(opta) resultado de reenvolver = Cripta::ReenvolverMuchosDatosContextoClave.Nuevo( @crypt_handle, @encryption_io, filtro, documento de clave maestra ).máquina de estado de ejecución(timeout_holder) return Resultado de clave de datos múltiples de reajuste.Nuevo(nulo) Si resultado de reenvolver.nil? updates = updates_from_data_key_documents(resultado de reenvolver.Fetch('v')) Resultado de clave de datos múltiples de reajuste.Nuevo( @encryption_io.update_data_keys(updates, tiempo de espera_ms: @timeout_ms) ) end |