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

Colapso delresumen constante

MIN_LIBMONGOCRYPT_VERSION =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Versión mínima de libmongocrypt requerida por esta versión del controlador. Intentar usar el driver con cualquier versión anterior de libmongocrypt provocará un ‘LoadError` (Error de carga).

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 forma parte de una API privada. Debe evitarlo 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.



1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
# Archivo 'lib/mongo/crypt/binding.rb', línea 1821

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

  si do_raise
    Estado = Estado.Nuevo

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

.check_kms_ctx_status(kms_context) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Si el bloque proporcionado devuelve falso, genere un CryptError con la información de estado del objeto KmsContext proporcionado.

Parámetros:

Aumenta:



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

def sí mismo.check_kms_ctx_status(kms_context)
  a menos que rendimiento
    Estado = Estado.Nuevo

    mongocrypt_kms_ctx_status(kms_context.kms_ctx_p, Estado.ref)
    Estado.raise_crypt_error(KMS: true)
  end
end

.check_status(gestionar) ⇒ nil

Este método forma parte de una API privada. Debe evitarlo 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.



1808
1809
1810
1811
1812
1813
1814
1815
# Archivo 'lib/mongo/crypt/binding.rb', línea 1808

def sí mismo.check_status(ASA)
  a menos que rendimiento
    Estado = Estado.Nuevo

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

.crypt_shared_lib_version(handle) ⇒ Integer

Este método forma parte de una API privada. Debe evitarlo 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.



1614
1615
1616
# Archivo 'lib/mongo/crypt/binding.rb', línea 1614

def sí mismo.versión de biblioteca compartida de crypt(ASA)
  mongocrypt_crypt_shared_lib_version(ASA.ref)
end

.ctx_datakey_init(contexto) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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:



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

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializar el contexto para la autodecifrado

Parámetros:

Aumenta:



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

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 forma parte de una API privada. Debe evitarlo 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:



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

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializar el contexto para el descifrado explícito

Parámetros:

Aumenta:



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

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 forma parte de una API privada. Debe evitarlo 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:



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

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializar el Contexto para cifrado explícito

Parámetros:

Aumenta:



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

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_explícito_encrypt_init(context.ctx_p, data_p)
    end
  end
end

.ctx_finalize(contexto) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo 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:



1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
# Archivo 'lib/mongo/crypt/binding.rb', línea 1209

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

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

  # TODO ya que la referencia binaria apunta 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_kms_done(context) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo 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:



1186
1187
1188
1189
1190
# Archivo 'lib/mongo/crypt/binding.rb', línea 1186

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 forma parte de una API privada. Debe evitarlo 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:



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

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve un BSON::Document que representa una operación que el controlador 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 consulta de almacén de claves).

Parámetros:

Devuelve:

  • (BSON::Document)

    La operación que debe realizar el conductor

Aumenta:

  • (Mongo::Crypt)

    Si hay un error al obtener la operación



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

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 ya que la referencia binaria apunta 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 forma parte de una API privada. Debe evitarlo 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



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

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
    Contexto de Kms.Nuevo(kms_ctx_p)
  end
end

.ctx_provide_kms_providers(context, kms_providers) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Llamada en respuesta al estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS para establecer la configuración del proveedor KMS por contexto. Esta sigue el mismo formato que "mongocrypt_setopt_kms_providers". Si no hay claves en la entrada BSON, se utilizan las configuraciones del proveedor KMS configuradas para mongocrypt_t durante la inicialización.

Parámetros:

  • context (Mongo::Crypt::Context)

    Contexto de cifrado.

  • proveedores de kms (BSON::Document)

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

Aumenta:



1687
1688
1689
1690
1691
1692
1693
1694
1695
# Archivo 'lib/mongo/crypt/binding.rb', línea 1687

def sí mismo.ctx_provide_kms_providers(context, proveedores de kms)
  validate_document(proveedores de kms)
  Datos = proveedores de kms.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 forma parte de una API privada. Debe evitarlo 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.



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

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(contexto, nombre) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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



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

def sí mismo.algoritmo ctx_setopt(context, Nombre)
  check_ctx_status(context) hacer
    algoritmo mongocrypt_ctx_setopt(context.ctx_p, Nombre, -1)
  end
end

.ctx_setopt_algorithm_range(contexto, opciones) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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

Establezca opciones para el cifrado explícito con el algoritmo “rango”.

uso público.

Parámetros:

Aumenta:



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

def sí mismo.ctx_setopt_algorithm_range(context, opta)
  validate_document(opta)
  Datos = opta.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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establezca el factor de contención utilizado para el cifrado explícito. Este factor 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:



1757
1758
1759
1760
1761
# Archivo 'lib/mongo/crypt/binding.rb', línea 1757

def sí mismo.ctx_setopt_contention_factor(context, factor)
  check_ctx_status(context) hacer
    factor de contención de mongocrypt_ctx_setopt(context.ctx_p, factor)
  end
end

.ctx_setopt_key_alt_names(context, key_alt_names) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establecer varios nombres de clave alternativos al crear una 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:



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

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

    Binario.wrap_string(tecla_alt_nombre_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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establecer 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 de llave de cifrado de llave con un campo adicional "proveedor".

Aumenta:



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

def sí mismo.clave de cifrado ctx_setopt_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 forma parte de una API privada. Debe evitarlo 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:



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

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establezca un material de clave personalizado para usar con

encrypting data.

Parámetros:

  • context (Mongo::Crypt::Context)

    Un DataKeyContext

  • material de clave (BSON::Binary)

    96 bytes de material de clave personalizado

Aumenta:



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

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establezca el tipo de consulta que se usará para el cifrado explícito FLE 2. Este tipo de consulta solo se usa para el cifrado FLE 2 indexado.

Parámetros:

  • context (Mongo::Crypt::Context)

    Contexto de cifrado explícito.

  • :tipo de consulta mongocrypt (string)

    query_type Tipo de query.

Aumenta:



1725
1726
1727
1728
1729
# Archivo 'lib/mongo/crypt/binding.rb', línea 1725

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



181
182
183
# Archivo 'lib/mongo/crypt/binding.rb', línea 181

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



185
186
187
# Archivo 'lib/mongo/crypt/binding.rb', línea 185

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializar el objeto Mongo::Crypt::Handle

Parámetros:

Aumenta:



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

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

.kms_ctx_bytes_needed(kms_context) ⇒ Integer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtenga la cantidad de bytes que necesita KmsContext.

Parámetros:

Devuelve:

  • (Número entero)

    El número de bytes necesarios



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

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

.kms_ctx_endpoint(kms_context) ⇒ String | nil

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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

Parámetros:

Devuelve:

  • (String | nil)

    El nombre del host, o nulo si no existe ninguno

Aumenta:



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

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

  check_kms_ctx_status(kms_context) hacer
    punto final de mongocrypt_kms_ctx(kms_context.kms_ctx_p, ptr)
  end

  str_ptr = ptr.puntero de lectura
  str_ptr.nulo? ? nulo : str_ptr.read_string.codificación forzada('UTF-8')
end

.kms_ctx_fail(kms_context) ⇒ true, false

Este método forma parte de una API privada. Debe evitarlo 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:

  • (verdadero,falso)

    si la solicitud fallida puede volver a intentarse.



1148
1149
1150
# Archivo 'lib/mongo/crypt/binding.rb', línea 1148

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve las respuestas del KMS a libmongocrypt.

Parámetros:

Aumenta:



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

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 forma parte de una API privada. Debe evitarlo 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.



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

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 forma parte de una API privada. Debe evitarlo 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:



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

def sí mismo.mensaje kms_ctx(kms_context)
  Binario = Binario.Nuevo

  check_kms_ctx_status(kms_context) hacer
    mensaje de ctx de mongocrypt_kms(kms_context.kms_ctx_p, Binario.ref)
  end

  return Binario.to_s
end

.kms_ctx_setopt_retry_kms(handle, value) ⇒ true, fale

Este método forma parte de una API privada. Debe evitarlo 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.



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

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

.kms_ctx_usleep(kms_context) ⇒ Integer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el 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 codificado de 64bits de microsegundos para dormir.



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

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

.mongocrypt_binary_data(binario) ⇒ FFI::Pointer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtenga el puntero a los datos subyacentes para 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.



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

attach_function :mongocrypt_binary_data, [:puntero], :puntero

.mongocrypt_binary_destroy(binario) ⇒ nil

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function destroy_binary_mongocrypt, [:puntero], :void

.mongocrypt_binary_len(binario) ⇒ Entero

Este método forma parte de una API privada. Debe evitarlo 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 de la matriz de datos.



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

attach_function :lenguaje binario mongocrypt, [:puntero], :int

.mongocrypt_binary_newFFI::Puntero

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un nuevo objeto mongocrypt_binary_t (una vista no propietaria de un byte)

array).

Devuelve:

  • (FFI::Pointer)

    Un puntero al objeto mongocrypt_binary_t recién creado.



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

attach_function mongocrypt_binary_new, [], :puntero

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un nuevo objeto mongocrypt_binary_t que mantenga un puntero a

the specified byte array.

Parámetros:

  • Datos (FFI::Pointer)

    Un puntero a una matriz 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.



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

attach_function(
  :mongocrypt_binario_nuevo_de_datos,
  [:puntero, :int],
  :puntero
)

.mongocrypt_crypt_shared_lib_version(crypt) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



1592
1593
1594
1595
1596
# Archivo 'lib/mongo/crypt/binding.rb', línea 1592

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

.mongocrypt_ctx_datakey_init(ctx, filter) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



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

attach_function :mongocrypt_ctx_datakey_init, [:puntero], :bool

.mongocrypt_ctx_decrypt_init(ctx, doc) ⇒ Boolean

Este método forma parte de una API privada. Debe evitarlo 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.



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

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

.mongocrypt_ctx_destroy(ctx) ⇒ nil

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function :mongocrypt_ctx_destroy, [:puntero], :void

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Este método espera que el BSON proporcionado esté en el formato: { “v”: valor BSON 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.



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

attach_function(
  :mongocrypt_ctx_encrypt_init,
  [:puntero, cadena, :int, :puntero],
  :bool
)

.mongocrypt_ctx_explicit_decrypt_init(ctx, msg) ⇒ Boolean

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function(
  :mongocrypt_ctx_explícito_descifrado_init,
  [:puntero, :puntero],
  :bool
)

.mongocrypt_ctx_explicit_encrypt_init(ctx, msg) ⇒ Boolean

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Antes de llamar a este método, establezca 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.



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

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

.mongocrypt_ctx_finalize(ctx, op_bson) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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.



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

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

.mongocrypt_ctx_mongo_done(ctx) ⇒ Boolean

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function :mongocrypt_ctx_mongo_done, [:puntero], :bool

.mongocrypt_ctx_mongo_feed(ctx, responder) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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.



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

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

.mongocrypt_ctx_mongo_next_kms_ctx(ctx) ⇒ FFI::Pointer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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



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

attach_function :mongocrypt_ctx_next_kms_ctx, [:puntero], :puntero

.mongocrypt_ctx_mongo_op(ctx, op_bson) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtén una operación BSON para el controlador que se ejecutará contra MongoDB

collection, the key vault database, or 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.



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

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

.mongocrypt_ctx_new(crypt) ⇒ FFI::Pointer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un nuevo objeto mongocrypt_ctx_t (un contenedor para la librería libmongocrypt

state machine).

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

Devuelve:

  • (FFI::Pointer)

    Un nuevo objeto mongocrypt_ctx_t.



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

attach_function :mongocrypt_ctx_new, [:puntero], :puntero

.mongocrypt_ctx_provide_kms_providers(ctx, kms_providers) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



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

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

.mongocrypt_ctx_setopt_algorithm(ctx, algoritmo, longitud) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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 cadena del algoritmo.

Devuelve:

  • (booleano)

    Si la opción se configuró correctamente.



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

attach_function(
  :mongocrypt_ctx_setopt_algorithm,
  [:puntero, cadena, :int],
  :bool
)

.mongocrypt_ctx_setopt_algorithm_range(ctx, opciones) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



1776
1777
1778
1779
1780
1781
1782
1783
# Archivo 'lib/mongo/crypt/binding.rb', línea 1776

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

.mongocrypt_ctx_setopt_contention_factor(ctx, contention_factor) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



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

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

.mongocrypt_ctx_setopt_key_alt_name(ctx, binario) ⇒ booleano

Este método forma parte de una API privada. Debe evitarlo 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, asignar un nombre alternativo a esa clave. Cuándo

performing explicit encryption, specifying which data key to use for
encryption based on its keyAltName field.

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 referencia un documento BSON en el formato { "keyAltName": <BSON UTF8 value> }.

Devuelve:

  • (booleano)

    Si el nombre alternativo se estableció correctamente.



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

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

.mongocrypt_ctx_setopt_key_encryption_key(ctx) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

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

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

  • papelera (FFI::Pointer)

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

Devuelve:

  • (booleano)

    Si la opción se configuró correctamente.



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

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

.mongocrypt_ctx_setopt_key_id(ctx, key_id) ⇒ Boolean

Este método forma parte de una API privada. Debe evitarlo 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.



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

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

.mongocrypt_ctx_setopt_key_material(ctx, binary) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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, configure un material de clave personalizado para usar

encrypting data.

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

Devuelve:

  • (booleano)

    Si el material de clave personalizado se configuró correctamente.



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

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

.mongocrypt_ctx_setopt_query_type(ctx, mongocrypt_query_type) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



1708
1709
1710
1711
1712
1713
1714
1715
1716
# Archivo 'lib/mongo/crypt/binding.rb', línea 1708

attach_function(
  :mongocrypt_ctx_setopt_tipo_de_consulta,
  [
    :puntero,
    cadena,
    :int
  ],
  :bool
)

.mongocrypt_ctx_state(ctx) ⇒ Símbolo

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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.



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

attach_function mongocrypt_ctx_state, [:puntero], mongocrypt_ctx_state

.mongocrypt_ctx_status(ctx, estado) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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

mongocrypt_status_t object.

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.



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

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

.mongocrypt_destroy(crypt) ⇒ nil

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function : mongocrypt_destroy, [:puntero], :void

.mongocrypt_init(crypt) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function mongocrypt_init, [:puntero], :bool

.mongocrypt_kms_ctx_bytes_needed(kms) ⇒ Integer

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function :mongocrypt_kms_ctx_bytes_necesarios, [:puntero], :int

.mongocrypt_kms_ctx_done(ctx) ⇒ Boolean

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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

mongocrypt_kms_ctx_t objects.

Parámetros:

  • ctx (FFI::Pointer)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (booleano)

    Si la operación tuvo éxito.



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

attach_function :mongocrypt_ctx_kms_done, [:puntero], :bool

.mongocrypt_kms_ctx_endpoint(kms, endpoint) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Obtenga el nombre de host con el que conectarse a través de TLS para obtener información sobre

the AWS master key.

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 cadena de punto final.

Devuelve:

  • (booleano)

    Si la operación tuvo éxito.



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

attach_function :mongocrypt_kms_ctx_endpoint, [:puntero, :puntero], :bool

.mongocrypt_kms_ctx_fail(ctx) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



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

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

.mongocrypt_kms_ctx_feed(kms, bytes) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve 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 tuvo éxito.



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

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

.mongocrypt_kms_ctx_get_kms_provider(crypt, kms_providers) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



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

attach_function(
  :mongocrypt_kms_ctx_obtener_proveedor_kms,
  [:puntero, :puntero],
  :puntero
)

.mongocrypt_kms_ctx_message(kms, msg) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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.



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

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

.mongocrypt_kms_ctx_status(kms, status) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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

to the mongocrypt_status_t object.

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 tuvo éxito.



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

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

.mongocrypt_kms_ctx_usleep(ctx) ⇒ int64

Este método forma parte de una API privada. Debe evitarlo 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:

  • (int)64

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



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

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 forma parte de una API privada. Debe evitarlo 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::Puntero | nulo)

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

Devuelve:

  • (booleano)

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



1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
# Archivo 'lib/mongo/crypt/binding.rb', línea 1487

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

.mongocrypt_setopt_append_crypt_shared_lib_search_path(cripta, ruta) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



1525
1526
1527
1528
1529
1530
1531
1532
# Archivo 'lib/mongo/crypt/binding.rb', línea 1525

attach_function(
  mongocrypt_setopt_append_crypt_shared_lib_search_path,
  [
    :puntero,
    cadena,
  ],
  :void
)

.mongocrypt_setopt_bypass_query_analysis(crypt) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



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

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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establezca un gancho 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) (predeterminado: nulo)

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

Devuelve:

  • (booleano)

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



1380
1381
1382
1383
1384
1385
1386
1387
1388
# Archivo 'lib/mongo/crypt/binding.rb', línea 1380

attach_function(
  mongo cript: set opt crypto hook sign rsaes pkcs1_v1_5,
  [
    :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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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

  • función hash (Proc)

    Un método hash SHA-256.

  • ctx (FFI::Pointer | nil) (predeterminado: nulo)

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

Devuelve:

  • (booleano)

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



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

attach_function(
  mongocrypt_setopt_crypto_hooks,
  [
    :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) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



1422
1423
1424
1425
1426
1427
1428
1429
# Archivo 'lib/mongo/crypt/binding.rb', línea 1422

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

.mongocrypt_setopt_kms_providers(crypt, kms_providers) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo 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.

  • proveedores de kms (FFI::Pointer)

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



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

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

.mongocrypt_setopt_log_handler(crypt, log_fn, log_ctx = nil) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establezca el controlador en el objeto mongocrypt_t para que se llame cada vez

libmongocrypt logs a message.

Parámetros:

  • cripta (FFI::Pointer)

    Un puntero a un objeto mongocrypt_t.

  • log_fn (Método) -

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

  • log_ctx (FFI::Pointer | nil) (predeterminado: nulo)

    Un puntero opcional a un contexto que se pasará a la devolución de llamada del registro en cada invocación.

Devuelve:

  • (booleano)

    Si establecer la función de retorno fue exitoso.



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

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

.mongocrypt_setopt_retry_kms(crypt, enable) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



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

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

.mongocrypt_setopt_schema_map(crypt, schema_map) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo 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 objeto mongocrypt_binary_t. que hace referencia al mapa de esquema como una cadena binaria BSON.

Devuelve:

  • (booleano)

    Devuelve si la opción se configuró correctamente.



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

attach_function :mapa de esquema de mongocrypt_setopt, [:puntero, :puntero], :bool

.mongocrypt_setopt_set_crypt_shared_lib_path_override(crypt, path) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



1554
1555
1556
1557
1558
1559
1560
1561
# Archivo 'lib/mongo/crypt/binding.rb', línea 1554

attach_function(
  ~:mongocrypt_setopt_set_crypt_shared_lib_path_override,
  [
    :puntero,
    cadena,
  ],
  :void
)

.mongocrypt_setopt_use_need_kms_credentials_state(crypt) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.



1633
1634
1635
1636
1637
# Archivo 'lib/mongo/crypt/binding.rb', línea 1633

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

.mongocrypt_status(crypt, status) ⇒ booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establece la información de estado desde el objeto mongocrypt_t en la

mongocrypt_status_t object.

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.



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

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

.mongocrypt_status_code(status) ⇒ Integer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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



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

attach_function :mongocrypt_status_code, [:puntero], :int

.mongocrypt_status_destroy(estado) ⇒ nulo

Este método forma parte de una API privada. Debe evitarlo 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.



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

attach_function :mongocrypt_status_destroy, [:puntero], :void

.mongocrypt_status_message(status, len = nil) ⇒ String

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el mensaje de estado.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

  • len (FFI::Pointer | nil) (predeterminado: nulo)

    (parámetro de salida) Un puntero opcional a un uint32, donde se escribirá la extensión de la string devuelta.

Devuelve:

  • (string)

    El mensaje de estado.



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

attach_function :mensaje de estado de mongocrypt, [:puntero, :puntero], cadena

.mongocrypt_status_newFFI::Pointer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un nuevo objeto mongocrypt_status_t.

Devuelve:

  • (FFI::Pointer)

    Un puntero al nuevo mongocrypt_status_ts.



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

attach_function :mongocrypt_status_new, [], :puntero

.mongocrypt_status_ok(status) ⇒ Booleano

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve si el estado es correcto o un error.

Parámetros:

  • Estado (FFI::Pointer)

    Un puntero a mongocrypt_status_t.

Devuelve:

  • (booleano)

    Si el estado está bien.



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

attach_function :mongocrypt_status_ok, [:puntero], :bool

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establecer 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 la enumeración 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 cadena terminada en nulo).

Devuelve:

  • (nil)

    Siempre nulo.



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

attach_function(
  :mongocrypt_status_set,
  [:puntero, :status_type, :int, cadena, :int],
  :void
)

.mongocrypt_status_type(status) ⇒ Symbol

Este método forma parte de una API privada. Debe evitarlo 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).



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

attach_function :mongocrypt_status_type, [:puntero], :status_type

.mongocrypt_version(len) ⇒ Cadena

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

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

Parámetros:

  • len (FFI::Puntero | nulo)

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

Devuelve:

  • (string)

    Una cadena de versión para libmongocrypt.



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

attach_function :mongocrypt_version, [:puntero], cadena

.ongocrypt_newFFI::Pointer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Crea un nuevo objeto mongocrypt_t.

Devuelve:

  • (FFI::Pointer)

    Un puntero a un nuevo objeto mongocrypt_t.



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

attach_function :mongocrypt_nuevo, [], :puntero

.parse_version(version) ⇒ Gem::Version

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Dada una cadena que representa un número de versión, la analiza y la convierte en un objeto Gem::Version. Esto gestiona el caso en que la cadena no está en un formato compatible con Gem::Version mediante un análisis personalizado.

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.



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

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(identificador, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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:

  • ASA (Mongo::Crypt::Handle)
  • aes_encrypt_cb (Método) -

    Un método de cifrado AES-CTR

  • aes_decrypt_cb (Método) -

    Un método de descifrado AES-CTR

Aumenta:



1505
1506
1507
1508
1509
1510
1511
# Archivo 'lib/mongo/crypt/binding.rb', línea 1505

def sí mismo.setopt_aes_256_ctr(ASA, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb)
  check_status(ASA) hacer
    mongocrypt_setopt_aes_256_ctr(ASA.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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Agregue un directorio de búsqueda adicional a la ruta de búsqueda para cargar

the crypt_shared dynamic library.

Parámetros:

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

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



1539
1540
1541
1542
1543
# Archivo 'lib/mongo/crypt/binding.rb', línea 1539

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

.setopt_bypass_query_analysis(handle) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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:



1472
1473
1474
# Archivo 'lib/mongo/crypt/binding.rb', línea 1472

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

.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(identificador, rsaes_pkcs_signature_cb) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establecer un enganche criptográfico para el algoritmo RSASSA-PKCS1-v1_5 con

a SHA-256 hash oh the Handle.

Parámetros:

Aumenta:



1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
# Archivo 'lib/mongo/crypt/binding.rb', línea 1397

def sí mismo.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(
  ASA,
  firma rsaes_pkcs_cb
)
  check_status(ASA) hacer
    señal de gancho criptográfico mongocrypt_setopt_rsaes_pkcs1_v1_5(
      ASA.ref,
      firma rsaes_pkcs_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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establecer devoluciones de llamadas criptográficas en el Handle

Parámetros:

  • ASA (Mongo::Crypt::Handle)
  • aes_encrypt_cb (Método) -

    Un método de cifrado AES

  • aes_decrypt_cb (Método) -

    Un método de descifrado AES

  • random_cb (Método) -

    Un método que devuelve una string de bytes aleatorios

  • hmac_sha_512_cb (Método) -

    Un método HMAC SHA-512

  • hmac_sha_256_cb (Método) -

    Un método HMAC SHA-256

  • hmac_hash_cb (Método) -

    Un método hash SHA-256

Aumenta:



1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
# Archivo 'lib/mongo/crypt/binding.rb', línea 1359

def sí mismo.setopt_crypto_hooks(ASA,
  aes_encrypt_cb, aes_decrypt_cb, random_cb,
  hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb
)
  check_status(ASA) hacer
    ganchos criptográficos de mongocrypt_setopt(ASA.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(identificador, efc_map) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Establezca un EncryptedFieldConfigMap local para el cifrado.

Parámetros:

  • ASA (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:



1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
# Archivo 'lib/mongo/crypt/binding.rb', línea 1440

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

.setopt_kms_providers(handle, kms_providers) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo 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:

  • ASA (Mongo::Crypt::Handle)
  • proveedores de kms (BSON::Document)

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

Aumenta:



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

def sí mismo.setopt_kms_providers(ASA, proveedores de kms)
  validate_document(proveedores de kms)
  Datos = proveedores de kms.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_status(ASA) hacer
      mongocrypt_setopt_kms_providers(ASA.ref, data_p)
    end
  end
end

.setopt_log_handler(handle, log_callback) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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:



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

def sí mismo.setopt_log_handler(ASA, devolución de llamada de registro)
  check_status(ASA) hacer
    mongocrypt_setopt_log_handler(ASA, devolución de llamada de registro, nulo)
  end
end

.setopt_schema_map(identificador, schema_map_doc) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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:

  • ASA (Mongo::Crypt::Handle)
  • esquema_mapa_doc (BSON::Document)

    El mapa de esquema como un objeto BSON::Document

Aumenta:



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

def sí mismo.setopt_schema_map(ASA, esquema_mapa_doc)
  validate_document(esquema_mapa_doc)
  Datos = esquema_mapa_doc.to_bson.to_s
  Binario.wrap_string(Datos) hacer |data_p|
    check_status(ASA) hacer
      mapa de esquema de mongocrypt_setopt(ASA.ref, data_p)
    end
  end
end

.setopt_set_crypt_shared_lib_path_override(handle, path) ⇒ Objeto

Este método forma parte de una API privada. Debe evitarlo 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:

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

    Una ruta para cifrar el archivo de la biblioteca compartida.



1567
1568
1569
1570
1571
# Archivo 'lib/mongo/crypt/binding.rb', línea 1567

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

.setopt_use_need_kms_credentials_state(handle) ⇒ objeto

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Opte por manejar el estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS.

Si está configurado, antes de entrar en el estado MONGOCRYPT_CTX_NEED_KMS, los contextos pueden entrar en el estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS y luego esperar a que se suministren las credenciales a través de ‘mongocrypt_ctx_provide_kms_providers‘.

Un contexto solo ingresará en MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS si se estableció un documento vacío para un proveedor de KMS en ‘mongocrypt_setopt_kms_providers`.

Parámetros:



1651
1652
1653
# Archivo 'lib/mongo/crypt/binding.rb', línea 1651

def sí mismo.setopt_use_need_kms_credentials_state(ASA)
  estado de credenciales de KMS necesario para el uso de mongocrypt_setopt(ASA.ref)
end

.validate_document(data) ⇒ Object

Este método forma parte de una API privada. Debe evitarlo 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:



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

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

  si Datos.nil?
    mensaje = "Se intentó pasar datos nulos a libmongocrypt. " +
      "Los datos deben ser un hash"
  else
    mensaje = "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 forma parte de una API privada. Debe evitarlo 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)

    Cadena que representa la versión de libmongocrypt.

Aumenta:

  • (Errorde carga)

    si la versión dada es menor que la versión mínima requerida.



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

def sí mismo.validate_version(lmc_version)
  si (actual_version = parse_version(lmc_version)) < VERSIÓN DE CIFRADO DE LIBRO MÍNIMO
    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 forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

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

Una devolución de llamada a una función que realiza el cifrado o descifrado AES.

Parámetros:

  • ctx (FFI::Puntero | nulo)

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



1251
1252
1253
1254
1255
# Archivo 'lib/mongo/crypt/binding.rb', línea 1251

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

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Esto define una firma de método para una devolución de llamada 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::Puntero | nulo)

    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.



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

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

#mongocrypt_hmac_fn(ctx, clave, entrada, salida, estado) ⇒ Bool

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Esto define una firma de método para una devolución de llamada 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::Puntero | nulo)

    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.



1276
1277
1278
1279
1280
# Archivo 'lib/mongo/crypt/binding.rb', línea 1276

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

#mongocrypt_log_fn_t(nivel, mensaje, longitud, ctx) ⇒ nulo

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

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

Una devolución de llamada a la función de registro de MongoCrypt. Configurar una devolución de llamada de registro personalizada.

with the mongocrypt_setopt_log_handler method

Parámetros:

  • nivel (Símbolo)

    El nivel de registro; valores posibles definidos por la enumeración log_level

  • mensaje (string)

    El mensaje de registro

  • len (Número entero)

    La longitud del parámetro del mensaje, o -1 si la cadena termina en nulo

  • ctx (FFI::Puntero | nulo)

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

Devuelve:

  • (nil)

    Siempre nulo.



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

función de retorno :mongocrypt_log_fn_t, [:nivel_de_registro, cadena, :int, :puntero], :void

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

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Nota:

Esto define una firma de método para una devolución de llamada 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::Puntero | nulo)

    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.



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

función de retorno :mongocrypt_random_fn, [:puntero, :puntero, :int, :puntero], :bool