Class: Mongo::Crypt::Binding Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
FFI::librería
Definido en:
lib/mongo/crypt/binding.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 enlace de Ruby para la librería C libmongocrypt

Resumen de constantes colapsar

MIN_LIBMONGOCRYPT_VERSION =

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.

Versión mínima de libmongocrypt requerida por esta versión del controlador. Un intento de usar el controlador con cualquier versión anterior de libmongocrypt provocará un LoadError.

Gem::Versión.Nuevo('1.12.0')

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Detalles del método de clase

.check_ctx_status(context) ⇒ nil

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.

Levanta un Mongo::Error::CryptError según el estado del objeto mongocrypt_ctx_t subyacente.

Devuelve:

  • (nil)

    Siempre nulo.



1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
# Archivo 'lib/mongo/crypt/binding.rb', línea 1893

def sí mismo.check_ctx_status(context)
  do_raise = si ¿block_given?
               !rendimiento
             else
               true
             end

  return a menos que do_raise

  Estado = Estado.Nuevo

  mongocrypt_ctx_status(context.ctx_p, Estado.ref)
  Estado.raise_crypt_error
end

.check_kms_ctx_status(kms_context) ⇒ Object

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 el bloque proporcionado devuelve falso, genera un error CryptError con la información de estado del objeto KmsContext proporcionado.

Parámetros:

Aumenta:



1106
1107
1108
1109
1110
# Archivo 'lib/mongo/crypt/binding.rb', línea 1106

def sí mismo.check_kms_ctx_status(kms_context)
  return si rendimiento

  kms_ctx_status(kms_context).raise_crypt_error(KMS: true)
end

.check_status(gestionar) ⇒ nil

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.

Genera una excepción Mongo::Error::CryptError en función del estado del objeto subyacente mongocrypt_t.

Devuelve:

  • (nil)

    Siempre nulo.



1880
1881
1882
1883
1884
1885
1886
1887
# Archivo 'lib/mongo/crypt/binding.rb', línea 1880

def sí mismo.check_status(gestionar)
  return si rendimiento

  Estado = Estado.Nuevo

  mongocrypt_status(gestionar.ref, Estado.ref)
  Estado.raise_crypt_error
end

.crypt_shared_lib_version(handle) ⇒ Integer

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.

Obtenga una constante de 64bits que codifique la versión de la librería crypt_shared cargada, si está disponible.

La versión se codifica como cuatro números de 16bits, de mayor a menor:

  • Versión principal
  • Versión menor
  • Revisión
  • reservado

Por ejemplo, la versión 6.2.1 se codificaría como: 0x0006'0002'0001'0000

Parámetros:

Devuelve:

  • (Número entero)

    Un número de versión codificado en 64bits, con la versión codificada como cuatro enteros de dieciséis bits, o cero si no se cargó ninguna librería crypt_shared.



1619
1620
1621
# Archivo 'lib/mongo/crypt/binding.rb', línea 1619

def sí mismo.crypt_shared_lib_version(gestionar)
  mongocrypt_crypt_shared_lib_version(gestionar.ref)
end

.ctx_datakey_init(contexto) ⇒ 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.

Inicializa el Contexto para crear una clave de datos

Parámetros:

Aumenta:



623
624
625
626
627
# Archivo 'lib/mongo/crypt/binding.rb', línea 623

def sí mismo.ctx_datakey_init(context)
  check_ctx_status(context) hacer
    mongocrypt_ctx_datakey_init(context.ctx_p)
  end
end

.ctx_decrypt_init(contexto, comando) ⇒ 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.

Inicializar el contexto para la autodecifrado

Parámetros:

Aumenta:



784
785
786
787
788
789
790
791
792
# Archivo 'lib/mongo/crypt/binding.rb', línea 784

def sí mismo.ctx_decrypt_init(context, Comando)
  validate_document(Comando)
  Datos = Comando.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_decrypt_init(context.ctx_p, data_p)
    end
  end
end

.ctx_encrypt_init(contexto, db_name, command) ⟹ 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.

Inicializar el contexto para el auto-cifrado

Parámetros:

  • context (Mongo::Crypt::Context)
  • db_name (string)

    El nombre de la base de datos contra la que se está realizando el comando cifrado.

  • Comando (encriptada)

    El comando a cifrar

Aumenta:



690
691
692
693
694
695
696
697
698
# Archivo 'lib/mongo/crypt/binding.rb', línea 690

def sí mismo.ctx_encrypt_init(context, db_name, Comando)
  validate_document(Comando)
  Datos = Comando.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_encrypt_init(context.ctx_p, db_name, -1, data_p)
    end
  end
end

.ctx_explicit_decrypt_init(context, doc) ⇒ Object

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.

Inicializar el contexto para el descifrado explícito

Parámetros:

Aumenta:



814
815
816
817
818
819
820
821
822
# Archivo 'lib/mongo/crypt/binding.rb', línea 814

def sí mismo.ctx_explicit_decrypt_init(context, doc)
  validate_document(doc)
  Datos = doc.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_explicit_decrypt_init(context.ctx_p, data_p)
    end
  end
end

.ctx_explicit_encrypt_expression_init(context, doc) ⇒ Object

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.

Inicializa el Contexto para el cifrado explícito de expresiones.

Parámetros:

Aumenta:



758
759
760
761
762
763
764
765
766
# Archivo 'lib/mongo/crypt/binding.rb', línea 758

def sí mismo.ctx_explicit_encrypt_expression_init(context, doc)
  validate_document(doc)
  Datos = doc.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_explicit_encrypt_expression_init(context.ctx_p, data_p)
    end
  end
end

.ctx_explicit_encrypt_init(context, doc) ⇒ Object

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.

Inicializar el Contexto para cifrado explícito

Parámetros:

Aumenta:



724
725
726
727
728
729
730
731
732
# Archivo 'lib/mongo/crypt/binding.rb', línea 724

def sí mismo.ctx_explicit_encrypt_init(context, doc)
  validate_document(doc)
  Datos = doc.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_explicit_encrypt_init(context.ctx_p, data_p)
    end
  end
end

.ctx_finalize(contexto) ⇒ 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.

Finaliza la máquina de estados representada por el Contexto

Parámetros:

Aumenta:



1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
# Archivo 'lib/mongo/crypt/binding.rb', línea 1217

def sí mismo.ctx_finalize(context)
  Binario = Binario.Nuevo

  check_ctx_status(context) hacer
    mongocrypt_ctx_finalize(context.ctx_p, Binario.ref)
  end

  # TODO: dado que el binario hace referencia a un puntero C, y ByteBuffer es
  # escrito en C en MRI, podríamos omitir una copia de los datos al hacer
  # ByteBuffer hace referencia a la string que es propiedad de libmongocrypt.
  BSON::Documento.from_bson(BSON::ByteBuffer.Nuevo(Binario.to_s), moda: context.bson_mode)
end

.ctx_kms_done(context) ⇒ Object

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.

Indique a libmongocrypt que no recibirá más respuestas de KMS.

Parámetros:

Aumenta:



1194
1195
1196
1197
1198
# Archivo 'lib/mongo/crypt/binding.rb', línea 1194

def sí mismo.ctx_kms_done(context)
  check_ctx_status(context) hacer
    mongocrypt_ctx_kms_done(context.ctx_p)
  end
end

.ctx_mongo_db(context) ⇒ String

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.

Obtener el nombre de la base de datos para la operación collinfo actual.

Parámetros:

Devuelve:

  • (string)

    El nombre de la base de datos.



1720
1721
1722
1723
1724
1725
# Archivo 'lib/mongo/crypt/binding.rb', línea 1720

def sí mismo.ctx_mongo_db(context)
  db_name = mongocrypt_ctx_mongo_db(context.ctx_p)
  return db_name si db_name

  check_ctx_status(context)
end

.ctx_mongo_feed(contexto, 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.

Alimenta una respuesta del driver de regreso a libmongocrypt

Parámetros:

Aumenta:



896
897
898
899
900
901
902
903
904
# Archivo 'lib/mongo/crypt/binding.rb', línea 896

def sí mismo.ctx_mongo_feed(context, doc)
  validate_document(doc)
  Datos = doc.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_mongo_feed(context.ctx_p, data_p)
    end
  end
end

.ctx_mongo_op(context) ⇒ 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.

Devuelve un BSON::Document que representa una operación que el driver debe realizar en nombre de libmongocrypt para obtener la información que necesita para continuar con el cifrado/descifrado (por ejemplo, un filtro para una query en el key vault).

Parámetros:

Devuelve:

  • (BSON::Document)

    La operación que debe realizar el driver

Aumenta:

  • (Mongo::Crypt)

    Si hay un error al obtener la operación



867
868
869
870
871
872
873
874
875
876
877
878
# Archivo 'lib/mongo/crypt/binding.rb', línea 867

def sí mismo.ctx_mongo_op(context)
  Binario = Binario.Nuevo

  check_ctx_status(context) hacer
    mongocrypt_ctx_mongo_op(context.ctx_p, Binario.ref)
  end

  # TODO: dado que el binario hace referencia a un puntero C, y ByteBuffer es
  # escrito en C en MRI, podríamos omitir una copia de los datos al hacer
  # ByteBuffer hace referencia a la string que es propiedad de libmongocrypt.
  BSON::Documento.from_bson(BSON::ByteBuffer.Nuevo(Binario.to_s), moda: bson)
end

.ctx_next_kms_ctx(context) ⇒ Mongo::Crypt::KmsContext | nil

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.

Devuelve un nuevo objeto KmsContext necesario para un objeto Context.

Parámetros:

Devuelve:

  • (Mongo::Crypt::KmsContext | nil)

    El KmsContext necesario para obtener una clave maestra de AWS o nulo, si no se necesita ningún KmsContext



928
929
930
931
932
933
934
935
936
# Archivo 'lib/mongo/crypt/binding.rb', línea 928

def sí mismo.ctx_next_kms_ctx(context)
  kms_ctx_p = mongocrypt_ctx_next_kms_ctx(context.ctx_p)

  si kms_ctx_p.nulo?
    nulo
  else
    KmsContext.Nuevo(kms_ctx_p)
  end
end

.ctx_provide_kms_providers(context, kms_providers) ⇒ 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.

Llame en respuesta al estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS para establecer la configuración del proveedor KMS por contexto. Estos siguen el mismo formato que `mongocrypt_setopt_kms_providers``. Si no hay claves presentes en la entrada BSON, se usan la configuración del proveedor KMS configuradas para el mongocrypt_t durante la inicialización.

Parámetros:

  • context (Mongo::Crypt::Context)

    Contexto de cifrado.

  • kms_providers (BSON::Document)

    Documento BSON que mapea los nombres de los proveedores KMS a las credenciales.

Aumenta:



1759
1760
1761
1762
1763
1764
1765
1766
1767
# Archivo 'lib/mongo/crypt/binding.rb', línea 1759

def sí mismo.ctx_provide_kms_providers(context, kms_providers)
  validate_document(kms_providers)
  Datos = kms_providers.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_provide_kms_providers(context.ctx_p, data_p)
    end
  end
end

.ctx_rewrap_many_datakey_init(contexto, filtro) ⇒ 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.

Inicialice un contexto para volver a aplicar claves de datos.

Parámetros:

  • context (Mongo::Crypt::Context)
  • filtro (BSON::Document)

    Documento BSON que representa el filtro a usar para el comando find en la Colección de Bóvedas de Llaves para recuperar datakeys que se van a reenvolver.

Devuelve:

  • (booleano)

    Si la inicialización fue exitosa.



654
655
656
657
658
659
660
661
# Archivo 'lib/mongo/crypt/binding.rb', línea 654

def sí mismo.ctx_rewrap_many_datakey_init(context, filtro)
  filter_data = filtro.to_bson.to_s
  Binario.wrap_string(filter_data) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_rewrap_many_datakey_init(context.ctx_p, data_p)
    end
  end
end

.ctx_setopt_algorithm(context, name) ⇒ Object

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.

Configurar el algoritmo en el contexto

Parámetros:

  • context (Mongo::Crypt::Context)
  • Nombre (string)

    El nombre del algoritmo. Valores válidos:

    • "AEAD_AES_256_CBC_HMAC_SHA_512-Determinista"
    • "AEAD_AES_256_CBC_HMAC_SHA_512-Aleatorio"

Aumenta:



567
568
569
570
571
# Archivo 'lib/mongo/crypt/binding.rb', línea 567

def sí mismo.ctx_setopt_algorithm(context, Nombre)
  check_ctx_status(context) hacer
    mongocrypt_ctx_setopt_algorithm(context.ctx_p, Nombre, -1)
  end
end

.ctx_setopt_algorithm_range(contexto, opciones) ⇒ 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.

Nota:

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

Configuración de opciones para el cifrado explícito con el algoritmo "rango".

uso público.

Parámetros:

Aumenta:



1866
1867
1868
1869
1870
1871
1872
1873
1874
# Archivo 'lib/mongo/crypt/binding.rb', línea 1866

def sí mismo.ctx_setopt_algorithm_range(context, opciones)
  validate_document(opciones)
  Datos = opciones.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_setopt_algorithm_range(context.ctx_p, data_p)
    end
  end
end

.ctx_setopt_contention_factor(contexto, factor) ⇒ 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.

Establece el factor de contención utilizado para el cifrado explícito. El factor de contención solo se utiliza para el cifrado FLE indexado 2.

Parámetros:

  • context (Mongo::Crypt::Context)

    Contexto de cifrado explícito.

  • factor (Número entero)

    Factor de contención utilizado para el cifrado explícito.

Aumenta:



1829
1830
1831
1832
1833
# Archivo 'lib/mongo/crypt/binding.rb', línea 1829

def sí mismo.ctx_setopt_contention_factor(context, factor)
  check_ctx_status(context) hacer
    mongocrypt_ctx_setopt_contention_factor(context.ctx_p, factor)
  end
end

.ctx_setopt_key_alt_names(context, key_alt_names) ⇒ 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.

Establecer varios nombres de clave alternativos en la creación de clave de datos

Parámetros:

  • context (Mongo::Crypt::Context)

    Un DataKeyContext

  • clave_nombres_alternativos (arreglo)

    Un arreglo de nombres de claves alternativos como cadenas

Aumenta:



498
499
500
501
502
503
504
505
506
507
508
# Archivo 'lib/mongo/crypt/binding.rb', línea 498

def sí mismo.ctx_setopt_key_alt_names(context, clave_nombres_alternativos)
  clave_nombres_alternativos.cada hacer |key_alt_name|
    BSON = { keyAltName: key_alt_name }.to_bson.to_s

    Binario.wrap_string(BSON) hacer |key_alt_name_p|
      check_ctx_status(context) hacer
        mongocrypt_ctx_setopt_key_alt_name(context.ctx_p, key_alt_name_p)
      end
    end
  end
end

.ctx_setopt_key_encryption_key(contexto, documento_clave) ⇒ 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.

Establece el documento de clave de cifrado de clave para crear una clave de datos.

Parámetros:

  • context (Mongo::Crypt::Context)
  • Documento clave (BSON::Document)

    Documento BSON que representa el documento llave de cifrado con un campo adicional de "proveedor".

Aumenta:



596
597
598
599
600
601
602
603
604
# Archivo 'lib/mongo/crypt/binding.rb', línea 596

def sí mismo.ctx_setopt_key_encryption_key(context, Documento clave)
  validate_document(Documento clave)
  Datos = Documento clave.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_setopt_key_encryption_key(context.ctx_p, data_p)
    end
  end
end

.ctx_setopt_key_id(context, key_id) ⇒ Object

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.

Establece la opción ID de clave en un contexto de cifrado explícito.

Parámetros:

Aumenta:



465
466
467
468
469
470
471
# Archivo 'lib/mongo/crypt/binding.rb', línea 465

def sí mismo.ctx_setopt_key_id(context, key_id)
  Binario.wrap_string(key_id) hacer |key_id_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_setopt_key_id(context.ctx_p, key_id_p)
    end
  end
end

.ctx_setopt_key_material(contexto, key_material) ⇒ 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.

Establece un material clave personalizado para usar en el cifrado de datos.

Parámetros:

  • context (Mongo::Crypt::Context)

    Un DataKeyContext

  • material de clave (BSON::Binary)

    96 bytes de material clave personalizado

Aumenta:



533
534
535
536
537
538
539
540
# Archivo 'lib/mongo/crypt/binding.rb', línea 533

def sí mismo.ctx_setopt_key_material(context, material de clave)
  Datos = { 'keyMaterial' => material de clave }.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_ctx_status(context) hacer
      mongocrypt_ctx_setopt_key_material(context.ctx_p, data_p)
    end
  end
end

.ctx_setopt_query_type(context, query_type) ⇒ Object

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.

Establece el tipo de query que se utilizará para el cifrado explícito de FLE 2. El tipo de query solo se utiliza para el cifrado FLE indexado 2.

Parámetros:

  • context (Mongo::Crypt::Context)

    Contexto de cifrado explícito.

  • tipo_consulta_mongocrypt (string)

    query_type Tipo de query.

Aumenta:



1797
1798
1799
1800
1801
# Archivo 'lib/mongo/crypt/binding.rb', línea 1797

def sí mismo.ctx_setopt_query_type(context, query_type)
  check_ctx_status(context) hacer
    mongocrypt_ctx_setopt_query_type(context.ctx_p, query_type, -1)
  end
end

get_binary_data_direct(mongocrypt_binary_t) ⇒ 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.



179
180
181
# Archivo 'lib/mongo/crypt/binding.rb', línea 179

def sí mismo.get_binary_data_direct(mongocrypt_binary_t)
  mongocrypt_binary_t.get_pointer(0)
end

.get_binary_len_direct(mongocrypt_binary_t) ⇒ 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.



183
184
185
# Archivo 'lib/mongo/crypt/binding.rb', línea 183

def sí mismo.get_binary_len_direct(mongocrypt_binary_t)
  mongocrypt_binary_t.get_uint32(FFI::NativeType::APUNTADOR.Tamaño)
end

.init(handle) ⇒ 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.

Inicializar el objeto Mongo::Crypt::Handle

Parámetros:

Aumenta:



405
406
407
408
409
# Archivo 'lib/mongo/crypt/binding.rb', línea 405

def sí mismo.init(gestionar)
  check_status(gestionar) hacer
    mongocrypt_init(gestionar.ref)
  end
end

.kms_ctx_bytes_needed(kms_context) ⇒ Integer

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.

Obtener el número de bytes necesarios para el KmsContext.

Parámetros:

Devuelve:

  • (Número entero)

    La cantidad de bytes necesarios



1062
1063
1064
# Archivo 'lib/mongo/crypt/binding.rb', línea 1062

def sí mismo.kms_ctx_bytes_needed(kms_context)
  mongocrypt_kms_ctx_bytes_needed(kms_context.kms_ctx_p)
end

.kms_ctx_endpoint(kms_context) ⇒ String | nil

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.

Obtén el nombre del host con el cual conectarse a través de TLS para obtener información sobre la clave maestra de AWS.

Parámetros:

Devuelve:

  • (String | nil)

    El nombre de host, o nil si no existe ninguno

Aumenta:



1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
# Archivo 'lib/mongo/crypt/binding.rb', línea 1038

def sí mismo.kms_ctx_endpoint(kms_context)
  ptr = FFI::MemoryPointer.Nuevo(puntero, 1)

  check_kms_ctx_status(kms_context) hacer
    mongocrypt_kms_ctx_endpoint(kms_context.kms_ctx_p, ptr)
  end

  str_ptr = ptr.read_pointer
  str_ptr.nulo? ? nulo : str_ptr.read_string.force_encoding('UTF-8')
end

.kms_ctx_fail(kms_context) ⇒ true, false

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.

Compruebe si la última solicitud fallida para el contexto KMS puede volver a intentarse.

Parámetros:

Devuelve:

  • (true, false)

    si se puede volver a intentar la solicitud fallida.



1157
1158
1159
# Archivo 'lib/mongo/crypt/binding.rb', línea 1157

def sí mismo.kms_ctx_fail(kms_context)
  mongocrypt_kms_ctx_fail(kms_context.kms_ctx_p)
end

.kms_ctx_feed(kms_context, bytes) ⇒ Object

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.

Devuelve las respuestas del KMS a libmongocrypt.

Parámetros:

Aumenta:



1082
1083
1084
1085
1086
1087
1088
# Archivo 'lib/mongo/crypt/binding.rb', línea 1082

def sí mismo.kms_ctx_feed(kms_context, bytes)
  check_kms_ctx_status(kms_context) hacer
    Binario.wrap_string(bytes) hacer |bytes_p|
      mongocrypt_kms_ctx_feed(kms_context.kms_ctx_p, bytes_p)
    end
  end
end

.kms_ctx_get_kms_provider(kms_context) ⇒ 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.

Obtén el identificador del proveedor de KMS asociado con esta solicitud de KMS.

Esto se utiliza para configurar de forma condicional las conexiones TLS en función de la solicitud de KMS. Es útil para KMIP, que se autentica con un certificado de cliente.

Parámetros:

  • KMS (FFI::Pointer)

    Objeto Pointer mongocrypt_kms_ctx_t.



969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
# Archivo 'lib/mongo/crypt/binding.rb', línea 969

def sí mismo.kms_ctx_get_kms_provider(kms_context)
  len_ptr = FFI::MemoryPointer.Nuevo(:uint32, 1)
  Proveedor = mongocrypt_kms_ctx_get_kms_provider(
    kms_context.kms_ctx_p,
    len_ptr
  )
  si len_ptr.nil?
    nulo
  else
    len = si BSON::Entorno.jruby?
            # La implementación de FFI de JRuby no tiene el método `read(type)`, pero sí
            # tiene este `get_uint32`.
            len_ptr.get_uint32
          else
            # Para MRI usamos un método documentado `read` - https://www.rubydoc.info/github/ffi/ffi/FFI%2FPointer:read
            len_ptr.Lea(:uint32)
          end
    Proveedor.read_string(len).to_sym
  end
end

.kms_ctx_message(kms_context) ⇒ String

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.

Obtenga el mensaje HTTP necesario para obtener la clave maestra de AWS KMS de un objeto KmsContext.

Parámetros:

Devuelve:

  • (string)

    The HTTP message

Aumenta:



1009
1010
1011
1012
1013
1014
1015
1016
1017
# Archivo 'lib/mongo/crypt/binding.rb', línea 1009

def sí mismo.kms_ctx_message(kms_context)
  Binario = Binario.Nuevo

  check_kms_ctx_status(kms_context) hacer
    mongocrypt_kms_ctx_message(kms_context.kms_ctx_p, Binario.ref)
  end

  Binario.to_s
end

.kms_ctx_setopt_retry_kms(handle, value) ⇒ true, fale

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.

Habilitar o deshabilitar el comportamiento de reintento de KMS.

Parámetros:

Devuelve:

  • (true, fale)

    verdadero si la opción se estableció, de lo contrario, falso.



1176
1177
1178
# Archivo 'lib/mongo/crypt/binding.rb', línea 1176

def sí mismo.kms_ctx_setopt_retry_kms(gestionar, Valor)
  mongocrypt_setopt_retry_kms(gestionar.ref, Valor)
end

.kms_ctx_status(kms_context) ⇒ Mongo::Crypt::Status

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.

Lee la información de estado del KmsContext dado en un objeto de estado sin generar.

Parámetros:

Devuelve:



1118
1119
1120
1121
1122
1123
# Archivo 'lib/mongo/crypt/binding.rb', línea 1118

def sí mismo.kms_ctx_status(kms_context)
  Estado = Estado.Nuevo

  mongocrypt_kms_ctx_status(kms_context.kms_ctx_p, Estado.ref)
  Estado
end

.kms_ctx_usleep(kms_context) ⇒ Integer

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.

Devuelve el número de milisegundos que se deben esperar antes de enviar la solicitud de KMS para el contexto de KMS dado.

Parámetros:

Devuelve:

  • (Número entero)

    Un número de microsegundos codificado en 64bits para dormir.



1140
1141
1142
# Archivo 'lib/mongo/crypt/binding.rb', línea 1140

def sí mismo.kms_ctx_usleep(kms_context)
  mongocrypt_kms_ctx_usleep(kms_context.kms_ctx_p)
end

.mongocrypt_binary_data(binary) ⇒ FFI::Pointer

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.

Obtén el puntero a los datos subyacentes para el mongocrypt_binary_t.

Parámetros:

  • Binario (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t.

Devuelve:

  • (FFI::Pointer)

    Un puntero al arreglo de datos.



169
# Archivo 'lib/mongo/crypt/binding.rb', línea 169

attach_function :mongocrypt_binary_data, [ puntero ], puntero

.mongocrypt_binary_destroy(binario) ⇒ nil

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.

Destruye el objeto mongocrypt_binary_t.

Parámetros:

  • Binario (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t.

Devuelve:

  • (nil)

    Siempre nulo.



193
# Archivo 'lib/mongo/crypt/binding.rb', línea 193

attach_function destroy_binary_mongocrypt, [ puntero ], :void

.mongocrypt_binary_len(binario) ⇒ Entero

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.

Obtén la longitud del arreglo de datos subyacente.

Parámetros:

  • Binario (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t.

Devuelve:

  • (Número entero)

    La longitud del arreglo de datos.



177
# Archivo 'lib/mongo/crypt/binding.rb', línea 177

attach_function mongocrypt_binary_len, [ puntero ], :int

.mongocrypt_binary_newFFI::Pointer

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.

Crea un nuevo objeto mongocrypt_binary_t (una vista no propietaria de un arreglo de bytes).

Devuelve:

  • (FFI::Pointer)

    Un puntero al objeto mongocrypt_binary_t recién creado.



145
# Archivo 'lib/mongo/crypt/binding.rb', línea 145

attach_function mongocrypt_binary_new, [], puntero

.mongocrypt_binary_new_from_data(data, len) ⇒ FFI::Pointer

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.

Crea un nuevo objeto mongocrypt_binary_t que mantenga un puntero al arreglo de bytes especificado.

Parámetros:

  • Datos (FFI::Pointer)

    Un puntero a un arreglo de bytes; los datos no se copian y deben sobrevivir al objeto mongocrypt_binary_t.

  • len (Número entero)

    La longitud del argumento del arreglo.

Devuelve:

  • (FFI::Pointer)

    Un puntero al objeto mongocrypt_binary_t recién creado.



157
158
159
160
161
# Archivo 'lib/mongo/crypt/binding.rb', línea 157

attach_function(
  mongocrypt_binary_new_from_data,
  %i[puntero Int],
  puntero
)

.mongocrypt_crypt_shared_lib_version(crypt) ⇒ 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.



1597
1598
1599
1600
1601
# Archivo 'lib/mongo/crypt/binding.rb', línea 1597

attach_function(
  :mongocrypt_crypt_shared_lib_version,
  [ puntero ],
  :uint64
)

.mongocrypt_ctx_datakey_init(ctx, filter) ⇒ 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.



616
# Archivo 'lib/mongo/crypt/binding.rb', línea 616

attach_function :mongocrypt_ctx_datakey_init, [ puntero ], :bool

.mongocrypt_ctx_decrypt_init(ctx, doc) ⇒ Boolean

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.

Inicializa el ctx para la descifrado automático.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • doc (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al documento a descifrar como una string binaria BSON.

Devuelve:

  • (booleano)

    Si la inicialización fue exitosa.



776
# Archivo 'lib/mongo/crypt/binding.rb', línea 776

attach_function mongocrypt_ctx_decrypt_init, %i[puntero puntero], :bool

.mongocrypt_ctx_destroy(ctx) ⇒ nil

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.

Destruye la referencia al objeto mongocrypt_ctx_t.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (nil)

    Siempre nulo.



1236
# Archivo 'lib/mongo/crypt/binding.rb', línea 1236

attach_function :mongocrypt_ctx_destroy, [ puntero ], :void

.mongocrypt_ctx_encrypt_init(ctx, db, db_len, cmd) ⇒ Boolean

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:

Este método espera que el BSON pasado esté en el formato: { "v": BSON valor a descifrar }.

Inicializa el ctx para el cifrado automático.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • db (string)

    El nombre de la base de datos.

  • db_len (Número entero)

    La longitud del argumento del nombre de la base de datos (o -1 para una string terminada en nulo).

  • cmd (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al comando de la base de datos como una string binaria.

Devuelve:

  • (booleano)

    Si la inicialización fue exitosa.



676
677
678
679
680
# Archivo 'lib/mongo/crypt/binding.rb', línea 676

attach_function(
  :mongocrypt_ctx_encrypt_init,
  %i[puntero string Int puntero],
  :bool
)

.mongocrypt_ctx_explicit_decrypt_init(ctx, msg) ⇒ Boolean

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.

Inicializa el ctx para una descifrado explícito.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • msg (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que referencia el mensaje a descifrar como una string binaria BSON.

Devuelve:

  • (booleano)

    Si la inicialización fue exitosa.



802
803
804
805
806
# Archivo 'lib/mongo/crypt/binding.rb', línea 802

attach_function(
  mongocrypt_ctx_explicit_decrypt_init,
  %i[puntero puntero],
  :bool
)

.mongocrypt_ctx_explicit_encrypt_init(ctx, msg) ⇒ Boolean

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:

Antes de llamar a este método, debe ser configurar un key_id, key_alt_name (opcional) y un algoritmo de cifrado utilizando los siguientes métodos: mongocrypt_ctx_setopt_key_id, mongocrypt_ctx_setopt_key_alt_name y mongocrypt_ctx_setopt_algorithm.

Inicializa el ctx para el cifrado explícito de expresiones.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • msg (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al mensaje que se va a cifrar como una string binaria.

Devuelve:

  • (booleano)

    Si la inicialización fue exitosa.



712
713
714
715
716
# Archivo 'lib/mongo/crypt/binding.rb', línea 712

attach_function(
  :mongocrypt_ctx_explicit_encrypt_init,
  %i[puntero puntero],
  :bool
)

.mongocrypt_ctx_finalize(ctx, op_bson) ⇒ 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.

Realice el cifrado o descifrado final y devuelva un documento BSON.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • op_bson (FFI::Pointer)

    (parámetro de salida) Un puntero a un objeto mongocrypt_binary_t que tendrá una referencia al documento BSON cifrado final.

Devuelve:

  • (booleano)

    Un valor booleano que indica el éxito de la operación.



1209
# Archivo 'lib/mongo/crypt/binding.rb', línea 1209

attach_function :mongocrypt_ctx_finalize, %i[puntero puntero], :void

.mongocrypt_ctx_mongo_db(ctx) ⇒ Object

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.



1714
# Archivo 'lib/mongo/crypt/binding.rb', línea 1714

attach_function :mongocrypt_ctx_mongo_db, [ puntero ], cadena

.mongocrypt_ctx_mongo_done(ctx) ⇒ Boolean

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.

Indique a libmongocrypt que el driver terminó de enviar respuestas.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (booleano)

    Un valor booleano que indica el éxito de la operación.



912
# Archivo 'lib/mongo/crypt/binding.rb', línea 912

attach_function :mongocrypt_ctx_mongo_done, [ puntero ], :bool

.mongocrypt_ctx_mongo_feed(ctx, reply) ⇒ 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.

Inyecta una respuesta BSON a libmongocrypt.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • respuesta (FFI::Pointer)

    Un objeto mongocrypt_binary_t que hace referencia a la respuesta BSON para alimentar a libmongocrypt.

Devuelve:

  • (booleano)

    Un valor booleano que indica el éxito de la operación.



888
# Archivo 'lib/mongo/crypt/binding.rb', línea 888

attach_function mongo_feed_ctx_mongocrypt, %i[puntero puntero], :bool

.mongocrypt_ctx_mongo_next_kms_ctx(ctx) ⇒ FFI::Pointer

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.

Devuelve un puntero a un objeto mongocrypt_kms_ctx_t o NULL.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (FFI::Pointer)

    Un apuntador a un objeto mongocrypt_kms_ctx_t.



920
# Archivo 'lib/mongo/crypt/binding.rb', línea 920

attach_function :mongocrypt_ctx_next_kms_ctx, [ puntero ], puntero

.mongocrypt_ctx_mongo_op(ctx, op_bson) ⇒ 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.

Obtén una operación BSON para que el controlador la ejecute en la colección de MongoDB, en la base de datos Key Vault o en mongocryptd.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • op_bson (FFI::Pointer)

    (parametro de salida) Un puntero a un objeto mongocrypt_binary_t que tendrá una referencia a la operación BSON escrita en él por libmongocrypt.

Devuelve:

  • (booleano)

    Un valor booleano que indica el éxito de la operación.



856
# Archivo 'lib/mongo/crypt/binding.rb', línea 856

attach_function :mongocrypt_ctx_mongo_op, %i[puntero puntero], :bool

.mongocrypt_ctx_new(crypt) ⇒ FFI::Pointer

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.

Crea un nuevo objeto mongocrypt_ctx_t (un contenedor para la máquina de estados libmongocrypt).

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

Devuelve:

  • (FFI::Pointer)

    Un nuevo objeto mongocrypt_ctx_t.



436
# Archivo 'lib/mongo/crypt/binding.rb', línea 436

attach_function :mongocrypt_ctx_new, [ puntero ], puntero

.mongocrypt_ctx_provide_kms_providers(ctx, kms_providers) ⇒ Object

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.



1742
1743
1744
1745
1746
# Archivo 'lib/mongo/crypt/binding.rb', línea 1742

attach_function(
  mongocrypt_ctx_provide_kms_providers,
  %i[puntero puntero],
  :bool
)

.mongocrypt_ctx_setopt_algorithm(ctx, algoritmo, len) ⇒ 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.

Nota:

No inicialices ctx antes de llamar a este método.

Establezca el algoritmo utilizado para el cifrado explícito.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • algoritmo (string)

    El nombre del algoritmo. Valores válidos:

    • "AEAD_AES_256_CBC_HMAC_SHA_512-Determinista"
    • "AEAD_AES_256_CBC_HMAC_SHA_512-Aleatorio"
  • len (Número entero)

    La longitud de la string del algoritmo.

Devuelve:

  • (booleano)

    Si la opción se configuró correctamente.



553
554
555
556
557
# Archivo 'lib/mongo/crypt/binding.rb', línea 553

attach_function(
  :mongocrypt_ctx_setopt_algorithm,
  %i[puntero string Int],
  :bool
)

.mongocrypt_ctx_setopt_algorithm_range(ctx, opts) ⇒ Object

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.



1848
1849
1850
1851
1852
1853
1854
1855
# Archivo 'lib/mongo/crypt/binding.rb', línea 1848

attach_function(
  Contexto: :mongocrypt_ctx_setopt_algorithm_range,
  %i[
    puntero
    puntero
  ],
  :bool
)

.mongocrypt_ctx_setopt_contention_factor(ctx, contention_factor) ⇒ 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.



1813
1814
1815
1816
1817
1818
1819
1820
# Archivo 'lib/mongo/crypt/binding.rb', línea 1813

attach_function(
  mongocrypt_ctx_setopt_contention_factor,
  %i[
    puntero
    int64
  ],
  :bool
)

.mongocrypt_ctx_setopt_key_alt_name(ctx, binario) ⇒ 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.

Nota:

No inicialices ctx antes de llamar a este método.

Al crear una clave de datos, establezca un nombre alternativo para esa clave. Cuando se realice cifrado explícito, especificar qué clave de datos se debe utilizar para el cifrado según su campo keyAltName.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • Binario (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia a un documento BSON con el formato { "keyAltName": }.

Devuelve:

  • (booleano)

    Si el nombre alternativo se estableció con éxito.



485
486
487
488
489
# Archivo 'lib/mongo/crypt/binding.rb', línea 485

attach_function(
  set_key(nombre_alternativo),
  %i[puntero puntero],
  :bool
)

.mongocrypt_ctx_setopt_key_encryption_key(ctx) ⇒ 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.

Nota:

No inicialices ctx antes de llamar a este método.

Establece el documento de clave de cifrado de clave para crear una clave de datos.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • cubo (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia a un documento BSON que representa el documento de llave de cifrado con un campo adicional "proveedor".

Devuelve:

  • (booleano)

    Si la opción se configuró correctamente.



583
584
585
586
587
# Archivo 'lib/mongo/crypt/binding.rb', línea 583

attach_function(
  :mongocrypt_ctx_setopt_key_encryption_key,
  %i[puntero puntero],
  :bool
)

.mongocrypt_ctx_setopt_key_id(ctx, key_id) ⇒ Boolean

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:

No inicialices ctx antes de llamar a este método.

Configurá el id de clave que se usará para el cifrado explícito.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • key_id (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que referencia el id de clave de 16bytes.

Devuelve:

  • (booleano)

    Si la opción se configuró correctamente.



457
# Archivo 'lib/mongo/crypt/binding.rb', línea 457

attach_function :mongocrypt_ctx_setopt_key_id, %i[puntero puntero], :bool

.mongocrypt_ctx_setopt_key_material(ctx, binary) ⇒ 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.

Nota:

No inicialices ctx antes de llamar a este método.

Al crear una clave de datos, establezca un material clave personalizado para cifrar datos.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • Binario (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia a la clave de cifrado de datos que se debe utilizar.

Devuelve:

  • (booleano)

    Si el material clave personalizado se estableció con éxito.



520
521
522
523
524
# Archivo 'lib/mongo/crypt/binding.rb', línea 520

attach_function(
  :mongocrypt_ctx_setopt_key_material,
  %i[puntero puntero],
  :bool
)

.mongocrypt_ctx_setopt_query_type(ctx, mongocrypt_query_type) ⇒ 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.



1780
1781
1782
1783
1784
1785
1786
1787
1788
# Archivo 'lib/mongo/crypt/binding.rb', línea 1780

attach_function(
  mongocrypt_ctx_setopt_query_type,
  %i[
    puntero
    string
    Int
  ],
  :bool
)

.mongocrypt_ctx_state(ctx) ⇒ Símbolo

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.

Obtenga el estado actual del ctx.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (Símbolo)

    El estado actual será uno de los valores definidos por la enumeración mongocrypt_ctx_state.



844
# Archivo 'lib/mongo/crypt/binding.rb', línea 844

attach_function mongocrypt_ctx_state, [ puntero ], mongocrypt_ctx_state

.mongocrypt_ctx_status(ctx, status) ⇒ 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.

Establezca la información de estado desde el objeto mongocrypt_ctx_t en el objeto mongocrypt_status_t.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

  • Estado (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t.

Devuelve:

  • (booleano)

    Si el estado se estableció correctamente.



446
# Archivo 'lib/mongo/crypt/binding.rb', línea 446

attach_function :mongocrypt_ctx_status, %i[puntero puntero], :bool

.mongocrypt_destroy(crypt) ⇒ nil

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.

Destruye la referencia del objeto mongocrypt_t.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

Devuelve:

  • (nil)

    Siempre nulo.



427
# Archivo 'lib/mongo/crypt/binding.rb', línea 427

attach_function : mongocrypt_destroy, [ puntero ], :void

.mongocrypt_init(crypt) ⇒ 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.

Inicializa el objeto mongocrypt_t.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

Devuelve:

  • (booleano)

    Devuelve si crypt se inicializó correctamente.



398
# Archivo 'lib/mongo/crypt/binding.rb', línea 398

attach_function mongocrypt_init, [ puntero ], :bool

.mongocrypt_kms_ctx_bytes_needed(kms) ⇒ Integer

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.

Obtenga el número de bytes necesarios para el contexto KMS.

Parámetros:

  • KMS (FFI::Pointer)

    El objeto mongocrypt_kms_ctx_t.

Devuelve:

  • (Número entero)

    El número de bytes necesarios.



1055
# Archivo 'lib/mongo/crypt/binding.rb', línea 1055

attach_function :mongocrypt_kms_ctx_bytes_needed, [ puntero ], :int

.mongocrypt_kms_ctx_done(ctx) ⇒ Boolean

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.

Indique a libmongocrypt que no recibirá más respuestas de los objetos mongocrypt_kms_ctx_t.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (booleano)

    Si la operación fue exitosa.



1187
# Archivo 'lib/mongo/crypt/binding.rb', línea 1187

attach_function :mongocrypt_ctx_kms_done, [ puntero ], :bool

.mongocrypt_kms_ctx_endpoint(kms, endpoint) ⇒ 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.

Obtén el nombre del host con el cual conectarse a través de TLS para obtener información sobre la clave maestra de AWS.

Parámetros:

  • KMS (FFI::Pointer)

    Un apuntador a un objeto mongocrypt_kms_ctx_t.

  • endpoint (FFI::Pointer)

    (parámetro de salida) Un puntero en el que libmongocrypt escribirá la string del endpoint.

Devuelve:

  • (booleano)

    Si la operación fue exitosa.



1028
# Archivo 'lib/mongo/crypt/binding.rb', línea 1028

attach_function Punto final de :mongocrypt_kms_ctx, %i[puntero puntero], :bool

.mongocrypt_kms_ctx_fail(ctx) ⇒ Object

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.



1151
# Archivo 'lib/mongo/crypt/binding.rb', línea 1151

attach_function Falló el contexto KMS de mongocrypt (:mongocrypt_kms_ctx_fail), [ puntero ], :bool

.mongocrypt_kms_ctx_feed(kms, bytes) ⇒ 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.

Devuelve las respuestas del KMS a libmongocrypt.

Parámetros:

  • KMS (FFI::Pointer)

    Un puntero al objeto mongocrypt_kms_ctx_t.

  • bytes (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia a la respuesta del KMS.

Devuelve:

  • (booleano)

    Si la operación fue exitosa.



1074
# Archivo 'lib/mongo/crypt/binding.rb', línea 1074

attach_function :mongocrypt_kms_ctx_feed, %i[puntero puntero], :bool

.mongocrypt_kms_ctx_get_kms_provider(crypt, kms_providers) ⇒ 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.



954
955
956
957
958
# Archivo 'lib/mongo/crypt/binding.rb', línea 954

attach_function(
  mongocrypt_kms_ctx_get_kms_provider,
  %i[puntero puntero],
  puntero
)

.mongocrypt_kms_ctx_message(kms, msg) ⇒ 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.

Obtenga el mensaje necesario para obtener la clave maestra de AWS KMS.

Parámetros:

  • KMS (FFI::Pointer)

    Puntero al objeto mongocrypt_kms_ctx_t

  • msg (FFI::Pointer)

    (outparam) Puntero a un objeto mongocrypt_binary_t en el que libmongocrypt escribirá la ubicación del mensaje.

Devuelve:

  • (booleano)

    Si la operación es exitosa.



999
# Archivo 'lib/mongo/crypt/binding.rb', línea 999

attach_function mensaje_kms_ctx, %i[puntero puntero], :bool

.mongocrypt_kms_ctx_status(kms, status) ⇒ 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.

Escribe información de estado sobre el objeto mongocrypt_kms_ctx_t en el objeto mongocrypt_status_t.

Parámetros:

  • KMS (FFI::Pointer)

    Un puntero al objeto mongocrypt_kms_ctx_t.

  • Estado (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t.

Devuelve:

  • (booleano)

    Si la operación fue exitosa.



1098
# Archivo 'lib/mongo/crypt/binding.rb', línea 1098

attach_function estado_ctx_kms, %i[puntero puntero], :bool

.mongocrypt_kms_ctx_usleep(ctx) ⇒ int64

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.

Indica cuánto tiempo debe esperar antes de enviar la solicitud de KMS.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (int64)

    Un número codificado de 64bits de microsegundos de tiempo de reposo.



1132
# Archivo 'lib/mongo/crypt/binding.rb', línea 1132

attach_function :mongocrypt_kms_ctx_usleep, [ puntero ], {:int64

.mongocrypt_setopt_aes_256_ctr(crypt, aes_256_ctr_encrypt, aes_256_ctr_decrypt, ctx) ⇒ 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.

Configura un hash criptográfico para las operaciones AES256-CTR.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • aes_enc_fn (Proc)

    Un método de cifrado AES-CTR.

  • aes_dec_fn (Proc)

    Un método de descifrado AES-CTR.

  • ctx (FFI::Pointer | nil)

    Un puntero opcional a un objeto de contexto que puede haber sido establecido cuando los hooks fueron habilitados.

Devuelve:

  • (booleano)

    Si la activación de esta opción tuvo éxito.



1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
# Archivo 'lib/mongo/crypt/binding.rb', línea 1493

attach_function(
  :mongocrypt_setopt_aes_256_ctr,
  %i[
    puntero
    mongocrypt_crypto_fn
    mongocrypt_crypto_fn
    puntero
  ],
  :bool
)

.mongocrypt_setopt_append_crypt_shared_lib_search_path(crypt, path) ⇒ 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.



1530
1531
1532
1533
1534
1535
1536
1537
# Archivo 'lib/mongo/crypt/binding.rb', línea 1530

attach_function(
  mongocrypt_setopt_append_crypt_shared_lib_search_path,
  %i[
    puntero
    string
  ],
  :void
)

.mongocrypt_setopt_bypass_query_analysis(crypt) ⇒ 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.



1469
# Archivo 'lib/mongo/crypt/binding.rb', línea 1469

attach_function(mongocrypt_setopt_bypass_query_analysis, [ puntero ], :void)

.mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(crypt, sign_rsaes_pkcs1_v1_5, ctx = nil) ⇒ 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.

Establezca un enlace criptográfico para el algoritmo RSASSA-PKCS1-v1_5 con un hash SHA-256.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • sign_rsaes_pkcs1_v1_5 (Proc)

    Un método de firma RSASSA-PKCS1-v1_5.

  • ctx (FFI::Pointer | nil) (valor por defecto: nil)

    Un puntero opcional a un objeto de contexto que puede haber sido establecido cuando los hooks fueron habilitados.

Devuelve:

  • (booleano)

    Si la activación de esta opción tuvo éxito.



1386
1387
1388
1389
1390
1391
1392
1393
1394
# Archivo 'lib/mongo/crypt/binding.rb', línea 1386

attach_function(
  mongo cript: set opt crypto hook sign rsaes pkcs1_v1_5,
  %i[
    puntero
    mongocrypt_hmac_fn
    puntero
  ],
  :bool
)

.mongocrypt_setopt_crypto_hooks(crypt, aes_enc_fn, aes_dec_fn, random_fn, sha_512_fn, sha_256_fn, hash_fn, ctx = nil) ⇒ Boolean

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.

Establecer hooks criptográficos en el objeto mongocrypt proporcionado.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • aes_enc_fn (Proc)

    Un método de cifrado AES.

  • aes_dec_fn (Proc)

    Un método de descifrado AES.

  • random_fn (Proc)

    Un método aleatorio.

  • sha_512_fn (Proc)

    Un método HMAC SHA-512.

  • sha_256_fn (Proc)

    Un método HMAC SHA-256.

  • hash_fn (Proc)

    Un método hash SHA-256.

  • ctx (FFI::Pointer | nil) (valor por defecto: nil)

    Un puntero opcional a un objeto de contexto que puede haber sido establecido cuando los hooks fueron habilitados.

Devuelve:

  • (booleano)

    Si la activación de esta opción tuvo éxito.



1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
# Archivo 'lib/mongo/crypt/binding.rb', línea 1341

attach_function(
  mongocrypt_setopt_crypto_hooks,
  %i[
    puntero
    mongocrypt_crypto_fn
    mongocrypt_crypto_fn
    mongocrypt_random_fn
    mongocrypt_hmac_fn
    mongocrypt_hmac_fn
    mongocrypt_hash_fn
    puntero
  ],
  :bool
)

.mongocrypt_setopt_enable_multiple_collinfo(crypt) ⇒ 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.



1668
1669
1670
1671
1672
# Archivo 'lib/mongo/crypt/binding.rb', línea 1668

attach_function(
  :mongocrypt_setopt_enable_multiple_collinfo,
  [ puntero ],
  :bool
)

.mongocrypt_setopt_encrypted_field_config_map(crypt, efc_map) ⇒ Object

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.



1428
1429
1430
1431
1432
1433
1434
1435
# Archivo 'lib/mongo/crypt/binding.rb', línea 1428

attach_function(
  mongocrypt_setopt_encrypted_field_config_map,
  %i[
    puntero
    puntero
  ],
  :bool
)

.mongocrypt_setopt_kms_providers(crypt, kms_providers) ⇒ Object

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:

No inicialices ctx antes de llamar a este método.

Configure los proveedores de KMS con un documento BSON.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • kms_providers (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que referencia un documento BSON que asigna los nombres del proveedor KMS a credenciales.



342
343
344
345
346
# Archivo 'lib/mongo/crypt/binding.rb', línea 342

attach_function(
  :mongocrypt_setopt_kms_providers,
  %i[puntero puntero],
  :bool
)

.mongocrypt_setopt_log_handler(crypt, log_fn, log_ctx = nil) ⇒ 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.

Establece el gestor en el objeto mongocrypt_t para que se llame cada vez que libmongocrypt registre un mensaje.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • log_fn (Method)

    Un método de función de retorno de registro.

  • log_ctx (FFI::Pointer | nil) (valor por defecto: nil)

    Un puntero opcional a un contexto que se debe pasar a la función de retorno de registro en cada invocación.

Devuelve:

  • (booleano)

    Si establecer la función de retorno fue exitoso.



313
314
315
316
317
# Archivo 'lib/mongo/crypt/binding.rb', línea 313

attach_function(
  :mongocrypt_setopt_log_handler,
  %i[puntero mongocrypt_log_fn_t puntero],
  :bool
)

.mongocrypt_setopt_retry_kms(crypt, enable) ⇒ 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.



1169
# Archivo 'lib/mongo/crypt/binding.rb', línea 1169

attach_function mongocrypt_setopt_retry_kms, %i[puntero bool], :bool

.mongocrypt_setopt_schema_map(crypt, schema_map) ⇒ 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.

Establece un mapa de esquema local para el cifrado.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • schema_map (FFI::Pointer)

    Un puntero a un mongocrypt_binary_t. objeto que hace referencia al mapa de esquemas como una string binaria BSON.

Devuelve:

  • (booleano)

    Devuelve si la opción se configuró correctamente.



373
# Archivo 'lib/mongo/crypt/binding.rb', línea 373

attach_function :mongocrypt_setopt_schema_map, %i[puntero puntero], :bool

.mongocrypt_setopt_set_crypt_shared_lib_path_override(crypt, path) ⇒ Object

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.



1559
1560
1561
1562
1563
1564
1565
1566
# Archivo 'lib/mongo/crypt/binding.rb', línea 1559

attach_function(
  ~:mongocrypt_setopt_set_crypt_shared_lib_path_override,
  %i[
    puntero
    string
  ],
  :void
)

.mongocrypt_setopt_use_need_kms_credentials_state(crypt) ⇒ 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.



1638
1639
1640
1641
1642
# Archivo 'lib/mongo/crypt/binding.rb', línea 1638

attach_function(
  :mongocrypt_setopt_use_need_kms_credentials_state,
  [ puntero ],
  :void
)

.mongocrypt_setopt_use_need_mongo_collinfo_with_db_state(crypt) ⇒ 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.



1692
1693
1694
1695
1696
# Archivo 'lib/mongo/crypt/binding.rb', línea 1692

attach_function(
  :mongocrypt_setopt_use_need_mongo_collinfo_with_db_state,
  [ puntero ],
  :void
)

.mongocrypt_status(crypt, status) ⇒ 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.

Establecer la información de estado del objeto mongocrypt_t en el objeto mongocrypt_status_t.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • Estado (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t.

Devuelve:

  • (booleano)

    Si el estado se estableció correctamente.



419
# Archivo 'lib/mongo/crypt/binding.rb', línea 419

attach_function :mongocrypt_status, %i[puntero puntero], :bool

.mongocrypt_status_code(status) ⇒ Integer

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.

Devuelve el código de error de estado.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

Devuelve:

  • (Número entero)

    El código de estado.



241
# Archivo 'lib/mongo/crypt/binding.rb', línea 241

attach_function :mongocrypt_status_code, [ puntero ], :int

.mongocrypt_status_destroy(status) ⇒ nil

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.

Destruye la referencia al objeto mongocrypt_status_t.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

Devuelve:

  • (nil)

    Siempre nulo.



267
# Archivo 'lib/mongo/crypt/binding.rb', línea 267

attach_function :mongocrypt_status_destroy, [ puntero ], :void

.mongocrypt_status_message(status, len = nil) ⇒ String

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.

Devuelve el mensaje de estado.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

  • len (FFI::Pointer | nil) (valor por defecto: nil)

    (parámetro de salida) Un puntero opcional a un uint32, donde se escribirá la longitud de la string de retorno.

Devuelve:

  • (string)

    El mensaje de estado.



251
# Archivo 'lib/mongo/crypt/binding.rb', línea 251

attach_function mensaje_estado_mongocrypt, %i[puntero puntero], cadena

.mongocrypt_status_newFFI::Pointer

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.

Cree un nuevo objeto mongocrypt_status_t.

Devuelve:

  • (FFI::Pointer)

    Un puntero al nuevo mongocrypt_status_ts.



207
# Archivo 'lib/mongo/crypt/binding.rb', línea 207

attach_function :mongocrypt_status_new, [], puntero

.mongocrypt_status_ok(status) ⇒ 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.

Devuelve si el estado es correcto o un error.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

Devuelve:

  • (booleano)

    Si el estado es correcto.



259
# Archivo 'lib/mongo/crypt/binding.rb', línea 259

attach_function :mongocrypt_status_ok, [ puntero ], :bool

.mongocrypt_status_set(estado, tipo, código, mensaje, longitud) ⇒ nil

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.

Establezca un mensaje, tipo y código en un estado existente.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

  • tipo (Símbolo)

    El tipo de estado; los valores posibles están definidos por el enum status_type.

  • Código (Número entero)

    El código de estado.

  • mensaje (string)

    El mensaje de estado.

  • len (Número entero)

    La longitud del argumento del mensaje (o -1 para una string terminada en nulo).

Devuelve:

  • (nil)

    Siempre nulo.



221
222
223
224
225
# Archivo 'lib/mongo/crypt/binding.rb', línea 221

attach_function(
  :mongocrypt_status_set,
  %i[puntero status_type Int string Int],
  :void
)

.mongocrypt_status_type(status) ⇒ Symbol

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.

Indica el tipo de estatus.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

Devuelve:

  • (Símbolo)

    El tipo de estado (según lo definido por el enum status_type).



233
# Archivo 'lib/mongo/crypt/binding.rb', línea 233

attach_function :mongocrypt_status_type, [ puntero ], :status_type

.mongocrypt_version(len) ⇒ String

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.

Devuelve la string de versión de la librería libmongocrypt.

Parámetros:

  • len (FFI::Pointer | nil)

    (parámetro de salida) Un puntero opcional a un uint8 que hará referencia a la longitud de la string devuelta.

Devuelve:

  • (string)

    Una string de versión para libmongocrypt.



93
# Archivo 'lib/mongo/crypt/binding.rb', línea 93

attach_function :mongocrypt_version, [ puntero ], cadena

.ongocrypt_newFFI::Pointer

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.

Crea un nuevo objeto mongocrypt_t.

Devuelve:

  • (FFI::Pointer)

    Un puntero a un nuevo objeto mongocrypt_t.



301
# Archivo 'lib/mongo/crypt/binding.rb', línea 301

attach_function mongocrypt_new(), [], puntero

.parse_version(version) ⇒ Gem::Version

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.

Dada una string que representa un número de versión, la analiza en un objeto Gem::Version. Esto gestiona el caso en el que el string no esté en un formato compatible con Gem::Version mediante el uso de la interpretación personalizada.

Parámetros:

  • Versión (string)

    string que representa un número de versión.

Devuelve:

  • (Gem::Version)

    el número de versión

Aumenta:

  • (ArgumentError)

    si no se puede analizar la cadena.



106
107
108
109
110
111
112
113
114
115
116
117
118
119
# Archivo 'lib/mongo/crypt/binding.rb', línea 106

def sí mismo.parse_version(Versión)
  Gem::Versión.Nuevo(Versión)
rescate ArgumentError
  coincidencia = Versión.coincidencia(/\A(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)?(?:-[A-Za-z+\d]+)?\z/)
  propagar ArgumentError.Nuevo("Malformed version number string #{version}") si coincidencia.nil?

  Gem::Versión.Nuevo(
    [
      coincidencia[mayor],
      coincidencia[Menor],
      coincidencia[Parche]
    ].unirse('.')
  )
end

.setopt_aes_256_ctr(handle, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb) ⇒ 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.

Configura un hash criptográfico para las operaciones AES256-CTR.

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • aes_encrypt_cb (Method)

    Un método de cifrado AES-CTR

  • aes_decrypt_cb (Method)

    Un método de descifrado AES-CTR

Aumenta:



1511
1512
1513
1514
1515
1516
# Archivo 'lib/mongo/crypt/binding.rb', línea 1511

def sí mismo.setopt_aes_256_ctr(gestionar, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb)
  check_status(gestionar) hacer
    mongocrypt_setopt_aes_256_ctr(gestionar.ref,
                                  aes_ctr_encrypt_cb, aes_ctr_decrypt_cb, nulo)
  end
end

.setopt_append_crypt_shared_lib_search_path(handle, path) ⇒ 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.

Agrega un directorio de búsqueda adicional a la ruta de búsqueda para cargar la librería dinámica crypt_shared.

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • ruta (string)

    Una ruta de búsqueda para la librería compartida de criptografía.



1544
1545
1546
1547
1548
# Archivo 'lib/mongo/crypt/binding.rb', línea 1544

def sí mismo.setopt_append_crypt_shared_lib_search_path(gestionar, ruta)
  check_status(gestionar) hacer
    mongocrypt_setopt_append_crypt_shared_lib_search_path(gestionar.ref, ruta)
  end
end

.setopt_bypass_query_analysis(handle) ⇒ 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.

Opta por omitir el análisis de query.

Si eliges participar:

  • La librería compartida csfle no intentará cargarse.
  • Un mongocrypt_ctx_t nunca ingresará al estado MONGOCRYPT_CTX_NEED_MARKINGS.

Parámetros:



1478
1479
1480
# Archivo 'lib/mongo/crypt/binding.rb', línea 1478

def sí mismo.setopt_bypass_query_analysis(gestionar)
  mongocrypt_setopt_bypass_query_analysis(gestionar.ref)
end

.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(gestionar, rsaes_pkcs_signature_cb) ⇒ 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.

Establece un hook de cifrado para el algoritmo RSASSA-PKCS1-v1_5 con un hash SHA-256 en el gestionar.

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • rsaes_pkcs_firma_cb (Method)

    Un método de firma RSASSA-PKCS1-v1_5.

Aumenta:



1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
# Archivo 'lib/mongo/crypt/binding.rb', línea 1403

def sí mismo.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(
  gestionar,
  rsaes_pkcs_firma_cb
)
  check_status(gestionar) hacer
    mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(
      gestionar.ref,
      rsaes_pkcs_firma_cb,
      nulo
    )
  end
end

.setopt_crypto_hooks(handle, aes_encrypt_cb, aes_decrypt_cb, random_cb, hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb) ⇒ 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.

Configura las devoluciones de llamada criptográficas en el Handle

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • aes_encrypt_cb (Method)

    Un método de cifrado AES

  • aes_decrypt_cb (Method)

    Un método de descifrado AES

  • random_cb (Method)

    Un método que devuelve una string de bytes aleatorios

  • hmac_sha_512_cb (Method)

    Un método HMAC SHA-512

  • hmac_sha_256_cb (Method)

    Un método HMAC SHA-256

  • hmac_hash_cb (Method)

    Un método de hash SHA-256

Aumenta:



1367
1368
1369
1370
1371
1372
1373
1374
1375
# Archivo 'lib/mongo/crypt/binding.rb', línea 1367

def sí mismo.setopt_crypto_hooks(gestionar,
                             aes_encrypt_cb, aes_decrypt_cb, random_cb,
                             hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb)
  check_status(gestionar) hacer
    mongocrypt_setopt_crypto_hooks(gestionar.ref,
                                   aes_encrypt_cb, aes_decrypt_cb, random_cb,
                                   hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb, nulo)
  end
end

.setopt_enable_multiple_collinfo(gestionar) ⇒ 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.

Habilite la compatibilidad con múltiples esquemas de colección. Necesario para admitir $lookup.

Parámetros:

Devuelve:

  • (booleano)

    Si la opción se configuró correctamente.



1678
1679
1680
1681
1682
# Archivo 'lib/mongo/crypt/binding.rb', línea 1678

def sí mismo.setopt_enable_multiple_collinfo(gestionar)
  check_status(gestionar) hacer
    mongocrypt_setopt_enable_multiple_collinfo(gestionar.ref)
  end
end

.setopt_encrypted_field_config_map(handle, efc_map) ⇒ 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.

Configura un EncryptedFieldConfigMap local para el cifrado.

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • efc_map (BSON::Document)

    Un documento BSON que representa el EncryptedFieldConfigMap suministrado por el usuario. Las claves son espacios de nombres de la colección y los valores son documentos EncryptedFieldConfigMap.

Aumenta:



1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
# Archivo 'lib/mongo/crypt/binding.rb', línea 1446

def sí mismo.setopt_encrypted_field_config_map(gestionar, efc_map)
  validate_document(efc_map)
  Datos = efc_map.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_status(gestionar) hacer
      mongocrypt_setopt_encrypted_field_config_map(
        gestionar.ref,
        data_p
      )
    end
  end
end

.setopt_kms_providers(handle, kms_providers) ⇒ Object

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.

Establezca las opciones de proveedores de KMS en el objeto Mongo::Crypt::Handle

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • kms_providers (BSON::Document)

    Documento BSON que mapea los nombres de los proveedores KMS a las credenciales.

Aumenta:



355
356
357
358
359
360
361
362
363
# Archivo 'lib/mongo/crypt/binding.rb', línea 355

def sí mismo.setopt_kms_providers(gestionar, kms_providers)
  validate_document(kms_providers)
  Datos = kms_providers.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_status(gestionar) hacer
      mongocrypt_setopt_kms_providers(gestionar.ref, data_p)
    end
  end
end

.setopt_log_handler(handle, log_callback) ⇒ 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.

Establezca la función de retorno del registrador en el objeto Mongo::Crypt::gestionar

Parámetros:

Aumenta:



325
326
327
328
329
# Archivo 'lib/mongo/crypt/binding.rb', línea 325

def sí mismo.setopt_log_handler(gestionar, log_callback)
  check_status(gestionar) hacer
    mongocrypt_setopt_log_handler(gestionar, log_callback, nulo)
  end
end

.setopt_schema_map(handle, schema_map_doc) ⇒ Object

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.

Establezca el mapa del esquema en el objeto Mongo::Crypt::Handle

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • schema_map_doc (BSON::Document)

    El mapa de esquemas como un objeto BSON::documento

Aumenta:



382
383
384
385
386
387
388
389
390
# Archivo 'lib/mongo/crypt/binding.rb', línea 382

def sí mismo.setopt_schema_map(gestionar, schema_map_doc)
  validate_document(schema_map_doc)
  Datos = schema_map_doc.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_status(gestionar) hacer
      mongocrypt_setopt_schema_map(gestionar.ref, data_p)
    end
  end
end

.setopt_set_crypt_shared_lib_path_override(handle, path) ⇒ 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.

Configura una sola ruta de anulación para cargar la librería compartida criptográfica.

Parámetros:

  • gestionar (Mongo::Crypt::Handle)
  • ruta (string)

    Una ruta al archivo de la librería compartida de criptografía.



1572
1573
1574
1575
1576
# Archivo 'lib/mongo/crypt/binding.rb', línea 1572

def sí mismo.setopt_set_crypt_shared_lib_path_override(gestionar, ruta)
  check_status(gestionar) hacer
    mongocrypt_setopt_set_crypt_shared_lib_path_override(gestionar.ref, ruta)
  end
end

.setopt_use_need_kms_credentials_state(handle) ⇒ 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.

Optar por manejar el estado de MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS.

Si se configura, antes de ingresar al estado MONGOCRYPT_CTX_NEED_KMS, los contextos pueden ingresar al estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS y luego esperar a que se proporcionen las credenciales a través de mongocrypt_ctx_provide_kms_providers.

Un contexto solo ingresará a MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS si se ha establecido un documento vacío para un proveedor de KMS en mongocrypt_setopt_kms_providers.

Parámetros:



1656
1657
1658
# Archivo 'lib/mongo/crypt/binding.rb', línea 1656

def sí mismo.setopt_use_need_kms_credentials_state(gestionar)
  mongocrypt_setopt_use_need_kms_credentials_state(gestionar.ref)
end

.setopt_use_need_mongo_collinfo_with_db_state(gestionar) ⇒ 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.

Optar por manejar el estado MONGOCRYPT_CTX_NEED_MONGO_COLLINFO_WITH_DB.

Parámetros:



1701
1702
1703
# Archivo 'lib/mongo/crypt/binding.rb', línea 1701

def sí mismo.setopt_use_need_mongo_collinfo_with_db_state(gestionar)
  mongocrypt_setopt_use_need_mongo_collinfo_with_db_state(gestionar.ref)
end

.validate_document(data) ⇒ Object

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:

Todas las instancias de BSON::Document también son instancias de Hash

Verifica que los datos especificados sean un Hash antes de serializarlos a BSON para evitar errores de libmongocrypt

Parámetros:

  • Datos (objeto)

    Los datos que se deben pasar a libmongocrypt

Aumenta:



1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
# Archivo 'lib/mongo/crypt/binding.rb', línea 1916

def sí mismo.validate_document(Datos)
  return si Datos.is_a?(encriptada)

  mensaje = si Datos.nil?
              'Se intentó pasar datos nulos a libmongocrypt. ' +
                'Los datos deben ser un hash'
            else
              "Se intentó pasar datos no válidos a libmongocrypt: #{data} " +
                'Los datos deben ser un hash'
            end

  propagar Error::CryptError.Nuevo(mensaje)
end

.validate_version(lmc_version) ⇒ Object

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.

Valida si la versión proporcionada de libmongocrypt es válida, es decir, igual o mayor que la versión mínima requerida. Lanza un LoadError si no.

Parámetros:

  • lmc_version (string)

    string que representa la versión de libmongocrypt.

Aumenta:

  • (LoadError)

    si la versión proporcionada es inferior a la versión mínima requerida.



129
130
131
132
133
134
# Archivo 'lib/mongo/crypt/binding.rb', línea 129

def sí mismo.validate_version(lmc_version)
  si (actual_version = parse_version(lmc_version)) < MIN_LIBMONGOCRYPT_VERSION
    propagar LoadError, "libmongocrypt versión #{MIN_LIBMONGOCRYPT_VERSION} o superior es requerido, " +
                     "pero se encontró la versión #{actual_version}."
  end
end

Detalles del método de instancia

#mongocrypt_crypto_fn(ctx, key, iv, input, output, status) ⇒ Bool

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:

Esto define una firma de método para una función de retorno FFI; no es un método de instancia en la clase Binding.

Una función de retorno a una función que realiza cifrado o descifrado AES.

Parámetros:

  • ctx (FFI::Pointer | nil)

    Un puntero opcional a un objeto de contexto que puede haber sido establecido cuando los hooks fueron habilitados.

  • llave (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia a la llave de cifrado AES de 32bytes.

  • iv (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al IV AES de 16bytes.

  • entrada (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al valor que se va a cifrar/descifrar.

  • salida (FFI::Pointer)

    (parámetro de salida) Un puntero a un objeto mongocrypt_binary_t tendrá una referencia al valor cifrado/descifrado escrito por libmongocrypt.

  • Estado (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t en el que se escribirá un mensaje de error si el cifrado falla.

Devuelve:

  • (Bool)

    Si el cifrado/descifrado fue exitoso.



1259
1260
1261
1262
1263
# Archivo 'lib/mongo/crypt/binding.rb', línea 1259

función de retorno(
  :mongocrypt_crypto_fn,
  %i[puntero puntero puntero puntero puntero puntero puntero],
  :bool
)

#mongocrypt_hash_fn(ctx, input, output, status) ⇒ Bool

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:

Esto define una firma de método para una función de retorno FFI; no es un método de instancia en la clase Binding.

Una función de retorno a una función hash SHA-256.

Parámetros:

  • ctx (FFI::Pointer | nil)

    Un puntero opcional a un objeto de contexto que puede haber sido establecido cuando los hooks fueron habilitados.

  • entrada (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al valor que se va a encriptar.

  • salida (FFI::Pointer)

    (Parámetro de salida) Un puntero a un objeto mongocrypt_binary_t tendrá una referencia al valor de salida escrito en él por libmongocrypt.

  • Estado (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t en el que se escribirá un mensaje de error si el cifrado falla.

Devuelve:

  • (Bool)

    Si el hashing fue exitoso.



1307
# Archivo 'lib/mongo/crypt/binding.rb', línea 1307

función de retorno función de hash :mongocrypt_hash_fn, %i[puntero puntero puntero puntero], :bool

#mongocrypt_hmac_fn(ctx, key, input, output, status) ⇒ Bool

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:

Esto define una firma de método para una función de retorno FFI; no es un método de instancia en la clase Binding.

Una función de retorno a una función que realiza HMAC SHA-512 o SHA-256.

Parámetros:

  • ctx (FFI::Pointer | nil)

    Un puntero opcional a un objeto de contexto que puede haber sido establecido cuando los hooks fueron habilitados.

  • llave (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia a la clave de cifrado HMAC SHA de 32bytes.

  • entrada (FFI::Pointer)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al valor de entrada.

  • salida (FFI::Pointer)

    (Parámetro de salida) Un puntero a un objeto mongocrypt_binary_t tendrá una referencia al valor de salida escrito en él por libmongocrypt.

  • Estado (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t en el que se escribirá un mensaje de error si el cifrado falla.

Devuelve:

  • (Bool)

    Si HMAC-SHA fue exitoso.



1284
1285
1286
1287
1288
# Archivo 'lib/mongo/crypt/binding.rb', línea 1284

función de retorno(
  :mongocrypt_hmac_fn,
  %i[puntero puntero puntero puntero puntero],
  :bool
)

#mongocrypt_log_fn_t(level, message, len, ctx) ⇒ nil

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:

Esto define una firma de método para una función de retorno FFI; no es un método de instancia en la clase Binding.

Una función de retorno a la función de registro mongocrypt. Configura una función de retorno de registro personalizada con el método mongocrypt_setopt_log_handler

Parámetros:

  • Nivel (Símbolo)

    El nivel de registro; valores posibles definidos por el enum log_level

  • mensaje (string)

    El mensaje de registro

  • len (Número entero)

    La longitud del parámetro del mensaje, o -1 si la string termina en null

  • ctx (FFI::Pointer | nil)

    Un puntero opcional a un objeto contexto cuando se configuró esta función de retorno

Devuelve:

  • (nil)

    Siempre nulo.



294
# Archivo 'lib/mongo/crypt/binding.rb', línea 294

función de retorno :mongocrypt_log_fn_t, %i[nivel_de_log string Int puntero], :void

#mongocrypt_random_fn(ctx, output, count, status) ⇒ Bool

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:

Esto define una firma de método para una función de retorno FFI; no es un método de instancia en la clase Binding.

Una función de retorno a una función aleatoria segura desde el punto de vista criptográfico.

Parámetros:

  • ctx (FFI::Pointer | nil)

    Un puntero opcional a un objeto de contexto que puede haber sido establecido cuando los hooks fueron habilitados.

  • salida (FFI::Pointer)

    (Parámetro de salida) Un puntero a un objeto mongocrypt_binary_t tendrá una referencia al valor de salida escrito en él por libmongocrypt.

  • count (Número entero)

    La cantidad de bytes aleatorios a devolver.

  • Estado (FFI::Pointer)

    Un puntero a un objeto mongocrypt_status_t en el que se escribirá un mensaje de error si el cifrado falla.

Devuelve:

  • (Bool)

    Si el hashing fue exitoso.



1325
# Archivo 'lib/mongo/crypt/binding.rb', línea 1325

función de retorno :mongocrypt_random_fn, %i[puntero puntero Int puntero], :bool