Clase: Mongo::Crypt::ExplicitEncryptionContext Privado

Hereda:
Context
  • Objeto
Mostrar todo
Definido en:
lib/mongo/crypt/explicit_encryption_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 objeto Context inicializado para un cifrado explícito

Subclases conocidas directas

ExplicitEncryptionExpressionContext

Resumen del atributo de la instancia

Atributos heredados de Context

#ctx_p

Resumen del método de instancia colapsar

Métodos heredados de Contexto

#bson_mode, #run_state_machine, #estado

Detalles del Constructor

#initialize(mongocrypt, io, doc, options = {}) ⇒ ExplicitEncryptionContext

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.

Nota:

El algoritmo de rango es únicamente experimental. No está destinado para

Nota:

El tipo de consulta "subcadena" es inestable y está sujeto a errores.

Crear un nuevo objeto ExplicitEncryptionContext

Uso público. Cambios importantes.

Parámetros:

  • mongocrypt (Mongo::Crypt::Handle) —

    un Handle que envuelve un objeto mongocrypt_t usado para crear un nuevo mongocrypt_ctx_t

  • io (ClientEncryption::IO) —

    Una instancia de la clase IO que implementa los métodos de entrada/salida de controlador necesarios para ejecutar la máquina de estado

  • doc (BSON::Document) —

    Un documento para encriptar

  • opciones (encriptada) (por defecto a: {})

Opciones Hash (options):

  • :key_id (BSON::Binary) —

    Un objeto BSON::Binary de tipo :uuid que representa el UUID de la clave de datos para utilizar en el cifrado.

  • :key_alt_name (string) —

    El nombre alternativo de la clave de datos que se utilizará para cifrar el valor.

  • algoritmo (string) —

    El algoritmo utilizado para cifrar el valor. Los algoritmos válidos son "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic", "AEAD_AES_256_CBC_HMAC_SHA_512-Random", "Indexed", "Unindexed", "Range" y "String".

  • :contention_factor (Integer | nil) —

    Factor de contención que se aplicará si el algoritmo de cifrado se establece en "Indexado", "Rango" o "Cadena". Si no se especifica, se utiliza el valor predeterminado 0. El factor de contención solo debe establecerse si el algoritmo de cifrado se establece en "Indexado", "Rango" o "Cadena".

  • query_type (String | nil) —

    Tipo de consulta que se aplicará si el algoritmo de cifrado está configurado como "Indexado", "Rango" o "Cadena". Los valores permitidos son "igualdad", "rango", "prefijo", "sufijo" y "subcadena".

  • Opciones de rango (Hash | nil) —

    Especifica las opciones de índice para un campo de Queryable Encryption que admite consultas de "rango". Las opciones permitidas son:

    • :min
    • max:
    • trim_factor
    • escasez
    • La :precisión min, max, trim_factor, sparsity y precisión deben coincidir con los valores definidos en encryptedFields de la colección de destino. Para double y decimal128, min/máx/precisión deben estar todos activados o todos desactivados.
  • :string_opts (Hash | nil) —

    Especifica las opciones de índice para un campo de cifrado consultable que admite consultas de "prefijo", "sufijo" o "subcadena" (algoritmo "String"). Las opciones permitidas son:

    • :distingue mayúsculas y minúsculas
    • :diacritic_sensitive
    • :prefix (Hash con :str_min_query_length, :str_max_query_length)
    • :suffix (Hash con :str_min_query_length, :str_max_query_length)
    • :substring (Hash con :str_max_length, :str_min_query_length, :str_max_query_length) Las opciones deben coincidir con los valores establecidos en encryptedFields de la colección de destino.

Aumenta:



79
80
81
82
83
84
# Archivo 'lib/mongo/crypt/explicit_encryption_context.rb', línea 79

def inicializar(mongocrypt, io, doc, opciones = {})
  super(mongocrypt, io)
  set_key_opts(opciones)
  set_algorithm_opts(opciones)
  init(doc)
end

Detalles del método de instancia

#init(doc) ⇒ objeto

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.



86
87
88
# Archivo 'lib/mongo/crypt/explicit_encryption_context.rb', línea 86

def init(doc)
  Vinculante.ctx_explicit_encrypt_init(sí mismo, doc)
end