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.



1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
# Archivo 'lib/mongo/crypt/binding.rb', línea 1815

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:



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

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

  Estado = Estado.Nuevo

  mongocrypt_kms_ctx_status(kms_context.kms_ctx_p, Estado.ref)
  Estado.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.



1802
1803
1804
1805
1806
1807
1808
1809
# Archivo 'lib/mongo/crypt/binding.rb', línea 1802

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.



1608
1609
1610
# Archivo 'lib/mongo/crypt/binding.rb', línea 1608

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:



1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
# Archivo 'lib/mongo/crypt/binding.rb', línea 1206

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:



1183
1184
1185
1186
1187
# Archivo 'lib/mongo/crypt/binding.rb', línea 1183

def sí mismo.ctx_kms_done(context)
  check_ctx_status(context) hacer
    mongocrypt_ctx_kms_done(context.ctx_p)
  end
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:



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

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



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

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



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

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:



1681
1682
1683
1684
1685
1686
1687
1688
1689
# Archivo 'lib/mongo/crypt/binding.rb', línea 1681

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:



1788
1789
1790
1791
1792
1793
1794
1795
1796
# Archivo 'lib/mongo/crypt/binding.rb', línea 1788

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:



1751
1752
1753
1754
1755
# Archivo 'lib/mongo/crypt/binding.rb', línea 1751

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:



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

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



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

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:



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

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.



1146
1147
1148
# Archivo 'lib/mongo/crypt/binding.rb', línea 1146

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:



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

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.



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

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:



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

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.



1165
1166
1167
# Archivo 'lib/mongo/crypt/binding.rb', línea 1165

def sí mismo.kms_ctx_setopt_retry_kms(gestionar, Valor)
  mongocrypt_setopt_retry_kms(gestionar.ref, Valor)
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.



1129
1130
1131
# Archivo 'lib/mongo/crypt/binding.rb', línea 1129

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.



1586
1587
1588
1589
1590
# Archivo 'lib/mongo/crypt/binding.rb', línea 1586

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.



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

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.



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

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

.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.



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

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.



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

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.



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

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.



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

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.



1664
1665
1666
1667
1668
# Archivo 'lib/mongo/crypt/binding.rb', línea 1664

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.



1770
1771
1772
1773
1774
1775
1776
1777
# Archivo 'lib/mongo/crypt/binding.rb', línea 1770

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.



1735
1736
1737
1738
1739
1740
1741
1742
# Archivo 'lib/mongo/crypt/binding.rb', línea 1735

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.



1702
1703
1704
1705
1706
1707
1708
1709
1710
# Archivo 'lib/mongo/crypt/binding.rb', línea 1702

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
# Archivo 'lib/mongo/crypt/binding.rb', línea 1482

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.



1519
1520
1521
1522
1523
1524
1525
1526
# Archivo 'lib/mongo/crypt/binding.rb', línea 1519

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.



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

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.



1375
1376
1377
1378
1379
1380
1381
1382
1383
# Archivo 'lib/mongo/crypt/binding.rb', línea 1375

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.



1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
# Archivo 'lib/mongo/crypt/binding.rb', línea 1330

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_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.



1417
1418
1419
1420
1421
1422
1423
1424
# Archivo 'lib/mongo/crypt/binding.rb', línea 1417

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.



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

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.



1548
1549
1550
1551
1552
1553
1554
1555
# Archivo 'lib/mongo/crypt/binding.rb', línea 1548

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.



1627
1628
1629
1630
1631
# Archivo 'lib/mongo/crypt/binding.rb', línea 1627

attach_function(
  :mongocrypt_setopt_use_need_kms_credentials_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:



1500
1501
1502
1503
1504
1505
# Archivo 'lib/mongo/crypt/binding.rb', línea 1500

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.



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

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:



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

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:



1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
# Archivo 'lib/mongo/crypt/binding.rb', línea 1392

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:



1356
1357
1358
1359
1360
1361
1362
1363
1364
# Archivo 'lib/mongo/crypt/binding.rb', línea 1356

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_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:



1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
# Archivo 'lib/mongo/crypt/binding.rb', línea 1435

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.



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

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:



1645
1646
1647
# Archivo 'lib/mongo/crypt/binding.rb', línea 1645

def sí mismo.setopt_use_need_kms_credentials_state(gestionar)
  mongocrypt_setopt_use_need_kms_credentials_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:



1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
# Archivo 'lib/mongo/crypt/binding.rb', línea 1838

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.



1248
1249
1250
1251
1252
# Archivo 'lib/mongo/crypt/binding.rb', línea 1248

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.



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

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.



1273
1274
1275
1276
1277
# Archivo 'lib/mongo/crypt/binding.rb', línea 1273

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.



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

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