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. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada 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::Cliente. Los objetos de cliente con el mismo hash de 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 por defecto para la opción :extra_options
opciones::Redactado.Nuevo({ mongocryptd_uri: 'mongodb://localhost:27020', mongocryptd_bypass_spawn: false, mongocryptd_spawn_path: 'mongocryptd', argumentos de spawn de mongocryptd: ['--idleShutdownTimeoutSecs=60'], })
Resumen de atributos de la instancia colapsar
- #key_vault_client ⇒ Objeto Solo lectura privado
- #metadata_client ⇒ Object Solo lectura privado
- #mongocryptd_client ⇒ Objeto Solo lectura privado
- #opciones ⇒ Objeto Solo lectura privado
Resumen del método de instancia colapsar
-
#cerrar ⇒ verdadero
privado
Cierra los recursos creados por el AutoEncrypter.
-
#decrypt(command, timeout_holder) ⇒ BSON::Document
privado
Descifrar un comando de base de datos.
-
#encrypt(database_name, command, timeout_holder) ⇒ BSON::Document
privado
Encripta un comando de base de datos.
-
#¿encriptar? ⇒ Booleano
privado
Si este encriptador debe realizar el cifrado (devuelve falso si la opción :bypass_auto_encryption está configurada en verdadero).
-
#inicializar(opciones) ⇒ AutoEncrypter
constructor
privado
Configura 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.
Configure las opciones relacionadas con el cifrado y las variables de instancia en la clase que incluya este módulo. Llama al mismo método del 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! # Nota que esta llamada podría eventualmente, a través de otras invocaciones de métodos, # crear clientes adicionales que deban limpiarse. @options = ().freeze @crypt_handle = Cripta::Manejar.Nuevo( Cripta::KMS::credenciales.Nuevo(@options[:proveedores_de_kms]), Cripta::KMS::validación.(@options[:kms_tls_opciones]), mapa_de_esquema: @options[:mapa_de_esquema], schema_map_path: @options[:schema_map_path], mapa de campos cifrados: @options[mapa_de_campos_cifrados], bypass_query_analysis: @options[:omitir_análisis_de_consultas], crypt_shared_lib_path: @options[:extra_options][crypt_shared_lib_path], crypt_shared_lib_required: @options[:extra_options][:crypt_shared_lib_requiere], ) @mongocryptd_options = @options[:extra_options].rebanada( mongocryptd_uri, :mongocryptd_bypass_spawn, ruta_de_ejecucion_mongocryptd, argumentos_mongocryptd_spawn ) @mongocryptd_options[:mongocryptd_bypass_spawn] = @options[:omitir_auto_encriptación] || @options[:extra_options][:mongocryptd_bypass_spawn] || @crypt_handle.¿Crypt_shared_lib_available? || @options[:extra_options][:crypt_shared_lib_requiere] a menos que @options[:extra_options][:crypt_shared_lib_requiere] || @crypt_handle.¿Crypt_shared_lib_available? || @options[:omitir_análisis_de_consultas] @mongocryptd_client = Cliente.Nuevo( @options[:extra_options][mongocryptd_uri], monitoring_io: @options[cliente].[:monitoring_io], populator_io: @options[cliente].[:populator_io], server_selection_timeout: 10, database: @options[cliente].[:database] ) end begin @encryption_io = EncryptionIO.Nuevo( cliente: @options[cliente], mongocryptd_client: @mongocryptd_client, key_vault_namespace: @options[:key_vault_namespace], key_vault_client: @key_vault_client, metadata_client: @metadata_client, opciones de mongocryptd: @mongocryptd_options ) rescate begin @mongocryptd_client&.Cerrar rescate => e advertencia de registro("Error al cerrar el cliente mongocryptd en el constructor del encriptador automático: #{e.class}: #{e}") # Descarta 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}") # Descarta 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("Error al cerrar el cliente de metadatos en el constructor del encriptador automático: #{e.clase}: #{e}") # Descarta esta excepción para que se genere la excepción original end end propagar end |
Detalles de los atributos de instancia
#key_vault_client ⇒ Object (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 key_vault_client @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 @options 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.
Cierra los recursos creados por el 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::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.
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 descifrar(Comando, timeout_holder) AutoDecryptionContext.Nuevo( @crypt_handle, @encryption_io, Comando ).run_state_machine(timeout_holder) end |
#encrypt(database_name, command, 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.
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 cifrado(nombre_de_la_base_de_datos, Comando, timeout_holder) AutoEncryptionContext.Nuevo( @crypt_handle, @encryption_io, nombre_de_la_base_de_datos, Comando ).run_state_machine(timeout_holder) end |
#cifrado? ⇒ 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 encriptador debe realizar el cifrado (devuelve falso si la opción :bypass_auto_encryption está configurada en verdadero).
179 180 181 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 179 def cifrado? !@options[:omitir_auto_encriptación] end |