Classe: Mongo::Crypt::Binding Private

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
FFI::Biblioteca
Definido em:
lib/mongo/crypt/binding.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Uma vinculação Ruby para a biblioteca C libmongocrypt

Colapsode resumo constante

MIN_LIBMONGOCRYPT_VERSION =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Versão mínima da libmongocrypt exigida por esta versão do driver. Uma tentativa de usar o driver com qualquer versão anterior da libmongocrypt causará um LoadError.

Gem::Versão.Novo('1.12.0')

Recolhimento do Resumo do método de classe

Recolhimento do Resumo do método de instância

Detalhes do método de classe

.check_ctx_status(context) ⇒ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Gere um Mongo::Error::CryptError com base no status do objeto mongocrypt_ctx_t subjacente.

Retorna:

  • (nil)

    Sempre nulo.



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

def auto.check_ctx_status(Contexto)
  do_raise = se block_given?
               !rendimento
             mais
               true
             end

  Método a menos que do_raise

  Status = Status.Novo

  mongocrypt_ctx_status(Contexto.ctx_p, Status.ref)
  Status.create_crypt_error
end

.check_kms_ctx_status(kms_context) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Se o bloco fornecido retornar falso, gere um CryptError com as informações de status do objeto KmsContext fornecido.

Parâmetros:

Aumenta:



1106
1107
1108
1109
1110
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1106

def auto.check_kms_ctx_status(kms_context)
  Método se rendimento

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

.check_status(handle) ➤ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Gere um Mongo::Error::CryptError com base no status do objeto mongocrypt_t subjacente.

Retorna:

  • (nil)

    Sempre nulo.



1880
1881
1882
1883
1884
1885
1886
1887
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1880

def auto.check_status(lidar)
  Método se rendimento

  Status = Status.Novo

  mongocrypt_status(lidar.ref, Status.ref)
  Status.create_crypt_error
end

.crypt_shared_lib_version(handle) ➤ inteiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha uma codificação de constante de 64bits para a versão da biblioteca crypt_shared carregada, se disponível.

A versão é codificada como quatro números 16-bit, de cima para baixo:

  • Versão principal
  • Versão secundária
  • Revisão
  • reservado

Por exemplo, a versão 6.2.1 seria codificada como: 0x00060002'0001'0000

Parâmetros:

Retorna:

  • (Inteiro)

    Um número de versão codificada de 64bits, com a versão codificada como quatro números inteiros de dezesseis bits, ou zero se nenhuma biblioteca crypt_shared tiver sido carregada.



1619
1620
1621
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1619

def auto.crypt_shared_lib_version(lidar)
  mongocrypt_crypt_shared_lib_version(lidar.ref)
end

.ctx_datakey_init(contexto) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize o contexto para criar uma chave de dados

Parâmetros:

Aumenta:



623
624
625
626
627
# Arquivo 'lib/mongo/crypt/binding.rb', linha 623

def auto.ctx_datakey_init(Contexto)
  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_datakey_init(Contexto.ctx_p)
  end
end

.ctx_decrypt_init(contexto, comando) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize o contexto para descriptografia automática

Parâmetros:

Aumenta:



784
785
786
787
788
789
790
791
792
# Arquivo 'lib/mongo/crypt/binding.rb', linha 784

def auto.ctx_decrypt_init(Contexto, comando)
  validate_document(comando)
  de dados = comando.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_decrypt_init(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_encrypt_init(contexto, db_name, comando) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicializar o contexto para criptografia automática

Parâmetros:

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

    O nome do banco de banco de dados no qual o comando criptografado está sendo executado

  • comando (Hash)

    O comando a ser criptografado

Aumenta:



690
691
692
693
694
695
696
697
698
# Arquivo 'lib/mongo/crypt/binding.rb', linha 690

def auto.ctx_encrypt_init(Contexto, db_name, comando)
  validate_document(comando)
  de dados = comando.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_encrypt_init(Contexto.ctx_p, db_name, -1, data_p)
    end
  end
end

.ctx_explicit_decrypt_init(context, doc) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize o contexto para descriptografia explícita

Parâmetros:

Aumenta:



814
815
816
817
818
819
820
821
822
# Arquivo 'lib/mongo/crypt/binding.rb', linha 814

def auto.ctx_explicit_decrypt_init(Contexto, doc)
  validate_document(doc)
  de dados = doc.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_explicit_decrypt_init(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_explicit_encrypt_expression_init(context, doc) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize o Contexto para criptografia de expressão explícita.

Parâmetros:

Aumenta:



758
759
760
761
762
763
764
765
766
# Arquivo 'lib/mongo/crypt/binding.rb', linha 758

def auto.ctx_explicit_encrypt_expression_init(Contexto, doc)
  validate_document(doc)
  de dados = doc.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_explicit_encrypt_expression_init(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_explicit_encrypt_init(context, doc) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicializar o contexto para criptografia explícita

Parâmetros:

Aumenta:



724
725
726
727
728
729
730
731
732
# Arquivo 'lib/mongo/crypt/binding.rb', linha 724

def auto.ctx_explicit_encrypt_init(Contexto, doc)
  validate_document(doc)
  de dados = doc.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_explicit_encrypt_init(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_finalize(contexto) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Finalize a máquina de estados representada pelo Contexto

Parâmetros:

Aumenta:



1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1217

def auto.ctx_finalize(Contexto)
  binário = Binário.Novo

  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_finalize(Contexto.ctx_p, binário.ref)
  end

  # TODO: como o binário faz referência a um ponteiro C, e ByteBuffer é
  # escritos em C em MRI, poderíamos omitir uma cópia dos dados fazendo
  # ByteBuffer faz referência à string que pertence a libmongocrypt.
  BSON::Documento.from_bson(BSON::ByteBuffer.Novo(binário.to_s), modo: Contexto.bson_mode)
end

.ctx_kms_done(context) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Indique para libmongocrypt que ela não receberá mais respostas de KMS.

Parâmetros:

Aumenta:



1194
1195
1196
1197
1198
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1194

def auto.ctx_kms_done(Contexto)
  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_kms_done(Contexto.ctx_p)
  end
end

.ctx_mongo_db(context) ⇒ String

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o nome do banco de dados para a operação collinfo atual.

Parâmetros:

Retorna:

  • (string)

    O nome do banco de dados.



1720
1721
1722
1723
1724
1725
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1720

def auto.ctx_mongo_db(Contexto)
  db_name = mongocrypt_ctx_mongo_db(Contexto.ctx_p)
  Método db_name se db_name

  check_ctx_status(Contexto)
end

.ctx_mongo_feed(contexto, doc) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Alimente uma resposta do motorista de volta para libmongocrypt

Parâmetros:

Aumenta:



896
897
898
899
900
901
902
903
904
# Arquivo 'lib/mongo/crypt/binding.rb', linha 896

def auto.ctx_mongo_feed(Contexto, doc)
  validate_document(doc)
  de dados = doc.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_mongo_feed(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_mongo_op(context) ⇒ BSON::Document

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna um BSON::Document que representa uma operação que o driver deve executar em nome da libmongocrypt para obter as informações necessárias para continuar com a criptografia/descriptografia (por exemplo, um filtro para uma query de cofre de chaves).

Parâmetros:

Retorna:

  • (BSON::Document)

    A operação que o motorista deve executar

Aumenta:

  • (Mongo::Crypt)

    Se houver um erro ao obter a operação



867
868
869
870
871
872
873
874
875
876
877
878
# Arquivo 'lib/mongo/crypt/binding.rb', linha 867

def auto.ctx_mongo_op(Contexto)
  binário = Binário.Novo

  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_mongo_op(Contexto.ctx_p, binário.ref)
  end

  # TODO: como o binário faz referência a um ponteiro C, e ByteBuffer é
  # escritos em C em MRI, poderíamos omitir uma cópia dos dados fazendo
  # ByteBuffer faz referência à string que pertence a libmongocrypt.
  BSON::Documento.from_bson(BSON::ByteBuffer.Novo(binário.to_s), modo: :bson)
end

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

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorne um novo objeto KmsContext necessário para um objeto Context .

Parâmetros:

Retorna:

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

    O KmsContext necessário para buscar uma chave mestra Amazon Web Services ou nulo, se nenhum KmsContext for necessário



928
929
930
931
932
933
934
935
936
# Arquivo 'lib/mongo/crypt/binding.rb', linha 928

def auto.ctx_next_kms_ctx(Contexto)
  kms_ctx_p = mongocrypt_ctx_next_kms_ctx(Contexto.ctx_p)

  se kms_ctx_p.nulo?
    nada
  mais
    KmsContext.Novo(kms_ctx_p)
  end
end

.ctx_provide_kms_providers(contexto, kms_providers) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Ligue para em resposta ao estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS para definir as configurações do provedor KMS por contexto. Eles seguem o mesmo formato que `mongocrypt_setopt_kms_providers``. Se nenhuma chave estiver presente na entrada BSON, as configurações do provedor KMS configuradas para o mongocrypt_t na inicialização serão usadas.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)

    Contexto de criptografia.

  • kms_providers (BSON::Document)

    documento BSON mapeando os nomes do provedor KMS para as credenciais.

Aumenta:



1759
1760
1761
1762
1763
1764
1765
1766
1767
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1759

def auto.ctx_provide_kms_providers(Contexto, kms_providers)
  validate_document(kms_providers)
  de dados = kms_providers.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_provide_kms_providers(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_rewrap_many_datakey_init(contexto, filtro) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize um contexto para retrair as chaves de dados.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)
  • filtro, filtro (BSON::Document)

    Documento BSON que representa o filtro a ser usado para o comando find na coleção de cofre de chaves para recuperar chaves de dados para reencapsulamento.

Retorna:

  • (Booleano)

    Se a inicialização foi bem-sucedida.



654
655
656
657
658
659
660
661
# Arquivo 'lib/mongo/crypt/binding.rb', linha 654

def auto.ctx_rewrap_many_datakey_init(Contexto, filtro, filtro)
  filter_data = filtro, filtro.to_bson.to_s
  Binário.wrap_string(filter_data) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_rewrap_many_datakey_init(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_setopt_algorithm(contexto, nome) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina o algoritmo no contexto

Parâmetros:

  • Contexto (Mongo::Crypt::Context)
  • name (string)

    O nome do algoritmo. Os valores válidos são:

    • "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
    • "AEAD_AES_256_CBC_HMAC_SHA_512-Aleatório"

Aumenta:



567
568
569
570
571
# Arquivo 'lib/mongo/crypt/binding.rb', linha 567

def auto.ctx_setopt_algorithm(Contexto, name)
  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_setopt_algorithm(Contexto.ctx_p, name, -1)
  end
end

.ctx_setopt_algorithm_range(contexto, opções) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

O algoritmo Range é apenas experimental. Não é destinado a

Defina opções para criptografia explícita com o algoritmo de "faixa".

uso público.

Parâmetros:

Aumenta:



1866
1867
1868
1869
1870
1871
1872
1873
1874
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1866

def auto.ctx_setopt_algorithm_range(Contexto, opciona)
  validate_document(opciona)
  de dados = opciona.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_setopt_algorithm_range(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_setopt_contention_factor(contexto, fator) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina o fator de contenção usado para criptografia explícita. O fator de contenção é usado somente para criptografia FLE 2 indexada.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)

    Contexto de criptografia explícito.

  • fator (Inteiro)

    Fator de contenção usado para criptografia explícita.

Aumenta:



1829
1830
1831
1832
1833
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1829

def auto.ctx_setopt_contention_factor(Contexto, fator)
  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_setopt_contention_factor(Contexto.ctx_p, fator)
  end
end

.ctx_setopt_key_alt_names(contexto, key_alt_names) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Definir vários nomes de chave alternativos na criação de chave de dados

Parâmetros:

  • Contexto (Mongo::Crypt::Context)

    Um DataKeyContext

  • key_alt_names (Array)

    Uma array de nomes de chaves alternativos como strings

Aumenta:



498
499
500
501
502
503
504
505
506
507
508
# Arquivo 'lib/mongo/crypt/binding.rb', linha 498

def auto.ctx_setopt_key_alt_names(Contexto, key_alt_names)
  key_alt_names.cada fazer |key_alt_name|
    key_alt_name_bson = { keyAltName: key_alt_name }.to_bson.to_s

    Binário.wrap_string(key_alt_name_bson) fazer |key_alt_name_p|
      check_ctx_status(Contexto) fazer
        mongocrypt_ctx_setopt_key_alt_name(Contexto.ctx_p, key_alt_name_p)
      end
    end
  end
end

.ctx_setopt_key_encryption_key(contexto, key_document) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina o documento de chave de chave de criptografia para criar uma chave de dados.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)
  • key_document (BSON::Document)

    documento BSON que representa o documento da chave de criptografia de chaves com um campo"provider" adicional.

Aumenta:



596
597
598
599
600
601
602
603
604
# Arquivo 'lib/mongo/crypt/binding.rb', linha 596

def auto.ctx_setopt_key_encryption_key(Contexto, key_document)
  validate_document(key_document)
  de dados = key_document.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_setopt_key_encryption_key(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_setopt_key_id(context, key_id) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Define a opção de ID da chave em um contexto de criptografia explícito.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)

    Contexto explícito de criptografia

  • key_id (string)

    O ID da chave

Aumenta:



465
466
467
468
469
470
471
# Arquivo 'lib/mongo/crypt/binding.rb', linha 465

def auto.ctx_setopt_key_id(Contexto, key_id)
  Binário.wrap_string(key_id) fazer |key_id_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_setopt_key_id(Contexto.ctx_p, key_id_p)
    end
  end
end

.ctx_setopt_key_material(contexto, key_material) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina um material de chave personalizado a ser usado para criptografar dados.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)

    Um DataKeyContext

  • key_material (BSON::Binary)

    96 bytes de material de chave personalizada

Aumenta:



533
534
535
536
537
538
539
540
# Arquivo 'lib/mongo/crypt/binding.rb', linha 533

def auto.ctx_setopt_key_material(Contexto, key_material)
  de dados = { 'keyMaterial' => key_material }.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_ctx_status(Contexto) fazer
      mongocrypt_ctx_setopt_key_material(Contexto.ctx_p, data_p)
    end
  end
end

.ctx_setopt_query_type(contexto, query_type) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina o tipo de query a ser usado para a criptografia explícita FLE 2 . O tipo de query é usado somente para criptografia FLE 2 indexada.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)

    Contexto de criptografia explícito.

  • :mongocrypt_query_type (string)

    query_type Tipo da query.

Aumenta:



1797
1798
1799
1800
1801
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1797

def auto.ctx_setopt_query_type(Contexto, query_type)
  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_setopt_query_type(Contexto.ctx_p, query_type, -1)
  end
end

.get_binary_data_direct(mongocrypt_binary_t) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



179
180
181
# Arquivo 'lib/mongo/crypt/binding.rb', linha 179

def auto.get_binary_data_direct(mongocrypt_binary_t)
  mongocrypt_binary_t.get_pointer(0)
end

.get_binary_ten_direct(mongocrypt_binary_t) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



183
184
185
# Arquivo 'lib/mongo/crypt/binding.rb', linha 183

def auto.get_binary_ten_direct(mongocrypt_binary_t)
  mongocrypt_binary_t.get_uint32(FFI::NativeType::POINTER.Tamanho)
end

.init(handle) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize o objeto Mongo::Crypt::Handle

Parâmetros:

Aumenta:



405
406
407
408
409
# Arquivo 'lib/mongo/crypt/binding.rb', linha 405

def auto.init(lidar)
  check_status(lidar) fazer
    mongocrypt_init(lidar.ref)
  end
end

.kms_ctx_bytes_needed(kms_context) ➤ Inteiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o número de bytes necessários para o KmsContext.

Parâmetros:

Retorna:

  • (Inteiro)

    O número de bytes necessários



1062
1063
1064
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1062

def auto.kms_ctx_bytes_needed(kms_context)
  mongocrypt_kms_ctx_bytes_needed(kms_context.kms_ctx_p)
end

.kms_ctx_endpoint(kms_context) ⇒ String | nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o nome do host com o qual se conectar por TLS para obter informações sobre a chave mestra do Amazon Web Services .

Parâmetros:

Retorna:

  • (string | nil)

    O nome do host, ou nulo se não existir nenhum

Aumenta:



1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1038

def auto.kms_ctx_endpoint(kms_context)
  ptr = FFI::MemoryPointer.Novo(:pointer, 1)

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

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

.kms_ctx_fail(kms_context) ➤ true, false

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Verifique se a última solicitação com falha para o contexto KMS pode ser repetida.

Parâmetros:

Retorna:

  • (verdadeiro, falso)

    se a solicitação com falha pode ser repetida.



1157
1158
1159
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1157

def auto.kms_ctx_fail(kms_context)
  mongocrypt_kms_ctx_fail(kms_context.kms_ctx_p)
end

.kms_ctx_feed(kms_context, bytes) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Alimente as respostas do KMS de volta para libmongocrypt.

Parâmetros:

Aumenta:



1082
1083
1084
1085
1086
1087
1088
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1082

def auto.kms_ctx_feed(kms_context, bytes)
  check_kms_ctx_status(kms_context) fazer
    Binário.wrap_string(bytes) fazer |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 faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o identificador do provedor de KMS associado a esta solicitação de KMS.

Isso é usado para configurar condicionalmente conexões TLS com base na solicitação do KMS. É útil para o KMIP, que se autentica com um certificado de cliente .

Parâmetros:

  • KMS (FFI::Pointer)

    objeto mongocrypt_kms_ctx_t do ponteiro .



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

def auto.kms_ctx_get_kms_provider(kms_context)
  len_ptr = FFI::MemoryPointer.Novo(:uint32, 1)
  fornecedor = mongocrypt_kms_ctx_get_kms_provider(
    kms_context.kms_ctx_p,
    len_ptr
  )
  se len_ptr.nada?
    nada
  mais
    len = se BSON::ambiente.jRuby?
            # A implementação do JRuby FFI não tem o método 'read (type)', mas
            # tem este `get_uint32'.
            len_ptr.get_uint32
          mais
            # Para MRI, usamos um método de `read` documentado - https://www.rubydoc.info/github/ffi/ffi/FFI%2FPointer:read
            len_ptr.ler(:uint32)
          end
    fornecedor.read_string(len).to_sym
  end
end

.kms_ctx_message(kms_context) ➤ string

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha a mensagem necessária para buscar a HTTP Amazon Web Services KMS chave mestra do de um objeto KmsContext.

Parâmetros:

Retorna:

  • (string)

    A mensagem HTTP

Aumenta:



1009
1010
1011
1012
1013
1014
1015
1016
1017
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1009

def auto.kms_ctx_message(kms_context)
  binário = Binário.Novo

  check_kms_ctx_status(kms_context) fazer
    mongocrypt_kms_ctx_message(kms_context.kms_ctx_p, binário.ref)
  end

  binário.to_s
end

.kms_ctx_setopt_retry_kms(handle, value) ⇒ true, fale

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Habilite ou desabilite o comportamento de novas tentativas do KMS.

Parâmetros:

Retorna:

  • (true, fale)

    true se a opção foi definida, caso contrário, false.



1176
1177
1178
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1176

def auto.kms_ctx_setopt_retry_kms(lidar, valor)
  mongocrypt_setopt_retry_kms(lidar.ref, valor)
end

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

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Leia as informações de status do KmsContext fornecido em um objeto Status sem gerar.

Parâmetros:

Retorna:



1118
1119
1120
1121
1122
1123
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1118

def auto.kms_ctx_status(kms_context)
  Status = Status.Novo

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

.kms_ctx_usleep(kms_context) ⇒ Integer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o número de milissegundos para hibernar antes de enviar a solicitação KMS para o contexto KMS fornecido.

Parâmetros:

Retorna:

  • (Inteiro)

    Um número codificado de 64bits de microssegundos para sono.



1140
1141
1142
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1140

def auto.kms_ctx_usleep(kms_context)
  mongocrypt_kms_ctx_usleep(kms_context.kms_ctx_p)
end

.mongocrypt_binary_data(binary) ➤ FFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o ponteiro para os dados subjacentes para o mongocrypt_binary_t.

Parâmetros:

  • binário (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t .

Retorna:

  • (FFI::Pointer)

    Um ponteiro para a array de dados.



169
# Arquivo 'lib/mongo/crypt/binding.rb', linha 169

anexar função :mongocrypt_binary_data, [ :pointer ], :pointer

.mongocrypt_binary_destroy(binary) ➤ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Destrua o objeto mongocrypt_binary_t .

Parâmetros:

  • binário (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t .

Retorna:

  • (nil)

    Sempre nulo.



193
# Arquivo 'lib/mongo/crypt/binding.rb', linha 193

anexar função :mongocrypt_binary_destroy, [ :pointer ], :void

.mongocrypt_binary_ten(binary) ➤ Inteiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o comprimento da array de dados subjacente.

Parâmetros:

  • binário (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t .

Retorna:

  • (Inteiro)

    O comprimento da array de dados.



177
# Arquivo 'lib/mongo/crypt/binding.rb', linha 177

anexar função :mongocrypt_binary_ten, [ :pointer ], :int

.mongocrypt_binary_new ➤ FFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Cria um novo objeto mongocrypt_binary_t (uma visualização não própria de uma array de bytes).

Retorna:

  • (FFI::Pointer)

    Um ponteiro para o objeto mongocrypt_binary_t recém-criado.



145
# Arquivo 'lib/mongo/crypt/binding.rb', linha 145

anexar função :mongocrypt_binary_new, [], :pointer

.mongocrypt_binary_new_from_data(data, lent) ➤ FFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Crie um novo objeto mongocrypt_binary_t que mantém um ponteiro para a array de bytes especificada.

Parâmetros:

  • de dados (FFI::Pointer)

    Um ponteiro para uma array de bytes; os dados não são copiados e devem sobreviver ao objeto mongocrypt_binary_t .

  • len (Inteiro)

    O comprimento do argumento array.

Retorna:

  • (FFI::Pointer)

    Um ponteiro para o objeto mongocrypt_binary_t recém-criado.



157
158
159
160
161
# Arquivo 'lib/mongo/crypt/binding.rb', linha 157

anexar função(
  :mongocrypt_binary_new_from_data,
  %i[pointer int],
  :pointer
)

.mongocrypt_crypt_shared_lib_version(crypt) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1597
1598
1599
1600
1601
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1597

anexar função(
  :mongocrypt_crypt_shared_lib_version,
  [ :pointer ],
  :uint64
)

.mongocrypt_ctx_datakey_init(ctx, filtro) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



616
# Arquivo 'lib/mongo/crypt/binding.rb', linha 616

anexar função :mongocrypt_ctx_datakey_init, [ :pointer ], :bool

.mongocrypt_ctx_decrypt_init(ctx, doc) ⇒ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicializa o ctx para descriptografia automática.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • doc (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência ao documento a ser descriptografado como uma de BSON caracteres binária string.

Retorna:

  • (Booleano)

    Se a inicialização foi bem-sucedida.



776
# Arquivo 'lib/mongo/crypt/binding.rb', linha 776

anexar função :mongocrypt_ctx_decrypt_init, %i[pointer pointer], :bool

.mongocrypt_ctx_destroy(ctx) ➤ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Destrua a referência ao objeto mongocrypt_ctx_t.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

Retorna:

  • (nil)

    Sempre nulo.



1236
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1236

anexar função :mongocrypt_ctx_destroy, [ :pointer ], :void

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

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Este método espera que o BSON passado esteja no formato: { "v": valor BSON para descriptografar }.

Inicializa o ctx para criptografia automática.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • db (string)

    O nome do banco de dados.

  • db_ten (Inteiro)

    O comprimento do argumento do nome do banco de dados (ou -1 para uma string terminada em nulo).

  • cmd (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que referencia o comando de banco de dados de dados como uma string binária.

Retorna:

  • (Booleano)

    Se a inicialização foi bem-sucedida.



676
677
678
679
680
# Arquivo 'lib/mongo/crypt/binding.rb', linha 676

anexar função(
  :mongocrypt_ctx_encrypt_init,
  %i[pointer string int pointer],
  :bool
)

.mongocrypt_ctx_explicit_decrypt_init(ctx, msg) ⇒ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicializa o ctx para descriptografia explícita.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • mensagem (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência à mensagem a ser descriptografada como uma string binária BSON.

Retorna:

  • (Booleano)

    Se a inicialização foi bem-sucedida.



802
803
804
805
806
# Arquivo 'lib/mongo/crypt/binding.rb', linha 802

anexar função(
  :mongocrypt_ctx_explicit_decrypt_init,
  %i[pointer pointer],
  :bool
)

.mongocrypt_ctx_explicit_encrypt_init(ctx, msg) ⇒ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Antes de chamar esse método, defina um key_id, key_alt_name (opcional) e um algoritmo de criptografia usando os seguintes métodos: mongocrypt_ctx_setopt_key_id, mongocrypt_ctx_setopt_key_alt_name e mongocrypt_ctx_setopt_algorithm.

Inicializa o ctx para criptografia de expressão explícita.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • mensagem (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência à mensagem a ser criptografada como uma string binária.

Retorna:

  • (Booleano)

    Se a inicialização foi bem-sucedida.



712
713
714
715
716
# Arquivo 'lib/mongo/crypt/binding.rb', linha 712

anexar função(
  :mongocrypt_ctx_explicit_encrypt_init,
  %i[pointer pointer],
  :bool
)

.mongocrypt_ctx_finalize(ctx, op_bson) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Execute a criptografia ou descriptografia final e retorne um documento BSON .

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • op_bson (FFI::Pointer)

    (out param) Um ponteiro para um objeto mongocrypt_binary_t que terá uma referência ao documento BSON criptografado final.

Retorna:

  • (Booleano)

    Um booleano que indica o sucesso da operação.



1209
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1209

anexar função :mongocrypt_ctx_finalize, %i[pointer pointer], :void

.mongocrypt_ctx_mongo_db(ctx) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1714
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1714

anexar função :mongocrypt_ctx_mongo_db, [ :pointer ], : string

.mongocrypt_ctx_mongo_done(ctx) ⇒ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Indique para libmongocrypt que o driver terminou de alimentar respostas.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

Retorna:

  • (Booleano)

    Um booleano que indica o sucesso da operação.



912
# Arquivo 'lib/mongo/crypt/binding.rb', linha 912

anexar função :mongocrypt_ctx_mongo_done, [ :pointer ], :bool

.mongocrypt_ctx_mongo_feed(ctx, responder) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Alimente uma resposta BSON para libmongocrypt.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • responder (FFI::Pointer)

    Um objeto mongocrypt_binary_t que faz referência à resposta BSON para alimentar libmongocrypt.

Retorna:

  • (Booleano)

    Um booleano que indica o sucesso da operação.



888
# Arquivo 'lib/mongo/crypt/binding.rb', linha 888

anexar função :mongocrypt_ctx_mongo_feed, %i[pointer pointer], :bool

.mongocrypt_ctx_mongo_next_kms_ctx(ctx) ➤ FFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorne um ponteiro para um objeto mongocrypt_kms_ctx_t ou NULL.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

Retorna:

  • (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_kms_ctx_t .



920
# Arquivo 'lib/mongo/crypt/binding.rb', linha 920

anexar função :mongocrypt_ctx_next_kms_ctx, [ :pointer ], :pointer

.mongocrypt_ctx_mongo_op(ctx, op_bson) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha uma operação BSON para que o driver seja executado na coleção do MongoDB , no banco de banco de dados do cofre de chaves ou no mongocryptd.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • op_bson (FFI::Pointer)

    (out param) Um ponteiro para um objeto mongocrypt_binary_t que terá uma referência à operação BSON gravada nele por libmongocrypt.

Retorna:

  • (Booleano)

    Um booleano que indica o sucesso da operação.



856
# Arquivo 'lib/mongo/crypt/binding.rb', linha 856

anexar função :mongocrypt_ctx_mongo_op, %i[pointer pointer], :bool

.mongocrypt_ctx_new(crypt) ➤ FFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Crie um novo objeto mongocrypt_ctx_t (um wrapper para a máquina de estado libmongocrypt).

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

Retorna:

  • (FFI::Pointer)

    Um novo objeto mongocrypt_ctx_t.



436
# Arquivo 'lib/mongo/crypt/binding.rb', linha 436

anexar função :mongocrypt_ctx_new, [ :pointer ], :pointer

.mongocrypt_ctx_provide_kms_providers(ctx, kms_providers) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1742
1743
1744
1745
1746
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1742

anexar função(
  :mongocrypt_ctx_provide_kms_providers,
  %i[pointer pointer],
  :bool
)

.mongocrypt_ctx_setopt_algorithm(ctx, algoritmo, lent) ➤ booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Não inicialize ctx antes de chamar este método.

Defina o algoritmo usado para criptografia explícita.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • algoritmo (string)

    O nome do algoritmo. Os valores válidos são:

    • "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"
    • "AEAD_AES_256_CBC_HMAC_SHA_512-Aleatório"
  • len (Inteiro)

    O comprimento da string do algoritmo.

Retorna:

  • (Booleano)

    Se a opção foi definida com sucesso.



553
554
555
556
557
# Arquivo 'lib/mongo/crypt/binding.rb', linha 553

anexar função(
  :mongocrypt_ctx_setopt_algorithm,
  %i[pointer string int],
  :bool
)

.mongocrypt_ctx_setopt_algorithm_range(ctx, opts) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1848
1849
1850
1851
1852
1853
1854
1855
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1848

anexar função(
  :mongocrypt_ctx_setopt_algorithm_range,
  %i[
    pointer
    pointer
  ],
  :bool
)

.mongocrypt_ctx_setopt_contention_factor(ctx, containsion_factor) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1813
1814
1815
1816
1817
1818
1819
1820
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1813

anexar função(
  :mongocrypt_ctx_setopt_contention_factor,
  %i[
    pointer
    int64
  ],
  :bool
)

.mongocrypt_ctx_setopt_key_alt_name(ctx, binary) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Não inicialize ctx antes de chamar este método.

Ao criar uma chave de dados, defina um nome alternativo nessa chave. Ao executar a criptografia explícita, especifique qual chave de dados usar para criptografia com base em seu campo keyAltName .

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • binário (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência a um documento BSON no formato { "keyAltName": }.

Retorna:

  • (Booleano)

    Se o nome alternativo foi definido com sucesso.



485
486
487
488
489
# Arquivo 'lib/mongo/crypt/binding.rb', linha 485

anexar função(
  :mongocrypt_ctx_setopt_key_alt_name,
  %i[pointer pointer],
  :bool
)

.mongocrypt_ctx_setopt_key_encryption_key(ctx) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Não inicialize ctx antes de chamar este método.

Defina o documento de chave de chave de criptografia para criar uma chave de dados.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • bin (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência a um documento BSON que representa o documento de chave de criptografia com um campo "provedor" adicional.

Retorna:

  • (Booleano)

    Se a opção foi definida com sucesso.



583
584
585
586
587
# Arquivo 'lib/mongo/crypt/binding.rb', linha 583

anexar função(
  :mongocrypt_ctx_setopt_key_encryption_key,
  %i[pointer pointer],
  :bool
)

.mongocrypt_ctx_setopt_key_id(ctx, key_id) ⇒ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Não inicialize ctx antes de chamar este método.

Defina o ID da chave usado para criptografia explícita.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • key_id (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência ao ID da chave 16-byte.

Retorna:

  • (Booleano)

    Se a opção foi definida com sucesso.



457
# Arquivo 'lib/mongo/crypt/binding.rb', linha 457

anexar função :mongocrypt_ctx_setopt_key_id, %i[pointer pointer], :bool

.mongocrypt_ctx_setopt_key_material(ctx, binário) ➤ Booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Não inicialize ctx antes de chamar este método.

Ao criar uma chave de dados, defina um material de chave personalizado para usar na criptografia de dados.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • binário (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência à chave de criptografia de dados a ser usada.

Retorna:

  • (Booleano)

    Se o material da chave personalizada foi definido com sucesso.



520
521
522
523
524
# Arquivo 'lib/mongo/crypt/binding.rb', linha 520

anexar função(
  :mongocrypt_ctx_setopt_key_material,
  %i[pointer pointer],
  :bool
)

.mongocrypt_ctx_setopt_query_type(ctx, mongocrypt_query_type) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1780
1781
1782
1783
1784
1785
1786
1787
1788
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1780

anexar função(
  :mongocrypt_ctx_setopt_query_type,
  %i[
    pointer
    string
    int
  ],
  :bool
)

.mongocrypt_ctx_state(ctx) ➤ Símbolo

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o estado atual do ctx.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

Retorna:

  • (Símbolo)

    O estado atual será um dos valores definidos pelo enum mongocrypt_ctx_state.



844
# Arquivo 'lib/mongo/crypt/binding.rb', linha 844

anexar função :mongocrypt_ctx_state, [ :pointer ], :mongocrypt_ctx_state

.mongocrypt_ctx_status(ctx, status) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina as informações de status do objeto mongocrypt_ctx_t no objeto mongocrypt_status_t .

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

  • Status (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t.

Retorna:

  • (Booleano)

    Se o status foi definido com sucesso.



446
# Arquivo 'lib/mongo/crypt/binding.rb', linha 446

anexar função :mongocrypt_ctx_status, %i[pointer pointer], :bool

.mongocrypt_destroy(crypt) ➤ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Destrua a referência ao objeto mongocrypt_t.

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

Retorna:

  • (nil)

    Sempre nulo.



427
# Arquivo 'lib/mongo/crypt/binding.rb', linha 427

anexar função :mongocrypt_destroy, [ :pointer ], :void

.mongocrypt_init(crypt) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize o objeto mongocrypt_t .

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

Retorna:

  • (Booleano)

    Retorna se a criptografia foi inicializada com sucesso.



398
# Arquivo 'lib/mongo/crypt/binding.rb', linha 398

anexar função :mongocrypt_init, [ :pointer ], :bool

.mongocrypt_kms_ctx_bytes_needed(KMS) ➤ Inteiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o número de bytes necessários para o contexto KMS.

Parâmetros:

  • KMS (FFI::Pointer)

    O objeto mongocrypt_kms_ctx_t .

Retorna:

  • (Inteiro)

    O número de bytes necessários.



1055
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1055

anexar função :mongocrypt_kms_ctx_bytes_needed, [ :pointer ], :int

.mongocrypt_kms_ctx_done(ctx) ⇒ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Indique para libmongocrypt que ela não receberá mais respostas de objetos mongocrypt_kms_ctx_t.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

Retorna:

  • (Booleano)

    Se a operação foi bem-sucedida.



1187
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1187

anexar função :mongocrypt_ctx_kms_done, [ :pointer ], :bool

.mongocrypt_kms_ctx_endpoint(KMS, endpoint) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha o nome do host com o qual se conectar por TLS para obter informações sobre a chave mestra do Amazon Web Services .

Parâmetros:

  • KMS (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_kms_ctx_t .

  • endpoint (FFI::Pointer)

    (out param) Um ponteiro para o qual a string de endpoint será escrita por libmongocrypt.

Retorna:

  • (Booleano)

    Se a operação foi bem-sucedida.



1028
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1028

anexar função :mongocrypt_kms_ctx_endpoint, %i[pointer pointer], :bool

.mongocrypt_kms_ctx_fail(ctx) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1151
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1151

anexar função :mongocrypt_kms_ctx_fail, [ :pointer ], :bool

.mongocrypt_kms_ctx_feed(KMS, bytes) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Alimente as respostas do KMS de volta para libmongocrypt.

Parâmetros:

  • KMS (FFI::Pointer)

    Um ponteiro para o objeto mongocrypt_kms_ctx_t.

  • bytes (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência à resposta do KMS.

Retorna:

  • (Booleano)

    Se a operação foi bem-sucedida.



1074
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1074

anexar função :mongocrypt_kms_ctx_feed, %i[pointer pointer], :bool

.mongocrypt_kms_ctx_get_kms_provider(crypt, kms_providers) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



954
955
956
957
958
# Arquivo 'lib/mongo/crypt/binding.rb', linha 954

anexar função(
  :mongocrypt_kms_ctx_get_kms_provider,
  %i[pointer pointer],
  :pointer
)

.mongocrypt_kms_ctx_message(KMS, mensagem) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha a mensagem necessária para buscar a Amazon Web Services KMS chave mestra do .

Parâmetros:

  • KMS (FFI::Pointer)

    Ponteiro para o objeto mongocrypt_kms_ctx_t

  • mensagem (FFI::Pointer)

    (outparam) Ponteiro para um objeto mongocrypt_binary_t que terá a localização da mensagem gravada nele por libmongocrypt.

Retorna:

  • (Booleano)

    Se a operação foi bem-sucedida.



999
# Arquivo 'lib/mongo/crypt/binding.rb', linha 999

anexar função :mongocrypt_kms_ctx_message, %i[pointer pointer], :bool

.mongocrypt_kms_ctx_status(KMS, status) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Escreva informações de status sobre o objeto mongocrypt_kms_ctx_t no objeto mongocrypt_status_t.

Parâmetros:

  • KMS (FFI::Pointer)

    Um ponteiro para o objeto mongocrypt_kms_ctx_t.

  • Status (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t.

Retorna:

  • (Booleano)

    Se a operação foi bem-sucedida.



1098
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1098

anexar função :mongocrypt_kms_ctx_status, %i[pointer pointer], :bool

.mongocrypt_kms_ctx_usleep(ctx) ⇒ int64

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Indica quanto tempo sono antes de enviar solicitação de KMS.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

Retorna:

  • (int64)

    Um número codificado de 64bits de microssegundos de quanto tempo sono.



1132
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1132

anexar função :mongocrypt_kms_ctx_usleep, [ :pointer ], :int64

.mongocrypt_setopt_aes_256_ctr(crypt, aes_256_ctr_encrypt, aes_256_ctr_decrypt, ctx) ➤ booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina um hook criptográfico para as operações AES256-CTR.

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

  • aes_enc_fn (Proc)

    Um método de criptografia AES-CTR.

  • aes_dec_fn (Proc)

    Um método de descriptografia AES-CTR.

  • ctx (FFI::Pointer | nil)

    Um ponteiro opcional para um objeto de contexto que pode ter sido definido quando os hooks foram habilitados.

Retorna:

  • (Booleano)

    Se a configuração desta opção foi bem-sucedida.



1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1493

anexar função(
  :mongocrypt_setopt_aes_256_ctr,
  %i[
    pointer
    mongocrypt_crypto_fn
    mongocrypt_crypto_fn
    pointer
  ],
  :bool
)

.mongocrypt_setopt_append_crypt_shared_lib_search_path(crypt, caminho) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1530
1531
1532
1533
1534
1535
1536
1537
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1530

anexar função(
  :mongocrypt_setopt_append_crypt_shared_lib_search_path,
  %i[
    pointer
    string
  ],
  :void
)

.mongocrypt_setopt_bypass_query_analysis(crypt) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1469
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1469

anexar função(:mongocrypt_setopt_bypass_query_analysis, [ :pointer ], :void)

.mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(crypt, sign_rsaes_pkcs1_v1_5, ctx = nil) ➤ booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina um hook cripto para o algoritmo RASSA-PKCS1-v1_5 com um hash SHA-256 .

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

  • sign_rsaes_pkcs1_v1_5 (Proc)

    Um método de assinatura RASSA-PKCS1-v1_5 .

  • ctx (FFI::Pointer | nil) (padrão para: nil)

    Um ponteiro opcional para um objeto de contexto que pode ter sido definido quando os hooks foram habilitados.

Retorna:

  • (Booleano)

    Se a configuração desta opção foi bem-sucedida.



1386
1387
1388
1389
1390
1391
1392
1393
1394
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1386

anexar função(
  :mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5,
  %i[
    pointer
    mongocrypt_hmac_fn
    pointer
  ],
  :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 faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina hooks de criptomoedas no objeto mongocrypt fornecido.

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

  • aes_enc_fn (Proc)

    Um método de criptografia AES.

  • aes_dec_fn (Proc)

    Um método de descriptografia AES.

  • random_fn (Proc)

    Um método aleatório.

  • sha_512_fn (Proc)

    Um método HMAC SHA-512 .

  • sha_256_fn (Proc)

    Um método HMAC SHA-256 .

  • hash_fn (Proc)

    Um método de hash SHA-256 .

  • ctx (FFI::Pointer | nil) (padrão para: nil)

    Um ponteiro opcional para um objeto de contexto que pode ter sido definido quando os hooks foram habilitados.

Retorna:

  • (Booleano)

    Se a configuração desta opção foi bem-sucedida.



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

anexar função(
  :mongocrypt_setopt_crypto_hooks,
  %i[
    pointer
    mongocrypt_crypto_fn
    mongocrypt_crypto_fn
    mongocrypt_random_fn
    mongocrypt_hmac_fn
    mongocrypt_hmac_fn
    mongocrypt_hash_fn
    pointer
  ],
  :bool
)

.mongocrypt_setopt_enable_multiple_collinfo(crypt) ⇒ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1668
1669
1670
1671
1672
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1668

anexar função(
  :mongocrypt_setopt_enable_multiple_collinfo,
  [ :pointer ],
  :bool
)

.mongocrypt_setopt_encrypted_field_config_map(crypt, efc_map) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1428
1429
1430
1431
1432
1433
1434
1435
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1428

anexar função(
  :mongocrypt_setopt_encrypted_field_config_map,
  %i[
    pointer
    pointer
  ],
  :bool
)

.mongocrypt_setopt_kms_providers(crypt, kms_providers) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Não inicialize ctx antes de chamar este método.

Configure os provedores de KMS com um documento BSON .

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

  • kms_providers (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência a um documento BSON mapeando os nomes do provedor KMS para credenciais.



342
343
344
345
346
# Arquivo 'lib/mongo/crypt/binding.rb', linha 342

anexar função(
  :mongocrypt_setopt_kms_providers,
  %i[pointer pointer],
  :bool
)

.mongocrypt_setopt_log_handler(crypt, log_fn, log_ctx = nil) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina o manipulador no objeto mongocrypt_t a ser chamado toda vez que libmongocrypt registrar uma mensagem.

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

  • log_fn (Método)

    Um método de chamada de resposta de chamada de registro.

  • log_ctx (FFI::Pointer | nil) (padrão para: nil)

    Um ponteiro opcional para um contexto a ser passado para a chamada de resposta de resposta de registro em cada invocação.

Retorna:

  • (Booleano)

    Se a definição do retorno de chamada foi bem-sucedida.



313
314
315
316
317
# Arquivo 'lib/mongo/crypt/binding.rb', linha 313

anexar função(
  :mongocrypt_setopt_log_handler,
  %i[pointer mongocrypt_log_fn_t pointer],
  :bool
)

.mongocrypt_setopt_retry_kms(crypt, enable) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1169
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1169

anexar função :mongocrypt_setopt_retry_kms, %i[pointer bool], :bool

.mongocrypt_setopt_schema_map(crypt, schema_map) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Define um mapa de esquema local para criptografia.

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

  • schema_map (FFI::Pointer)

    Um ponteiro para um mongocrypt_binary_t. objeto que referencia o mapa de esquema como uma string binária BSON.

Retorna:

  • (Booleano)

    Retorna se a opção foi definida com sucesso.



373
# Arquivo 'lib/mongo/crypt/binding.rb', linha 373

anexar função :mongocrypt_setopt_schema_map, %i[pointer pointer], :bool

.mongocrypt_setopt_set_crypt_shared_lib_path_override(crypt, path) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1559
1560
1561
1562
1563
1564
1565
1566
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1559

anexar função(
  :mongocrypt_setopt_set_crypt_shared_lib_path_override,
  %i[
    pointer
    string
  ],
  :void
)

.mongocrypt_setopt_use_need_kms_credentials_state(crypt) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1638
1639
1640
1641
1642
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1638

anexar função(
  :mongocrypt_setopt_use_need_kms_credentials_state,
  [ :pointer ],
  :void
)

.mongocrypt_setopt_use_need_mongo_collinfo_with_db_state(crypt) ⇒ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



1692
1693
1694
1695
1696
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1692

anexar função(
  :mongocrypt_setopt_use_need_mongo_collinfo_with_db_state,
  [ :pointer ],
  :void
)

.mongocrypt_status(crypt, status) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina as informações de status do objeto mongocrypt_t no objeto mongocrypt_status_t .

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

  • Status (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t.

Retorna:

  • (Booleano)

    Se o status foi definido com sucesso.



419
# Arquivo 'lib/mongo/crypt/binding.rb', linha 419

anexar função :mongocrypt_status, %i[pointer pointer], :bool

.mongocrypt_status_code(status) ➤ Inteiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retornar o código de erro de status.

Parâmetros:

  • Status (FFI::Pointer)

    Um ponteiro para um mongocrypt_status_t.

Retorna:

  • (Inteiro)

    O código de status.



241
# Arquivo 'lib/mongo/crypt/binding.rb', linha 241

anexar função :mongocrypt_status_code, [ :pointer ], :int

.mongocrypt_status_destroy(status) ➤ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Destrói a referência ao objeto mongocrypt_status_t.

Parâmetros:

  • Status (FFI::Pointer)

    Um ponteiro para um mongocrypt_status_t.

Retorna:

  • (nil)

    Sempre nulo.



267
# Arquivo 'lib/mongo/crypt/binding.rb', linha 267

anexar função :mongocrypt_status_destroy, [ :pointer ], :void

.mongocrypt_status_message(status, len = nil) ⇒ String

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna a mensagem de status.

Parâmetros:

  • Status (FFI::Pointer)

    Um ponteiro para um mongocrypt_status_t.

  • len (FFI::Pointer | nil) (padrão para: nil)

    (out param) Um ponteiro opcional para um uint32, onde o comprimento da string de retorno será escrito.

Retorna:

  • (string)

    A mensagem de status.



251
# Arquivo 'lib/mongo/crypt/binding.rb', linha 251

anexar função :mongocrypt_status_message, %i[pointer pointer], : string

.mongocrypt_status_new ➤ FFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Crie um novo objeto mongocrypt_status_t.

Retorna:

  • (FFI::Pointer)

    Um ponteiro para o novo mongocrypt_status_ts.



207
# Arquivo 'lib/mongo/crypt/binding.rb', linha 207

anexar função :mongocrypt_status_new, [], :pointer

.mongocrypt_status_ok(status) ➤ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna se o status está correto ou se é um erro.

Parâmetros:

  • Status (FFI::Pointer)

    Um ponteiro para um mongocrypt_status_t.

Retorna:

  • (Booleano)

    Se o status está correto.



259
# Arquivo 'lib/mongo/crypt/binding.rb', linha 259

anexar função :mongocrypt_status_ok, [ :pointer ], :bool

.mongocrypt_status_set(status, tipo, código, mensagem, lent) ➤ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina uma mensagem, digite e código em um status existente.

Parâmetros:

  • Status (FFI::Pointer)

    Um ponteiro para um mongocrypt_status_t.

  • type (Símbolo)

    O tipo de status; os valores possíveis são definidos pelo enum status_type.

  • código (Inteiro)

    O código de status.

  • mensagem (string)

    A mensagem de status.

  • len (Inteiro)

    O comprimento do argumento de mensagem (ou -1 para uma string terminada em nulo).

Retorna:

  • (nil)

    Sempre nulo.



221
222
223
224
225
# Arquivo 'lib/mongo/crypt/binding.rb', linha 221

anexar função(
  :mongocrypt_status_set,
  %i[pointer status_type int string int],
  :void
)

.mongocrypt_status_type(status) ⇒ Symbol

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Indica o tipo de status.

Parâmetros:

  • Status (FFI::Pointer)

    Um ponteiro para um mongocrypt_status_t.

Retorna:

  • (Símbolo)

    O tipo de status (conforme definido pelo enumeração status_type).



233
# Arquivo 'lib/mongo/crypt/binding.rb', linha 233

anexar função :mongocrypt_status_type, [ :pointer ], :status_type

.mongocrypt_version(ten) ➤ string

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna a string de versão da biblioteca libmongocrypt.

Parâmetros:

  • len (FFI::Pointer | nil)

    (out param) Um ponteiro opcional para um uint8 que fará referência ao comprimento da string retornada.

Retorna:

  • (string)

    Uma string de versão para libmongocrypt.



93
# Arquivo 'lib/mongo/crypt/binding.rb', linha 93

anexar função :mongocrypt_version, [ :pointer ], : string

.ongocrypt_new ➤ FFI::Pointer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Cria um novo objeto mongocrypt_t.

Retorna:

  • (FFI::Pointer)

    Um ponteiro para um novo objeto mongocrypt_t .



301
# Arquivo 'lib/mongo/crypt/binding.rb', linha 301

anexar função :mongocrypt_new, [], :pointer

.parse_version(version) ⇒ Gem::Version

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Fornece uma string que representa um número de versão, analisa-a em um objeto Gem::Version . Isso lida com o caso em que a string não está em um formato suportado pelo Gem::Version fazendo uma análise personalizada.

Parâmetros:

  • Versão (string)

    string representa um número de versão.

Retorna:

  • (Gem::Version)

    o número da versão

Aumenta:

  • (ArgumentError)

    se a string não puder ser analisada.



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

def auto.parse_version(Versão)
  Gem::Versão.Novo(Versão)
salvar ArgumentError
  corresponder = Versão.corresponder(/\A(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)?(?:-[A-Za-z+\d]+)?\z/)
  aumentar ArgumentError.Novo(" string número de versão malformada #{version}") se corresponder.nada?

  Gem::Versão.Novo(
    [
      corresponder[:major],
      corresponder[:minor],
      corresponder[:patch]
    ].juntar('.')
  )
end

.setopt_aes_256_ctr(handle, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina um hook criptográfico para as operações AES256-CTR.

Parâmetros:

  • lidar (Mongo::Crypt::Handle)
  • aes_encrypt_cb (Método)

    Um método de criptografia AES-CTR

  • aes_decrypt_cb (Método)

    Um método de descriptografia AES-CTR

Aumenta:



1511
1512
1513
1514
1515
1516
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1511

def auto.setopt_aes_256_ctr(lidar, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb)
  check_status(lidar) fazer
    mongocrypt_setopt_aes_256_ctr(lidar.ref,
                                  aes_ctr_encrypt_cb, aes_ctr_decrypt_cb, nada)
  end
end

.setopt_append_crypt_shared_lib_search_path(handle, caminho) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Anexe um diretório de pesquisa adicional ao caminho de pesquisa para carregar a biblioteca dinâmica crypt_shared.

Parâmetros:

  • lidar (Mongo::Crypt::Handle)
  • caminho (string)

    Um caminho do Atlas Search para a biblioteca compartilhada de criptografia.



1544
1545
1546
1547
1548
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1544

def auto.setopt_append_crypt_shared_lib_search_path(lidar, caminho)
  check_status(lidar) fazer
    mongocrypt_setopt_append_crypt_shared_lib_search_path(lidar.ref, caminho)
  end
end

.setopt_bypass_query_analysis(handle) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Opte por ignorar a análise de query.

Se ativado:

  • A biblioteca compartilhada csfle não tentará ser carregada.
  • Um mongocrypt_ctx_t nunca entrará no estado MONGOCRYPT_CTX_NEED_Markings.

Parâmetros:



1478
1479
1480
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1478

def auto.setopt_bypass_query_analysis(lidar)
  mongocrypt_setopt_bypass_query_analysis(lidar.ref)
end

.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(handle, rsaes_pkcs_signature_cb) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina um hook cripto para o algoritmo RASSA-PKCS1-v1_5 com um hash SHA-256 oh the Handle.

Parâmetros:

  • lidar (Mongo::Crypt::Handle)
  • rsaes_pkcs_signature_cb (Método)

    Um método de assinatura RASSA-PKCS1-v1_5 .

Aumenta:



1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1403

def auto.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(
  lidar,
  rsaes_pkcs_signature_cb
)
  check_status(lidar) fazer
    mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(
      lidar.ref,
      rsaes_pkcs_signature_cb,
      nada
    )
  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 faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Definir retornos de chamada de criptografia no identificador

Parâmetros:

  • lidar (Mongo::Crypt::Handle)
  • aes_encrypt_cb (Método)

    Um método de criptografia AES

  • aes_decrypt_cb (Método)

    Um método de descriptografia do AES

  • random_cb (Método)

    Um método que retorna uma string de bytes aleatórios

  • hmac_sha_512_cb (Método)

    Um método HMAC SHA-512

  • hmac_sha_256_cb (Método)

    Um método HMAC SHA-256

  • hmac_hash_cb (Método)

    Um método de hash SHA-256

Aumenta:



1367
1368
1369
1370
1371
1372
1373
1374
1375
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1367

def auto.setopt_crypto_hooks(lidar,
                             aes_encrypt_cb, aes_decrypt_cb, random_cb,
                             hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb)
  check_status(lidar) fazer
    mongocrypt_setopt_crypto_hooks(lidar.ref,
                                   aes_encrypt_cb, aes_decrypt_cb, random_cb,
                                   hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb, nada)
  end
end

.setopt_enable_multiple_collinfo(lidar) ⇒ booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Habilite o suporte para vários esquemas de coleção. Necessário para suportar $lookup.

Parâmetros:

Retorna:

  • (Booleano)

    Se a opção foi definida com sucesso.



1678
1679
1680
1681
1682
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1678

def auto.setopt_enable_multiple_collinfo(lidar)
  check_status(lidar) fazer
    mongocrypt_setopt_enable_multiple_collinfo(lidar.ref)
  end
end

.setopt_encrypted_field_config_map(handle, efc_map) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina um EncryptedFieldConfigMap local para criptografia.

Parâmetros:

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

    Um documento BSON representando o EncryptedFieldConfigMap fornecido pelo usuário. As chaves são namespaces da collection e os valores são documentos EncryptedFieldConfigMap.

Aumenta:



1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1446

def auto.setopt_encrypted_field_config_map(lidar, efc_map)
  validate_document(efc_map)
  de dados = efc_map.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_status(lidar) fazer
      mongocrypt_setopt_encrypted_field_config_map(
        lidar.ref,
        data_p
      )
    end
  end
end

.setopt_kms_providers(handle, kms_providers) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Definir as opções do provedor KMS no objeto Mongo::Crypt::Handle

Parâmetros:

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

    documento BSON mapeando os nomes do provedor KMS para as credenciais.

Aumenta:



355
356
357
358
359
360
361
362
363
# Arquivo 'lib/mongo/crypt/binding.rb', linha 355

def auto.setopt_kms_providers(lidar, kms_providers)
  validate_document(kms_providers)
  de dados = kms_providers.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_status(lidar) fazer
      mongocrypt_setopt_kms_providers(lidar.ref, data_p)
    end
  end
end

.setopt_log_handler(handle, log_callback) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Definir a função de chamada de resposta de chamada do registrador no objeto Mongo::Crypt::Handle

Parâmetros:

Aumenta:



325
326
327
328
329
# Arquivo 'lib/mongo/crypt/binding.rb', linha 325

def auto.setopt_log_handler(lidar, log_callback)
  check_status(lidar) fazer
    mongocrypt_setopt_log_handler(lidar, log_callback, nada)
  end
end

.setopt_schema_map(handle, schema_map_doc) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Definir mapa de esquema no objeto Mongo::Crypt::Handle

Parâmetros:

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

    O mapa de esquema como um objeto BSON::Document

Aumenta:



382
383
384
385
386
387
388
389
390
# Arquivo 'lib/mongo/crypt/binding.rb', linha 382

def auto.setopt_schema_map(lidar, schema_map_doc)
  validate_document(schema_map_doc)
  de dados = schema_map_doc.to_bson.to_s
  Binário.wrap_string(de dados) fazer |data_p|
    check_status(lidar) fazer
      mongocrypt_setopt_schema_map(lidar.ref, data_p)
    end
  end
end

.setopt_set_crypt_shared_lib_path_override(handle, caminho) ➤ Objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Defina um único caminho de substituição para carregar a biblioteca compartilhada de criptografia.

Parâmetros:

  • lidar (Mongo::Crypt::Handle)
  • caminho (string)

    Um caminho para criptografar o arquivo de biblioteca compartilhada.



1572
1573
1574
1575
1576
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1572

def auto.setopt_set_crypt_shared_lib_path_override(lidar, caminho)
  check_status(lidar) fazer
    mongocrypt_setopt_set_crypt_shared_lib_path_override(lidar.ref, caminho)
  end
end

.setopt_use_need_kms_credentials_state(handle) ➤ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Opte por lidar com o estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS.

Se definido, antes de entrar no estado MONGOCRYPT_CTX_NEED_KMS, os contextos podem entrar no estado MONGCRYPT_CTX_NEED_KMS_CREDENTIALS e então aguardar que as credenciais sejam fornecidas por meio de mongocrypt_ctx_provide_kms_providers.

Um contexto só entrará em MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS se um documento vazio tiver sido definido para um provedor de KMS no mongocrypt_setopt_kms_providers.

Parâmetros:



1656
1657
1658
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1656

def auto.setopt_use_need_kms_credentials_state(lidar)
  mongocrypt_setopt_use_need_kms_credentials_state(lidar.ref)
end

.setopt_use_need_mongo_collinfo_with_db_state(lidar) ⇒ objeto

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Opte por lidar com o estado MONGOCRYPT_CTX_NEED_MONGO_COLLINFO_WITH_DB.

Parâmetros:



1701
1702
1703
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1701

def auto.setopt_use_need_mongo_collinfo_with_db_state(lidar)
  mongocrypt_setopt_use_need_mongo_collinfo_with_db_state(lidar.ref)
end

.validate_document(data) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Todas as instâncias BSON::Document também são instâncias Hash

Verifica se os dados especificados é um Hash antes de serializá-los para BSON para evitar erros de libmongocrypt

Parâmetros:

  • de dados (Objeto)

    Os dados a serem passados para libmongocrypt

Aumenta:



1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1916

def auto.validate_document(de dados)
  Método se de dados.is_a?(Hash)

  mensagem = se de dados.nada?
              'Tentativa de passar dados nulos para libmongocrypt.  ' +
                ' Osdados devem ser um Hash '
            mais
              "Tentativa de passar dados inválidos para libmongocrypt: #{data} " +
                ' Osdados devem ser um Hash '
            end

  aumentar Erro::Criptografia de erro.Novo(mensagem)
end

.validate_version(lmc_version) ⇒ Object

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Valida se a versão fornecida da libmongocrypt é válida, ou seja, igual ou superior à versão mínima exigida. Caso contrário, gera um LoadError.

Parâmetros:

  • lmc_version (string)

    string representando a versão da libmongocrypt.

Aumenta:

  • (LoadError)

    se a versão fornecida for inferior à versão mínima exigida.



129
130
131
132
133
134
# Arquivo 'lib/mongo/crypt/binding.rb', linha 129

def auto.validate_version(lmc_version)
  se (real_version = parse_version(lmc_version)) < MIN_LIBMOCRYPT_VERSION
    aumentar LoadError, "libmongocrypt version #{MIN_LIBMOCRYPT_VERSION} ou superior é necessário, " +
                     "mas a versão #{real_version} foi encontrada."
  end
end

Detalhes do método de instância

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

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Isto define uma assinatura de método para uma chamada de resposta de resposta FFI ; não é um método de instância na classe Binding.

Um chamada de resposta de chamada para uma função que executa criptografia ou descriptografia AES.

Parâmetros:

  • ctx (FFI::Pointer | nil)

    Um ponteiro opcional para um objeto de contexto que pode ter sido definido quando os hooks foram habilitados.

  • chave (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência à chave de criptografia AES de 32bytes.

  • 4 (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência ao AES quatro bytes 16 .

  • Entrada (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência ao valor a ser criptografado/descriptografado.

  • saída (FFI::Pointer)

    (out param) Um ponteiro para um objeto mongocrypt_binary_t terá uma referência ao valor criptografado/descriptografado gravado nele por libmongocrypt.

  • Status (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t para o qual uma mensagem de erro será escrita se a criptografia falhar.

Retorna:

  • (Bool)

    Se a criptografia/descriptografia foi bem-sucedida.



1259
1260
1261
1262
1263
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1259

chamada de resposta(
  :mongocrypt_crypto_fn,
  %i[pointer pointer pointer pointer pointer pointer pointer],
  :bool
)

#mongocrypt_hash_fn(ctx, entrada, saída, status) ➤ Bool

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Isto define uma assinatura de método para uma chamada de resposta de resposta FFI ; não é um método de instância na classe Binding.

Um chamada de resposta de chamada para uma função de hash SHA-256 .

Parâmetros:

  • ctx (FFI::Pointer | nil)

    Um ponteiro opcional para um objeto de contexto que pode ter sido definido quando os hooks foram habilitados.

  • Entrada (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência ao valor a ser hash.

  • saída (FFI::Pointer)

    (out param) Um ponteiro para um objeto mongocrypt_binary_t terá uma referência ao valor de saída gravado nele por libmongocrypt.

  • Status (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t para o qual uma mensagem de erro será escrita se a criptografia falhar.

Retorna:

  • (Bool)

    Se o hash foi bem-sucedido.



1307
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1307

chamada de resposta :mongocrypt_hash_fn, %i[pointer pointer pointer pointer], :bool

#mongocrypt_hmac_fn(ctx, key, entrada, saída, status) ➤ Bool

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Isto define uma assinatura de método para uma chamada de resposta de resposta FFI ; não é um método de instância na classe Binding.

Um retorno de chamada para uma função que executa HMAC SHA-512 ou SHA-256.

Parâmetros:

  • ctx (FFI::Pointer | nil)

    Um ponteiro opcional para um objeto de contexto que pode ter sido definido quando os hooks foram habilitados.

  • chave (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência à chave de criptografia HMAC SHA de 32bytes.

  • Entrada (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_binary_t que faz referência ao valor de entrada.

  • saída (FFI::Pointer)

    (out param) Um ponteiro para um objeto mongocrypt_binary_t terá uma referência ao valor de saída gravado nele por libmongocrypt.

  • Status (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t para o qual uma mensagem de erro será escrita se a criptografia falhar.

Retorna:

  • (Bool)

    Se o HMAC-SHA foi bem-sucedido.



1284
1285
1286
1287
1288
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1284

chamada de resposta(
  :mongocrypt_hmac_fn,
  %i[pointer pointer pointer pointer pointer],
  :bool
)

#mongocrypt_log_fn_t(nível, mensagem, lent, ctx) ➤ nil

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Isto define uma assinatura de método para uma chamada de resposta de resposta FFI ; não é um método de instância na classe Binding.

Um chamada de resposta para a função de log do mongocrypt. Defina um chamada de resposta de log personalizado com o método mongocrypt_setopt_log_handler

Parâmetros:

  • level (Símbolo)

    O nível de registro; possíveis valores definidos pelo enumeração log_level

  • mensagem (string)

    A mensagem de registro

  • len (Inteiro)

    O comprimento do parâmetro da mensagem ou -1 se a string for encerrada com valor nulo

  • ctx (FFI::Pointer | nil)

    Um ponteiro opcional para um objeto de contexto quando essa chamada de resposta de resposta foi definida

Retorna:

  • (nil)

    Sempre nulo.



294
# Arquivo 'lib/mongo/crypt/binding.rb', linha 294

chamada de resposta :mongocrypt_log_fn_t, %i[log_level string int pointer], :void

#mongocrypt_random_fn(ctx, saída, contagem, status) ➤ Bool

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Isto define uma assinatura de método para uma chamada de resposta de resposta FFI ; não é um método de instância na classe Binding.

Um chamada de resposta de chamada para uma função aleatória segura de criptografia.

Parâmetros:

  • ctx (FFI::Pointer | nil)

    Um ponteiro opcional para um objeto de contexto que pode ter sido definido quando os hooks foram habilitados.

  • saída (FFI::Pointer)

    (out param) Um ponteiro para um objeto mongocrypt_binary_t terá uma referência ao valor de saída gravado nele por libmongocrypt.

  • contar (Inteiro)

    O número de bytes aleatórios a serem retornados.

  • Status (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_status_t para o qual uma mensagem de erro será escrita se a criptografia falhar.

Retorna:

  • (Bool)

    Se o hash foi bem-sucedido.



1325
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1325

chamada de resposta :mongocrypt_random_fn, %i[pointer pointer int pointer], :bool