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 AutoEncrypter es un objeto que encapsula el comportamiento del cifrado automático. Controla todos los recursos asociados con el cifrado automático, incluyendo el manejador libmongocrypt, el objeto cliente del almacén de claves, el objeto cliente mongocryptd y la entrada/salida 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.
Resumen de constantes colapsar
- DEFAULT_EXTRA_OPTIONS =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada 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', mongocryptd_spawn_args: [ '--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.
-
#cifrado? ⇒ booleano
privado
Si este encriptador debe realizar el cifrado (devuelve falso si la opción :bypass_auto_encryption está configurada en verdadero).
-
#initialize(options) ⇒ 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 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.
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.
87 88 89 90 91 92 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 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 87 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::gestionar.Nuevo( Cripta::KMS::credenciales.Nuevo(@options[:kms_providers]), Cripta::KMS::validación.(@options[kms_tls_options]), schema_map: @options[Mapa de esquema], schema_map_path: @options[:schema_map_path], encrypted_fields_map: @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], disable_crypt_shared_lib_search: @options[:extra_options][:disable_crypt_shared_lib_search] ) @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, mongocryptd_options: @mongocryptd_options ) rescate StandardError begin @mongocryptd_client&.Cerrar rescate StandardError => e log_warn("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 StandardError si @key_vault_client && @key_vault_client != [cliente] && @key_vault_client.clúster != [cliente].clúster begin @key_vault_client.Cerrar rescate StandardError => e log_warn("Error al cerrar el cliente del almacén de claves en el constructor del auto cifrador: #{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 begin @metadata_client.Cerrar rescate StandardError => e log_warn("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 atributo de instancias
#key_vault_client ⇒ Object (solo lectura)
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.
30 31 32 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 30 def key_vault_client @key_vault_client end |
#metadata_client ⇒ Objeto (solo lectura)
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.
30 31 32 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 30 def @metadata_client end |
#mongocryptd_client ⇒ Objeto (solo lectura)
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.
30 31 32 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 30 def mongocryptd_client @mongocryptd_client end |
#opciones ⇒ Objeto (solo lectura)
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.
30 31 32 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 30 def @options end |
Detalles del método de instancia
#cerrar ⇒ verdadero
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.
Cierra los recursos creados por el AutoEncrypter.
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 208 def Cerrar @mongocryptd_client.Cerrar si @mongocryptd_client si @key_vault_client && @key_vault_client != [cliente] && @key_vault_client.clúster != [cliente].clúster @key_vault_client.Cerrar end si @metadata_client && @metadata_client != [cliente] && @metadata_client.clúster != [cliente].clúster @metadata_client.Cerrar end true end |
#descifrar(comando, timeout_holder) ⇒ BSON::Documento
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.
Descifrar un comando de base de datos.
197 198 199 200 201 202 203 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 197 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 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.
Encripta un comando de base de datos.
183 184 185 186 187 188 189 190 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 183 def cifrado(database_name, Comando, timeout_holder) AutoEncryptionContext.Nuevo( @crypt_handle, @encryption_io, database_name, Comando ).run_state_machine(timeout_holder) end |
#cifrado? ⇒ booleano
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.
Si este encriptador debe realizar el cifrado (devuelve falso si la opción :bypass_auto_encryption está configurada en verdadero).
172 173 174 |
# Archivo 'lib/mongo/crypt/auto_encrypter.rb', línea 172 def cifrado? !@options[:omitir_auto_encriptación] end |