Clase: Mongo::Crypt::Binding Privado

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
FFI::Biblioteca
Definido en:
lib/mongo/crypt/binding.rb

Overview

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

Un enlace Ruby para la biblioteca 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.

Esta versión del controlador requiere la versión mínima de libmongocrypt. Intentar usar el controlador con una versión anterior de libmongocrypt provocará un error de carga.

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

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

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.

Genera 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 yo.comprobar_estado_ctx(context)
  Si ¿bloque_dado?
    do_raise = !rendimiento
  else
    do_raise = true
  end

  Si do_raise
    Estado = Estado.Nuevo

    mongocrypt_ctx_status(context.ctx_p, Estado.ref)
    Estado.error de cifrado
  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:

Aumentos:



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

def yo.check_kms_ctx_status(kms_context)
  a no ser que rendimiento
    Estado = Estado.Nuevo

    estado de mongocrypt_kms_ctx(kms_context.kms_ctx_p, Estado.ref)
    Estado.error de cifrado(kilómetros: 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 un Mongo::Error::CryptError según el estado del objeto mongocrypt_t subyacente.

Devuelve:

  • (nil)

    Siempre nulo.



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

def yo.check_status(ASA)
  a no ser que rendimiento
    Estado = Estado.Nuevo

    mongocrypt_status(ASA.ref, Estado.ref)
    Estado.error de cifrado
  end
end

.crypt_shared_lib_version(identificador) ⇒ 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.

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

La versión está codificada como números de cuatro bits 16, 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:

  • ASA (Mongo::Crypt::Manejador)

Devuelve:

  • (Entero)

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



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

def yo.versión de biblioteca compartida de crypt(ASA)
  versión de la biblioteca compartida de mongocrypt_crypt(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.

Inicializar el contexto para crear una clave de datos

Parámetros:

Aumentos:



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

def yo.ctx_datakey_init(context)
  comprobar_estado_ctx(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 el descifrado automático

Parámetros:

Aumentos:



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

def yo.ctx_decrypt_init(context, Comando)
  validate_document(Comando)
  datos = Comando.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(context) hacer
      mongocrypt_ctx_decrypt_init(context.ctx_p, data_p)
    end
  end
end

.ctx_encrypt_init(contexto, nombre_base_datos, 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 el cifrado automático

Parámetros:

  • context (Mongo::Crypt::Contexto)
  • nombre_base_datos (Cadena) -

    El nombre de la base de datos contra la que se ejecuta el comando cifrado

  • Comando (Hash)

    El comando a cifrar

Aumentos:



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

def yo.ctx_encrypt_init(context, nombre_base_datos, Comando)
  validate_document(Comando)
  datos = Comando.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(context) hacer
      mongocrypt_ctx_encrypt_init(context.ctx_p, nombre_base_datos, -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:

Aumentos:



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

def yo.ctx_explicit_decrypt_init(context, doc)
  validate_document(doc)
  datos = doc.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(context) hacer
      mongocrypt_ctx_explícito_descifrado_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.

Inicializar el contexto para el cifrado de expresión explícita.

Parámetros:

Aumentos:



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

def yo.ctx_explicit_encrypt_expression_init(context, doc)
  validate_document(doc)
  datos = doc.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(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 el cifrado explícito

Parámetros:

Aumentos:



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

def yo.ctx_explicit_encrypt_init(context, doc)
  validate_document(doc)
  datos = doc.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(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.

Finalizar la máquina de estados representada por el Contexto

Parámetros:

Aumentos:



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

def yo.ctx_finalizar(context)
  Binario = Binario.Nuevo

  comprobar_estado_ctx(context) hacer
    mongocrypt_ctx_finalizar(context.ctx_p, Binario.ref)
  end

  # TODO ya 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 haciendo
  # ByteBuffer hace referencia a la cadena que es propiedad de libmongocrypt.
  BSON::Documento.de_bson(BSON::Búfer de bytes.Nuevo(Binario.a_s), modo: :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 KMS.

Parámetros:

Aumentos:



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

def yo.ctx_kms_done(context)
  comprobar_estado_ctx(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.

Envíe una respuesta del controlador a libmongocrypt

Parámetros:

Aumentos:



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

def yo.ctx_mongo_feed(context, doc)
  validate_document(doc)
  datos = doc.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(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::Documento)

    La operación que debe realizar el conductor

Aumentos:

  • (Mongo::Crypt)

    Si hay un error al realizar 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 yo.ctx_mongo_op(context)
  Binario = Binario.Nuevo

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

  # TODO ya 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 haciendo
  # ByteBuffer hace referencia a la cadena que es propiedad de libmongocrypt.
  BSON::Documento.de_bson(BSON::Búfer de bytes.Nuevo(Binario.a_s), modo: :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 KmsContext



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

def yo.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(contexto, 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::Documento)

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

Aumentos:



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

def yo.ctx_provide_kms_providers(context, proveedores de kms)
  validate_document(proveedores de kms)
  datos = proveedores de kms.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(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.

Inicializar un contexto para reenvolver las claves de datos.

Parámetros:

  • context (Mongo::Crypt::Contexto)
  • filtro (BSON::Documento)

    Documento BSON que representa el filtro a utilizar para el comando de búsqueda en la colección de almacén de claves para recuperar claves de datos para volver a encapsular.

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 yo.ctx_rewrap_many_datakey_init(context, filtro)
  datos de filtro = filtro.a_bson.a_s
  Binario.cadena de envoltura(datos de filtro) hacer |data_p|
    comprobar_estado_ctx(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::Contexto)
  • Nombre (Cadena) -

    El nombre del algoritmo. Los valores válidos son:

    • “AEAD_AES_256_CBC_HMAC_SHA_512-Determinista”

    • “AEAD_AES_256_CBC_HMAC_SHA_512-Aleatorio”

Aumentos:



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

def yo.algoritmo ctx_setopt(context, Nombre)
  comprobar_estado_ctx(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 Range es solo experimental. No está diseñado para

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

uso público.

Parámetros:

Aumentos:



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

def yo.ctx_setopt_algorithm_range(context, opta)
  validate_document(opta)
  datos = opta.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(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 (Entero)

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

Aumentos:



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

def yo.factor de contención ctx_setopt(context, factor)
  comprobar_estado_ctx(context) hacer
    factor de contención de mongocrypt_ctx_setopt(context.ctx_p, factor)
  end
end

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

  • nombres de teclas alternativas (Matriz)

    Una matriz de nombres de claves alternativos como cadenas

Aumentos:



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

def yo.ctx_setopt_key_alt_names(context, nombres de teclas alternativas)
  nombres de teclas alternativas.cada hacer |key_alt_name|
    tecla_alt_nombre_bson = { :teclaAltNombre => key_alt_name }.a_bson.a_s

    Binario.cadena de envoltura(tecla_alt_nombre_bson) hacer |key_alt_name_p|
      comprobar_estado_ctx(context) hacer
        nombre alternativo de la clave setopt de mongocrypt_ctx(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::Contexto)
  • documento_clave (BSON::Documento)

    Documento BSON que representa el documento de clave de cifrado de clave con un campo “proveedor” adicional.

Aumentos:



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

def yo.clave de cifrado ctx_setopt_key(context, documento_clave)
  validate_document(documento_clave)
  datos = documento_clave.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(context) hacer
      clave de cifrado mongocrypt_ctx_setopt_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 de identificación de clave en un contexto de cifrado explícito.

Parámetros:

Aumentos:



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

def yo.ctx_setopt_key_id(context, id_clave)
  Binario.cadena de envoltura(id_clave) hacer |key_id_p|
    comprobar_estado_ctx(context) hacer
      id de clave de setopt de mongocrypt_ctx(context.ctx_p, key_id_p)
    end
  end
end

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

Establezca un material de clave personalizado para usar

encrypting data.

Parámetros:

  • context (Mongo::Crypt::Context)

    Un DataKeyContext

  • material de clave (BSON::Binario)

    96 bytes de material de clave personalizado

Aumentos:



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

def yo.material de clave ctx_setopt(context, material de clave)
  datos = {'Material clave' => material de clave}.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    comprobar_estado_ctx(context) hacer
      mongocrypt_ctx_setopt_key_material(context.ctx_p, data_p)
    end
  end
end

.ctx_setopt_query_type(contexto, tipo de consulta) ⇒ 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 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 (Cadena) -

    query_type Tipo de la consulta.

Aumentos:



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

def yo.tipo de consulta ctx_setopt(context, tipo de consulta)
  comprobar_estado_ctx(context) hacer
    tipo de consulta mongocrypt_ctx_setopt(context.ctx_p, tipo de consulta, -1)
  end
end

.obtener_datos_binarios_directos(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 yo.obtener_datos_binarios_directamente(mongocrypt_binary_t)
  mongocrypt_binary_t.obtener_puntero(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 yo.obtener_len_binario_directo(mongocrypt_binary_t)
  mongocrypt_binary_t.get_uint32(FFI::Tipo nativo::PUNTERO.tamaño)
end

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

  • ASA (Mongo::Crypt::Manejador)

Aumentos:



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

def yo.init(ASA)
  check_status(ASA) hacer
    mongocrypt_init(ASA.ref)
  end
end

.kms_ctx_bytes_necesarios(kms_contexto) ⇒ 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.

Obtenga la cantidad de bytes que necesita KmsContext.

Parámetros:

Devuelve:

  • (Entero)

    El número de bytes necesarios



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

def yo.kms_ctx_bytes_necesarios(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:

  • ( Cadena| nulo ) —

    El nombre del host, o nulo si no existe ninguno

Aumentos:



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

def yo.punto final kms_ctx(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.leer_cadena.codificación forzada('UTF-8')
end

.kms_ctx_fail(kms_context) ⇒ verdadero, falso

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

Comprueba si es posible volver a intentar la última solicitud fallida para el contexto KMS.

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 yo.kms_ctx_fail(kms_context)
  Error de mongocrypt_kms_ctx(kms_context.kms_ctx_p)
end

.kms_ctx_feed(kms_context, bytes) ⇒ 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.

Envía las respuestas del KMS a libmongocrypt.

Parámetros:

Aumentos:



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

def yo.kms_ctx_feed(kms_context, bytes)
  check_kms_ctx_status(kms_context) hacer
    Binario.cadena de envoltura(bytes) hacer |bytes_p|
      fuente de ctx de mongocrypt_kms(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.

Obtenga el identificador del proveedor KMS asociado con esta solicitud KMS.

Esto se utiliza para configurar conexiones TLS condicionalmente según la solicitud KMS. Es útil para KMIP, que se autentica con un certificado de cliente.

Parámetros:

  • kilómetros (FFI::Puntero)

    Puntero al objeto 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 yo.kms_ctx_get_kms_provider(kms_context)
  len_ptr = FFI::MemoryPointer.Nuevo(:uint32, 1)
  proveedor = mongocrypt_kms_ctx_obtener_proveedor_kms(
    kms_context.kms_ctx_p,
    len_ptr
  )
  Si len_ptr.nil?
    nulo
  else
    len = Si BSON::Entorno.jruby?
      # La implementación de JRuby FFI no tiene el método `read(type)`, pero
      # tiene este `get_uint32`.
      len_ptr.get_uint32
    else
      # Para la resonancia magnética utilizamos un método de "lectura" documentado: https://www.rubydoc.info/github/ffi/ffi/FFI%2FPointer:read
      len_ptr.Lea(:uint32)
    end
    proveedor.leer_cadena(len).a_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:

  • (Cadena) -

    The HTTP message

Aumentos:



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

def yo.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.a_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:

  • ASA (Mongo::Crypt::Manejador)
  • valor (verdadero,falso)

    si se debe reintentar las operaciones.

Devuelve:

  • (true, fale)

    verdadero si la opción fue establecida, de lo contrario falso.



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

def yo.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 debe suspender antes de enviar una solicitud KMS para el contexto KMS determinado.

Parámetros:

Devuelve:

  • (Entero)

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



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

def yo.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::Puntero)

    Un puntero a un objeto mongocrypt_binary_t.

Devuelve:

  • (FFI::Puntero)

    Un puntero a la matriz de datos.



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

función adjuntar :mongocrypt_binary_data, [:puntero], :puntero

.mongocrypt_binary_destroy(binario) ⇒ 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 el objeto mongocrypt_binary_t.

Parámetros:

  • Binario (FFI::Puntero)

    Un puntero a un objeto mongocrypt_binary_t.

Devuelve:

  • (nil)

    Siempre nulo.



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

función adjuntar :mongocrypt_binary_destroy, [: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.

Obtenga la longitud de la matriz de datos subyacente.

Parámetros:

  • Binario (FFI::Puntero)

    Un puntero a un objeto mongocrypt_binary_t.

Devuelve:

  • (Entero)

    La longitud de la matriz de datos.



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

función adjuntar :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::Puntero)

    Un puntero al objeto mongocrypt_binary_t recién creado.



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

función adjuntar :mongocrypt_binario_nuevo, [], :puntero

.mongocrypt_binary_new_from_data(datos, longitud) ⇒ 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.

Cree un nuevo objeto mongocrypt_binary_t que mantenga un puntero a

the specified byte array.

Parámetros:

  • datos (FFI::Puntero)

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

  • len (Entero)

    La longitud del argumento de la matriz.

Devuelve:

  • (FFI::Puntero)

    Un puntero al objeto mongocrypt_binary_t recién creado.



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

función adjuntar(
  :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

función adjuntar(
  :mongocrypt_crypt_versión_de_biblioteca_compartida,
  [ :puntero ],
  :uint64
)

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

función adjuntar :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 el descifrado automático.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • doc (FFI::Puntero)

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

Devuelve:

  • (Booleano)

    Si la inicialización fue exitosa.



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

función adjuntar :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::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (nil)

    Siempre nulo.



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

función adjuntar :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 pasado tenga el formato: { “v”: valor BSON a descifrar }.

Inicializa el ctx para el cifrado automático.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • db (Cadena) -

    El nombre de la base de datos.

  • db_len (Entero)

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

  • cmd (FFI::Puntero)

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

Devuelve:

  • (Booleano)

    Si la inicialización fue exitosa.



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

función adjuntar(
  :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 el descifrado explícito.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • msg (FFI::Puntero)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al mensaje que se va a descifrar como una cadena binaria BSON.

Devuelve:

  • (Booleano)

    Si la inicialización fue exitosa.



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

función adjuntar(
  :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::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • msg (FFI::Puntero)

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

Devuelve:

  • (Booleano)

    Si la inicialización fue exitosa.



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

función adjuntar(
  :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.

Realiza el cifrado o descifrado final y devuelve un documento BSON.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • op_bson (FFI::Puntero)

    (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

función adjuntar :mongocrypt_ctx_finalizar, [: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 controlador terminó de enviar respuestas.

Parámetros:

  • ctx (FFI::Puntero)

    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

función adjuntar :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.

Envíe una respuesta BSON a libmongocrypt.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • respuesta (FFI::Puntero)

    Un objeto mongocrypt_binary_t que hace referencia a la respuesta BSON para enviar 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

función adjuntar :mongocrypt_ctx_mongo_feed, [:puntero, :puntero], :bool

.mongocrypt_ctx_mongo_next_kms_ctx(ctx) ⇒ FFI::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.

Devuelve un puntero a un objeto mongocrypt_kms_ctx_t o NULL.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (FFI::Puntero)

    Un puntero a un objeto mongocrypt_kms_ctx_t.



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

función adjuntar :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.

Obtenga una operación BSON para que el controlador se ejecute contra MongoDB

collection, the key vault database, or mongocryptd.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • op_bson (FFI::Puntero)

    (parámetro 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

función adjuntar :mongocrypt_ctx_mongo_op, [:puntero, :puntero], :bool

.mongocrypt_ctx_new(cripta) ⇒ FFI::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.

Cree un nuevo objeto mongocrypt_ctx_t (un contenedor para libmongocrypt)

state machine).

Parámetros:

  • cripta (FFI::Puntero)

    Un puntero a un objeto mongocrypt_t.

Devuelve:

  • (FFI::Puntero)

    Un nuevo objeto mongocrypt_ctx_t.



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

función adjuntar :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

función adjuntar(
  :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 inicialice ctx antes de llamar a este método.

Establezca el algoritmo utilizado para el cifrado explícito.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • algoritmo (Cadena) -

    El nombre del algoritmo. Los valores válidos son:

    • “AEAD_AES_256_CBC_HMAC_SHA_512-Determinista”

    • “AEAD_AES_256_CBC_HMAC_SHA_512-Aleatorio”

  • len (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

función adjuntar(
  :algoritmo mongocrypt_ctx_setopt,
  [: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

función adjuntar(
  :rango del algoritmo mongocrypt_ctx_setopt,
  [
    :puntero,
    :puntero
  ],
  :bool
)

.mongocrypt_ctx_setopt_contention_factor(ctx, factor_de_contención) ⇒ 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

función adjuntar(
  :mongocrypt_ctx_setopt_factor_de_contención,
  [
    :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 inicialice ctx antes de llamar a este método.

Al crear una clave de datos, establezca un nombre alternativo para esa clave. Cuando

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

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • Binario (FFI::Puntero)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia a 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

función adjuntar(
  :mongocrypt_ctx_setopt_key_alt_name,
  [: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 inicialice 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::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • papelera (FFI::Puntero)

    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

función adjuntar(
  :mongocrypt_ctx_setopt_key_clave_de_cifrado,
  [: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 inicialice ctx antes de llamar a este método.

Establezca la identificación de clave utilizada para el cifrado explícito.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • id_clave (FFI::Puntero)

    Un puntero a un objeto mongocrypt_binary_t que hace referencia al identificador de clave de 16byte.

Devuelve:

  • (Booleano)

    Si la opción se configuró correctamente.



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

función adjuntar :mongocrypt_ctx_setopt_key_id, [:puntero, :puntero], :bool

.mongocrypt_ctx_setopt_key_material(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 inicialice 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::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • Binario (FFI::Puntero)

    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

función adjuntar(
  :material de clave de setopt de mongocrypt_ctx,
  [: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

función adjuntar(
  :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::Puntero)

    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

función adjuntar :estado_ctx_mongocrypt, [:puntero], :estado_ctx_mongocrypt

.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 del objeto mongocrypt_ctx_t en el

mongocrypt_status_t object.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

  • Estado (FFI::Puntero)

    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

función adjuntar :mongocrypt_ctx_status, [:puntero, :puntero], :bool

.mongocrypt_destroy(cripta) ⇒ 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 del objeto mongocrypt_t.

Parámetros:

  • cripta (FFI::Puntero)

    Un puntero a un objeto mongocrypt_t.

Devuelve:

  • (nil)

    Siempre nulo.



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

función adjuntar :mongocrypt_destroy, [:puntero], :void

.mongocrypt_init(cripta) ⇒ 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::Puntero)

    Un puntero a un objeto mongocrypt_t.

Devuelve:

  • (Booleano)

    Devuelve si la cripta se inicializó correctamente.



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

función adjuntar :mongocrypt_init, [:puntero], :bool

.mongocrypt_kms_ctx_bytes_needed(kms) ⇒ 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.

Obtenga la cantidad de bytes que necesita el contexto KMS.

Parámetros:

  • kilómetros (FFI::Puntero)

    El objeto mongocrypt_kms_ctx_t.

Devuelve:

  • (Entero)

    El número de bytes necesarios.



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

función adjuntar :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::Puntero)

    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

función adjuntar :mongocrypt_ctx_kms_done, [:puntero], :bool

.mongocrypt_kms_ctx_endpoint(kms, punto final) ⇒ 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:

  • kilómetros (FFI::Puntero)

    Un puntero a un objeto mongocrypt_kms_ctx_t.

  • punto final (FFI::Puntero)

    (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

función adjuntar :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

función adjuntar :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.

Envía las respuestas del KMS a libmongocrypt.

Parámetros:

  • kilómetros (FFI::Puntero)

    Un puntero al objeto mongocrypt_kms_ctx_t.

  • bytes (FFI::Puntero)

    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

función adjuntar :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

función adjuntar(
  :mongocrypt_kms_ctx_obtener_proveedor_kms,
  [:puntero, :puntero],
  :puntero
)

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

  • kilómetros (FFI::Puntero)

    Puntero al objeto mongocrypt_kms_ctx_t

  • msg (FFI::Puntero)

    (outparam) Puntero a un objeto mongocrypt_binary_t que tendrá la ubicación del mensaje escrito en él por libmongocrypt.

Devuelve:

  • (Booleano)

    Si la operación es exitosa.



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

función adjuntar :mensaje de mongocrypt_kms_ctx, [:puntero, :puntero], :bool

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

Escribe información de estado sobre el objeto mongocrypt_kms_ctx_t

to the mongocrypt_status_t object.

Parámetros:

  • kilómetros (FFI::Puntero)

    Un puntero al objeto mongocrypt_kms_ctx_t.

  • Estado (FFI::Puntero)

    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

función adjuntar :estado de mongocrypt_kms_ctx, [: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 dormir antes de enviar la solicitud KMS.

Parámetros:

  • ctx (FFI::Puntero)

    Un puntero a un objeto mongocrypt_ctx_t.

Devuelve:

  • (int)64

    Un número codificado de 64bits en microsegundos que indica cuánto tiempo se debe dormir.



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

función adjuntar :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.

Establezca un gancho criptográfico para las operaciones AES256-CTR.

Parámetros:

  • cripta (FFI::Puntero)

    Un puntero a un objeto mongocrypt_t.

  • aes_enc_fn (Procedimiento)

    Un método de cifrado AES-CTR.

  • aes_dec_fn (Procedimiento)

    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

función adjuntar(
  :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

función adjuntar(
  :mongocrypt_setopt_append_crypt_ruta_de_búsqueda_de_biblioteca_compartida,
  [
    :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

función adjuntar(:mongocrypt_setopt_bypass_query_analysis, [:puntero], :void)

.mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(cripta, sign_rsaes_pkcs1_v1_,5 ctx = nulo) ⇒ 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::Puntero)

    Un puntero a un objeto mongocrypt_t.

  • sign_rsaes_pkcs1_v1_5 (Procedimiento)

    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

función adjuntar(
  :mongocrypt_setopt_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::Puntero)

    Un puntero a un objeto mongocrypt_t.

  • aes_enc_fn (Procedimiento)

    Un método de cifrado AES.

  • aes_dec_fn (Procedimiento)

    Un método de descifrado AES.

  • random_fn (Procedimiento)

    Un método aleatorio.

  • sha_512_fn (Procedimiento)

    Un método HMAC SHA-512.

  • sha_256_fn (Procedimiento)

    Un método HMAC SHA-256.

  • función hash (Procedimiento)

    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

función adjuntar(
  :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

función adjuntar(
  :mongocrypt_setopt_mapa_de_configuración_de_campo_encriptado,
  [
    :puntero,
    :puntero
  ],
  :bool
)

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

Nota:

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

Configurar proveedores de KMS con un documento BSON.

Parámetros:

  • cripta (FFI::Puntero)

    Un puntero a un objeto mongocrypt_t.

  • proveedores de kms (FFI::Puntero)

    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

función adjuntar(
  :mongocrypt_setopt_kms_providers,
  [:puntero, :puntero],
  :bool
)

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

    Un puntero a un objeto mongocrypt_t.

  • log_fn (Método) -

    Un método de devolución de llamada 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

función adjuntar(
  :controlador de registro de mongocrypt_setopt,
  [:puntero, :mongocrypt_log_fn_t, :puntero],
  :bool
)

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

función adjuntar :mongocrypt_setopt_retry_kms, [:puntero, :bool], :bool

.mongocrypt_setopt_schema_map(crypt, mapa_de_esquema) ⇒ 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::Puntero)

    Un puntero a un objeto mongocrypt_t.

  • schema_map (FFI::Puntero)

    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

función adjuntar :mapa de esquema de mongocrypt_setopt, [:puntero, :puntero], :bool

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



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

función adjuntar(
  :mongocrypt_setopt_set_crypt_shared_lib_path_override,
  [
    :puntero,
    :cadena,
  ],
  :void
)

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

función adjuntar(
  :mongocrypt_setopt_use_necesita_estado_de_credenciales_kms,
  [ :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.

Establezca la información de estado del objeto mongocrypt_t en el

mongocrypt_status_t object.

Parámetros:

  • cripta (FFI::Puntero)

    Un puntero a un objeto mongocrypt_t.

  • Estado (FFI::Puntero)

    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

función adjuntar :mongocrypt_status, [:puntero, :puntero], :bool

.mongocrypt_status_code(estado) ⇒ 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.

Devuelve el código de error de estado.

Parámetros:

  • Estado (FFI::Puntero)

    Un puntero a un mongocrypt_status_t.

Devuelve:

  • (Entero)

    El código de estado.



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

función adjuntar :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::Puntero)

    Un puntero a un mongocrypt_status_t.

Devuelve:

  • (nil)

    Siempre nulo.



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

función adjuntar :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::Puntero)

    Un puntero a un 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:

  • (Cadena) -

    El mensaje de estado.



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

función adjuntar :mensaje de estado de mongocrypt, [:puntero, :puntero], :cadena

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

Devuelve:

  • (FFI::Puntero)

    Un puntero al nuevo mongocrypt_status_ts.



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

función adjuntar :mongocrypt_status_new, [], :puntero

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

Devuelve si el estado es correcto o un error.

Parámetros:

  • Estado (FFI::Puntero)

    Un puntero a un mongocrypt_status_t.

Devuelve:

  • (Booleano)

    Si el estado está bien.



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

función adjuntar :mongocrypt_status_ok, [:puntero], :bool

.mongocrypt_status_set(estado, tipo, código, mensaje, longitud) ⇒ 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.

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

Parámetros:

  • Estado (FFI::Puntero)

    Un puntero a un mongocrypt_status_t.

  • tipo ( Símbolo) -

    El tipo de estado; los valores posibles están definidos por la enumeración status_type.

  • Código (Entero)

    El código de estado.

  • Mensaje (Cadena) -

    El mensaje de estado.

  • len (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

función adjuntar(
  :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 estado.

Parámetros:

  • Estado (FFI::Puntero)

    Un puntero a un mongocrypt_status_t.

Devuelve:

  • ( Símbolo) -

    El tipo de estado (tal como se define en la enumeración status_type).



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

función adjuntar :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 cadena de versión de la biblioteca 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 cadena devuelta.

Devuelve:

  • (Cadena) -

    Una cadena de versión para libmongocrypt.



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

función adjuntar :mongocrypt_version, [:puntero], :cadena

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

Devuelve:

  • (FFI::Puntero)

    Un puntero a un nuevo objeto mongocrypt_t.



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

función adjuntar :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 (Cadena) -

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

Devuelve:

  • (Gem::Version)

    el número de versión

Aumentos:

  • (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 yo.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("Cadenade número de versión mal formada #{version}") Si coincidencia.nil?

  Gem::Versión.Nuevo(
    [
      coincidencia[:importante],
      coincidencia[:menor],
      coincidencia[:parche]
    ].Join('.')
  )
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.

Establezca un gancho criptográfico para las operaciones AES256-CTR.

Parámetros:

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

    Un método de cifrado AES-CTR

  • aes_decrypt_cb (Método) -

    Un método de descifrado AES-CTR

Aumentos:



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

def yo.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(identificador, 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.

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::Manejador)
  • ruta (Cadena) -

    Una ruta de búsqueda para la biblioteca compartida de crypt.



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

def yo.ruta de búsqueda de biblioteca compartida setopt_append_crypt(ASA, ruta)
  check_status(ASA) hacer
    ruta de búsqueda de biblioteca compartida mongocrypt_setopt_append_crypt(ASA.ref, ruta)
  end
end

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

Acepte omitir el análisis de consultas.

Si se ha suscrito:

  • No se intentará cargar la biblioteca compartida csfle.

  • Un mongocrypt_ctx_t nunca ingresará al estado MONGOCRYPT_CTX_NEED_MARKINGS.

Parámetros:

  • ASA (Mongo::Crypt::Manejador)


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

def yo.análisis de consultas de omisión de setopt(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.

Establezca un gancho criptográfico para el algoritmo RSASSA-PKCS1-v1_5 con

a SHA-256 hash oh the Handle.

Parámetros:

  • ASA (Mongo::Crypt::Manejador)
  • firma rsaes_pkcs_cb (Método) -

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

Aumentos:



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

def yo.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(identificador, aes_encrypt_cb, aes_decrypt_cb, aleatorio_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::Manejador)
  • 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 cadena 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

Aumentos:



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

def yo.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::Manejador)
  • efc_map (BSON::Documento)

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

Aumentos:



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

def yo.mapa de configuración de campo cifrado setopt(ASA, efc_map)
  validate_document(efc_map)
  datos = efc_map.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    check_status(ASA) hacer
      mongocrypt_setopt_encrypted_field_config_map(
        ASA.ref,
        data_p
      )
    end
  end
end

.setopt_kms_providers(identificador, 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.

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

Parámetros:

  • ASA (Mongo::Crypt::Manejador)
  • proveedores de kms (BSON::Documento)

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

Aumentos:



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

def yo.setopt_kms_providers(ASA, proveedores de kms)
  validate_document(proveedores de kms)
  datos = proveedores de kms.a_bson.a_s
  Binario.cadena de envoltura(datos) hacer |data_p|
    check_status(ASA) hacer
      proveedores de kms de mongocrypt_setopt(ASA.ref, data_p)
    end
  end
end

.setopt_log_handler(identificador, devolución de llamada de registro) ⇒ 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 devolución de llamada del registrador en el objeto Mongo::Crypt::Handle

Parámetros:

  • ASA (Mongo::Crypt::Manejador)
  • devolución de llamada de registro (Método)

Aumentos:



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

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

Establecer el mapa de esquema en el objeto Mongo::Crypt::Handle

Parámetros:

  • ASA (Mongo::Crypt::Manejador)
  • esquema_mapa_doc (BSON::Documento)

    El mapa de esquema como un objeto BSON::Document

Aumentos:



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

def yo.setopt_schema_map(ASA, esquema_mapa_doc)
  validate_document(esquema_mapa_doc)
  datos = esquema_mapa_doc.a_bson.a_s
  Binario.cadena de envoltura(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.

Establezca una única ruta de anulación para cargar la biblioteca compartida de criptografía.

Parámetros:

  • ASA (Mongo::Crypt::Manejador)
  • ruta (Cadena) -

    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 yo.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(identificador) ⇒ 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 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 que se suministren las credenciales a través de 'mongocrypt_ctx_provide_kms_providers`.

Un contexto solo ingresará a MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS si se configuró un documento vacío para un proveedor KMS en 'mongocrypt_setopt_kms_providers`.

Parámetros:

  • ASA (Mongo::Crypt::Manejador)


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

def yo.setopt_use_necesidad_de_estado_de_credenciales_kms(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

Comprueba que los datos especificados sean un hash antes de serializarlos en BSON para evitar errores de libmongocrypt

Parámetros:

  • datos (Objeto) -

    Los datos que se pasarán a libmongocrypt

Aumentos:



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

def yo.validate_document(datos)
  return Si datos.is_a?(Picadillo)

  Si datos.nil?
    Mensaje = "Seintentó pasar datos nulos a libmongocrypt".  +
      "Losdatos deben ser unhash"
  else
    Mensaje = "Seintentó pasar datos no válidos a libmongocrypt: #{data} " +
      "Losdatos deben ser unhash"
  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 superior a la versión mínima requerida. De lo contrario, genera un error de carga (LoadError).

Parámetros:

  • lmc_versión (Cadena) -

    Cadena que representa la versión de libmongocrypt.

Aumentos:

  • (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 yo.validate_version(lmc_versión)
  Si (actual_version = parse_version(lmc_versión)) < 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.

  • clave (FFI::Puntero)

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

  • iv (FFI::Puntero)

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

  • entrada (FFI::Puntero)

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

  • salida (FFI::Puntero)

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

  • Estado (FFI::Puntero)

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

Devuelve:

  • (Bool)

    Si el cifrado/descifrado fue exitoso.



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

devolución de llamada(
  :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 devolución de llamada 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::Puntero)

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

  • salida (FFI::Puntero)

    (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::Puntero)

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

Devuelve:

  • (Bool)

    Si el hashing fue exitoso.



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

devolución de llamada :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 devolución de llamada 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.

  • clave (FFI::Puntero)

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

  • entrada (FFI::Puntero)

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

  • salida (FFI::Puntero)

    (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::Puntero)

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

Devuelve:

  • (Bool)

    Si HMAC-SHA tuvo éxito.



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

devolución de llamada(
  :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 (Cadena) -

    El mensaje de registro

  • len (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 de contexto cuando se estableció esta devolución de llamada

Devuelve:

  • (nil)

    Siempre nulo.



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

devolución de llamada :mongocrypt_log_fn_t, [:nivel_de_registro, :cadena, :int, :puntero], :void

#mongocrypt_random_fn(ctx, salida, recuento, 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 devolución de llamada a una función aleatoria segura de cifrado.

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::Puntero)

    (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 (Entero)

    El número de bytes aleatorios a devolver.

  • Estado (FFI::Puntero)

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

Devuelve:

  • (Bool)

    Si el hashing fue exitoso.



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

devolución de llamada :mongocrypt_random_fn, [:puntero, :puntero, :int, :puntero], :bool