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. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Un contenedor alrededor de mongocrypt_ctx_t, que gestiona la máquina de estados para el cifrado y el descifrado.
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
AutoDecryptionContext, AutoEncryptionContext, DataKeyContext, ExplicitDecryptionContext, ExplicitEncryptionContext, RewrapManyDataKeyContext
Resumen de atributos de la instancia colapsar
- #ctx_p ⇒ Objeto Solo lectura privado
Resumen del método de instancia colapsar
-
#initialize(mongocrypt_handle, io) ⇒ Contexto
constructor
privado
Crea un nuevo objeto Contexto.
-
#run_state_machine(timeout_holder) ⇒ BSON::documento
privado
Ejecuta la máquina de estados mongocrypt_ctx_t y maneja todas las E/S en su nombre.
-
#estado ⇒ Símbolo
privado
Devuelve el estado del 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.
Crea un nuevo objeto Context
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(mongocrypt_handle, io) @mongocrypt_handle = mongocrypt_handle # Idealmente, este nivel de la API no estaría pasando punteros # referencias entre objetos, por lo que la firma de este 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 salga del alcance @ctx_p = FFI::Apuntador automático.Nuevo( Vinculante.mongocrypt_ctx_new(@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 run_state_machine(timeout_holder) mientras true timeout_ms = timeout_holder.¡tiempo de espera restante_ms! caso Estado Cuando Error Vinculante.check_ctx_status(sí mismo) Cuando :ready # Finaliza la máquina de estados y devuelve el resultado como un BSON::Document return Vinculante.ctx_finalizar(sí mismo) Cuando :hecho return nulo Cuando :necesito llaves mongo provide_keys(timeout_ms) Cuando :need_mongo_collinfo provide_collection_info(timeout_ms) Cuando :need_mongo_markings proveer_marcaciones(timeout_ms) Cuando :need_kms feed_kms Cuando :need_kms_credentials Vinculante.ctx_provide_kms_providers( sí mismo, retrieve_kms_credentials(timeout_holder).to_document ) else propagar Error::CryptError.Nuevo( "Estado #{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 |