Clase: Mongo::Crypt::Handle Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Crypt::Manejador
- Definido en:
- lib/mongo/crypt/handle.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 identificador para la biblioteca libmongocrypt que envuelve un objeto mongocrypt_t, lo que permite a los clientes establecer opciones en ese objeto o realizar operaciones como cifrado y descifrado
Colapso delresumen de atributos de instancia
- #kms_providers ⇒ Objeto solo lectura privada
Colapso del resumen del método de instancia
- #¿crypt_shared_lib_available? ⇒ Booleano privada
- #crypt_shared_lib_version ⇒ Objeto privada
-
#initialize(kms_providers, kms_tls_options, options = {}) ⇒ Handle
constructor
privada
Crea un nuevo objeto Handle y lo inicializa con las opciones.
-
#kms_tls_options(proveedor) ⇒ Hash
privada
Devolver opciones TLS para el proveedor KMS.
-
#ref ⇒ FFI::Puntero
privada
Devuelve la referencia al objeto @mongocrypt subyacente.
Detalles del constructor
#initialize(kms_providers, kms_tls_options, options = {}) ⇒ Handle
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 Handle y lo inicializa con opciones
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 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 |
# Archivo 'lib/mongo/crypt/handle.rb', línea 67 def inicializar(proveedores de kms, , ={}) # FFI::AutoPointer utiliza una estrategia de liberación personalizada para liberar automáticamente # el puntero una vez que este objeto sale del ámbito @mongocrypt = FFI::Puntero automático.Nuevo( Vinculante.mongocrypt_new, Vinculante.Método(:mongocrypt_destroy) ) Vinculante.kms_ctx_setopt_retry_kms(yo, true) @kms_providers = proveedores de kms @kms_tls_options = tal vez_establecer_mapa_de_esquema() @mapa_de_campos_encriptados = [:mapa de campos cifrados] establecer_mapa_de_campos_encriptados Si @mapa_de_campos_encriptados @bypass_query_analysis = [:análisis de consulta de bypass] análisis de consulta de omisión de conjunto Si @bypass_query_analysis @crypt_shared_lib_path = [:ruta_de_biblioteca_compartida_crypt] @solo cifrado explícito = [:solo cifrado explícito] Si @crypt_shared_lib_path Vinculante.setopt_set_crypt_shared_lib_path_override(yo, @crypt_shared_lib_path) elsif !@bypass_query_analysis && !@solo cifrado explícito Vinculante.ruta de búsqueda de biblioteca compartida setopt_append_crypt(yo, "$SYSTEM") end @logger = [:logger] set_logger_callback Si @logger establecer_ganchos_criptográficos Vinculante.setopt_kms_providers(yo, @kms_providers.al_documento) Si @kms_providers.AWS&.¿vacío? || @kms_providers.gcp&.¿vacío? || @kms_providers.azur&.¿vacío? Vinculante.setopt_use_necesidad_de_estado_de_credenciales_kms(yo) end inicializar_mongocrypt @crypt_shared_lib_required = !![:crypt_shared_lib_required] Si @crypt_shared_lib_required && versión de biblioteca compartida de crypt == 0 propagar Mongo::Error::CryptError.Nuevo( "Serequiere la biblioteca compartida Crypt, pero no se puede cargar según libmongocrypt" ) end end |
Detalles de los atributos de instancia
#kms_providers ⇒ 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.
32 33 34 |
# Archivo 'lib/mongo/crypt/handle.rb', línea 32 def proveedores de kms @kms_providers end |
Detalles del método de instancia
#¿crypt_shared_lib_available? ⇒ 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.
136 137 138 |
# Archivo 'lib/mongo/crypt/handle.rb', línea 136 def ¿Crypt_shared_lib_available? versión de biblioteca compartida de crypt != 0 end |
#crypt_shared_lib_version ⇒ 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.
132 133 134 |
# Archivo 'lib/mongo/crypt/handle.rb', línea 132 def versión de biblioteca compartida de crypt Vinculante.versión de biblioteca compartida de crypt(yo) end |
#kms_tls_options(proveedor) ⇒ Hash
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 las opciones TLS del proveedor KMS. Si no hay opciones TLS definidas, se devuelve un hash vacío.
128 129 130 |
# Archivo 'lib/mongo/crypt/handle.rb', línea 128 def (proveedor) @kms_tls_options.Fetch(proveedor, {}) end |
#ref ⇒ FFI::Puntero
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 la referencia al objeto @mongocrypt subyacente
118 119 120 |
# Archivo 'lib/mongo/crypt/handle.rb', línea 118 def ref @mongocrypt end |