Clase: Mongo::Crypt::AutoEncrypter Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Crypt::AutoEncrypter
- Definido en:
- lib/mongo/crypt/auto_encrypter.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 AutoEcnrypter es un objeto que encapsula el comportamiento del cifrado automático. Controla todos los recursos asociados con el cifrado automático, incluyendo el identificador libmongocrypt, el objeto cliente de almacén de claves, el objeto cliente mongocryptd y la E/S de cifrado.
El AutoEncrypter se mantiene como una instancia en un Mongo::Client. Los objetos cliente con el mismo hash auto_encryption_options pueden compartir AutoEncrypters.
Colapso delresumen constante
- OPCIONES ADICIONALES PREDETERMINADAS =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Un hash de valores predeterminados para la opción :extra_options
opciones::Redactado.Nuevo({ mongocryptd_uri: 'mongodb://localhost:27020', Generación de derivación de mongocryptd: false, mongocryptd_spawn_path: 'mongocryptd', argumentos de spawn de mongocryptd: ['--idleShutdownTimeoutSecs=60'], })
Colapso delresumen de atributos de instancia
- #key_vault_client ⇒ Objeto solo lectura privada
- #metadata_client ⇒ Object solo lectura privada
- #mongocryptd_client ⇒ Objeto solo lectura privada
- #opciones ⇒ Objeto solo lectura privada
Colapso del resumen del método de instancia
-
#cerrar ⇒ verdadero
privada
Cerrar los recursos creados por AutoEncrypter.
-
#descifrar(comando, timeout_holder) ⇒ BSON::Documento
privada
Descifrar un comando de base de datos.
-
#cifrar(nombre_de_base_de_datos, comando, contenedor_de_tiempo_de_espera) ⇒ BSON::Documento
privada
Encripta un comando de base de datos.
-
#¿encriptar? ⇒ Booleano
privada
Si este cifrador debe realizar el cifrado (devuelve falso si la opción :bypass_auto_encryption está establecida en verdadero).
-
#inicializar(opciones) ⇒ AutoEncrypter
constructor
privada
Configure las opciones relacionadas con el cifrado y las variables de instancia en la clase que incluye este módulo.
Detalles del constructor
#inicializar(opciones) ⇒ AutoEncrypter
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Configura las opciones de cifrado y las variables de instancia en la clase que incluye este módulo. Llama al mismo método en el módulo Mongo::Crypt::Encrypter.
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 93 def inicializar() Cripta.validate_ffi! # Tenga en cuenta que esta llamada puede eventualmente, a través de otras invocaciones de métodos, # crear clientes adicionales que deben limpiarse. @opciones = ().freeze @crypt_handle = Cripta::Manejar.Nuevo( Cripta::KMS::Credenciales.Nuevo(@opciones[:proveedores_de_kms]), Cripta::KMS::Validaciones.(@opciones[:kms_tls_opciones]), mapa_de_esquema: @opciones[:mapa_de_esquema], schema_map_path: @opciones[:ruta_del_mapa_del_esquema], mapa de campos cifrados: @opciones[:mapa de campos cifrados], análisis de consulta de derivación: @opciones[:análisis de consulta de bypass], ruta_de_biblioteca_compartida_de_cripta: @opciones[:extra_options][:ruta_de_biblioteca_compartida_crypt], biblioteca compartida de cifrado requerida: @opciones[:extra_options][:crypt_shared_lib_required], ) @mongocryptd_options = @opciones[:extra_options].segmento( :mongocryptd_uri, :mongocryptd_bypass_spawn, :ruta_de_generación_de_mongocryptd, :argumentos de generación de mongocryptd ) @mongocryptd_options[:mongocryptd_bypass_spawn] = @opciones[:omitir_cifrado_automático] || @opciones[:extra_options][:mongocryptd_bypass_spawn] || @crypt_handle.¿Crypt_shared_lib_available? || @opciones[:extra_options][:crypt_shared_lib_required] a no ser que @opciones[:extra_options][:crypt_shared_lib_required] || @crypt_handle.¿Crypt_shared_lib_available? || @opciones[:análisis de consulta de bypass] @mongocryptd_client = Cliente.Nuevo( @opciones[:extra_options][:mongocryptd_uri], monitoring_io: @opciones[:cliente].[:monitoring_io], populator_io: @opciones[:cliente].[:populator_io], server_selection_timeout: 10, database: @opciones[:cliente].[:database] ) end begin @encryption_io = EncryptionIO.Nuevo( cliente: @opciones[:cliente], mongocryptd_client: @mongocryptd_client, key_vault_namespace: @opciones[:key_vault_namespace], cliente de bóveda de claves: @key_vault_client, metadata_client: @metadata_client, opciones de mongocryptd: @mongocryptd_options ) rescate begin @mongocryptd_client&.cerrar rescate => e advertencia de registro("Erroral cerrar el cliente mongocryptd en el constructor del cifrador automático: #{e.class}: #{e}") # Elimine esta excepción para que se genere la excepción original end propagar end rescate Si @key_vault_client && @key_vault_client != [:cliente] && @key_vault_client.clúster != [:cliente].clúster entonces begin @key_vault_client.cerrar rescate => e advertencia de registro("Erroral cerrar el cliente del almacén de claves en el constructor del cifrador automático: #{e.class}: #{e}") # Elimine esta excepción para que se genere la excepción original end end Si @metadata_client && @metadata_client != [:cliente] && @metadata_client.clúster != [:cliente].clúster entonces begin @metadata_client.cerrar rescate => e advertencia de registro("Erroral cerrar el cliente de metadatos en el constructor del cifrador automático: #{e.class}: #{e}") # Elimine esta excepción para que se genere la excepción original end end propagar end |
Detalles de los atributos de instancia
#key_vault_client ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
34 35 36 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 34 def cliente de bóveda de claves @key_vault_client end |
#metadata_client ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
35 36 37 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 35 def @metadata_client end |
#mongocryptd_client ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
33 34 35 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 33 def mongocryptd_client @mongocryptd_client end |
#opciones ⇒ Objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
36 37 38 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 36 def @opciones end |
Detalles del método de instancia
#cerrar ⇒ verdadero
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Cerrar los recursos creados por AutoEncrypter.
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 215 def cerrar @mongocryptd_client.cerrar Si @mongocryptd_client Si @key_vault_client && @key_vault_client != [:cliente] && @key_vault_client.clúster != [:cliente].clúster entonces @key_vault_client.cerrar end Si @metadata_client && @metadata_client != [:cliente] && @metadata_client.clúster != [:cliente].clúster entonces @metadata_client.cerrar end true end |
#descifrar(comando, timeout_holder) ⇒ BSON::Document
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Descifrar un comando de base de datos.
204 205 206 207 208 209 210 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 204 def desencriptar(Comando, timeout_holder) AutoDecryptionContext.Nuevo( @crypt_handle, @encryption_io, Comando ).máquina de estado de ejecución(timeout_holder) end |
#cifrar(nombre_de_base_de_datos, comando, contenedor_de_tiempo_de_espera) ⇒ BSON::Documento
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Encripta un comando de base de datos.
190 191 192 193 194 195 196 197 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 190 def cifrar(nombre_de_la_base_de_datos, Comando, timeout_holder) AutoEncryptionContext.Nuevo( @crypt_handle, @encryption_io, nombre_de_la_base_de_datos, Comando ).máquina de estado de ejecución(timeout_holder) end |
#¿encriptar? ⇒ Booleano
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Si este cifrador debe realizar el cifrado (devuelve falso si la opción :bypass_auto_encryption está establecida en verdadero).
179 180 181 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 179 def ¿cifrar? !@opciones[:omitir_cifrado_automático] end |