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.



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

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:



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

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

  Status = Status.Novo

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



1802
1803
1804
1805
1806
1807
1808
1809
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1802

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.



1608
1609
1610
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1608

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:



1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1206

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:



1183
1184
1185
1186
1187
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1183

def auto.ctx_kms_done(Contexto)
  check_ctx_status(Contexto) fazer
    mongocrypt_ctx_kms_done(Contexto.ctx_p)
  end
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:



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

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



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

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



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

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:



1681
1682
1683
1684
1685
1686
1687
1688
1689
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1681

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:



1788
1789
1790
1791
1792
1793
1794
1795
1796
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1788

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:



1751
1752
1753
1754
1755
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1751

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:



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

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



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

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:



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

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.



1146
1147
1148
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1146

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:



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

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 .



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

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:



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

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.



1165
1166
1167
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1165

def auto.kms_ctx_setopt_retry_kms(lidar, valor)
  mongocrypt_setopt_retry_kms(lidar.ref, valor)
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.



1129
1130
1131
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1129

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.



1586
1587
1588
1589
1590
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1586

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.



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

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.



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

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

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



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

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.



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

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 .



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

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.



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

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.



1664
1665
1666
1667
1668
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1664

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.



1770
1771
1772
1773
1774
1775
1776
1777
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1770

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.



1735
1736
1737
1738
1739
1740
1741
1742
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1735

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.



1702
1703
1704
1705
1706
1707
1708
1709
1710
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1702

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



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

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.



1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1482

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.



1519
1520
1521
1522
1523
1524
1525
1526
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1519

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.



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

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.



1375
1376
1377
1378
1379
1380
1381
1382
1383
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1375

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.



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

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



1417
1418
1419
1420
1421
1422
1423
1424
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1417

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.



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

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.



1548
1549
1550
1551
1552
1553
1554
1555
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1548

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.



1627
1628
1629
1630
1631
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1627

anexar função(
  :mongocrypt_setopt_use_need_kms_credentials_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:



1500
1501
1502
1503
1504
1505
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1500

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.



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

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:



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

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:



1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1392

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:



1356
1357
1358
1359
1360
1361
1362
1363
1364
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1356

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



1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1435

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.



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

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:



1645
1646
1647
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1645

def auto.setopt_use_need_kms_credentials_state(lidar)
  mongocrypt_setopt_use_need_kms_credentials_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:



1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1838

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.



1248
1249
1250
1251
1252
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1248

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.



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

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.



1273
1274
1275
1276
1277
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1273

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.



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

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