Clase: Mongo::Crypt::Context Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Crypt::Context
- Ampliado por:
- Reenviable
- Definido en:
- lib/mongo/crypt/context.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 contenedor alrededor de mongocrypt_ctx_t, que administra la máquina de estados para el cifrado y la descripción.
Esta clase es una superclase que define métodos compartidos entre contextos que se inicializan para diferentes propósitos (por ejemplo, creación de claves de datos, cifrado, cifrado explícito, etc.)
Subclases conocidas directas
Contexto dedescifrado automático, Contexto de cifrado automático, Contexto de clavede datos, Contexto dedescifrado explícito, Contexto de cifrado explícito, Contexto de clave dedatos múltiples de reencapsulado
Colapso delresumen de atributos de instancia
- #ctx_p ⇒ Objeto solo lectura privada
Colapso del resumen del método de instancia
-
#inicializar(mongocrypt_handle, io) ⇒ Contexto
constructor
privada
Crea un nuevo objeto Contexto.
-
#máquina_de_estado_de_ejecución(titular_de_tiempo_de_espera) ⇒ BSON::Documento
privada
Ejecuta la máquina de estados mongocrypt_ctx_t y maneja todas las E/S en su nombre.
-
#estado ⇒ Símbolo
privada
Devuelve el estado de mongocrypt_ctx_t.
Detalles del constructor
#inicializar(mongocrypt_handle, io) ⇒ Contexto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Crear un nuevo objeto de contexto
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# Archivo 'lib/mongo/crypt/context.rb', línea 41 def inicializar(identificador de mongocrypt, io) @mongocrypt_handle = identificador de mongocrypt # Idealmente, este nivel de la API no estaría pasando punteros # referencias entre objetos, por lo que esta firma del método está sujeta a cambios. # FFI::AutoPointer utiliza una estrategia de liberación personalizada para liberar automáticamente # el puntero una vez que este objeto sale del ámbito @ctx_p = FFI::Puntero automático.Nuevo( Vinculante.mongocrypt_ctx_nuevo(@mongocrypt_handle.ref), Vinculante.Método(:mongocrypt_ctx_destroy) ) @encryption_io = io @cached_azure_token = nulo end |
Detalles de los atributos de instancia
#ctx_p ⇒ 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.
56 57 58 |
# Archivo 'lib/mongo/crypt/context.rb', línea 56 def ctx_p @ctx_p end |
Detalles del método de instancia
#máquina_de_estado_de_ejecución(titular_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.
Ejecuta la máquina de estados mongocrypt_ctx_t y gestiona toda la E/S en nombre de
Este método no se ha probado unitariamente. Se ha probado su integración en spec/integration/explicit_encryption_spec.rb.
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 |
# Archivo 'lib/mongo/crypt/context.rb', línea 80 def máquina de estado de ejecución(timeout_holder) mientras true tiempo de espera_ms = timeout_holder.¡tiempo de espera restante_ms! caso Estado Cuando :error Vinculante.comprobar_estado_ctx(yo) Cuando :listo # Finaliza la máquina de estados y devuelve el resultado como BSON::Document return Vinculante.ctx_finalizar(yo) Cuando :hecho return nulo Cuando :necesito llaves mongo proporcionar_claves(tiempo de espera_ms) Cuando :need_mongo_collinfo proporcionar_información_de_colección(tiempo de espera_ms) Cuando :need_mongo_markings proporcionar_marcas(tiempo de espera_ms) Cuando :necesito_kms feed_kms Cuando :necesito credenciales de kms Vinculante.ctx_provide_kms_providers( yo, retrieve_kms_credentials(timeout_holder).al_documento ) else propagar Error::CryptError.Nuevo( "Elestado #{state} no es compatible con Mongo::Crypt::Context" ) end end end |
#estado ⇒ Símbolo
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 el estado de mongocrypt_ctx_t
61 62 63 |
# Archivo 'lib/mongo/crypt/context.rb', línea 61 def Estado Vinculante.mongocrypt_ctx_state(@ctx_p) end |