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.



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

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

  se do_raise
    Status = Status.Novo

    mongocrypt_ctx_status(Contexto.ctx_p, Status.ref)
    Status.create_crypt_error
  end
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:



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

def auto.check_kms_ctx_status(kms_context)
  a menos que rendimento
    Status = Status.Novo

    mongocrypt_kms_ctx_status(kms_context.kms_ctx_p, Status.ref)
    Status.create_crypt_error(KMS: true)
  end
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.



1808
1809
1810
1811
1812
1813
1814
1815
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1808

def auto.check_status(lidar)
  a menos que rendimento
    Status = Status.Novo

    mongocrypt_status(lidar.ref, Status.ref)
    Status.create_crypt_error
  end
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: 0x0006' 0002' 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.



1614
1615
1616
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1614

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:



625
626
627
628
629
# Arquivo 'lib/mongo/crypt/binding.rb', linha 625

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:



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

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:



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

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:



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

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:



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

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:



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

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:



1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1209

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



1186
1187
1188
1189
1190
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1186

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:



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

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



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

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, pois 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



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

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 de '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:



1687
1688
1689
1690
1691
1692
1693
1694
1695
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1687

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.



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

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:



569
570
571
572
573
# Arquivo 'lib/mongo/crypt/binding.rb', linha 569

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:



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

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:



1757
1758
1759
1760
1761
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1757

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:



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

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 chave de criptografia de chaves com um campo adicional de "provedor".

Aumenta:



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

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:



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

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 para usar para

encrypting data.

Parâmetros:

  • Contexto (Mongo::Crypt::Context)

    Um DataKeyContext

  • key_material (BSON::Binary)

    96 bytes de material de chave personalizada

Aumenta:



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

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:



1725
1726
1727
1728
1729
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1725

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.



181
182
183
# Arquivo 'lib/mongo/crypt/binding.rb', linha 181

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.



185
186
187
# Arquivo 'lib/mongo/crypt/binding.rb', linha 185

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:



407
408
409
410
411
# Arquivo 'lib/mongo/crypt/binding.rb', linha 407

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



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

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:



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

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.



1148
1149
1150
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1148

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:



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

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 .



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

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:



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

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

  Método 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.



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

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.



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

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.



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

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.



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

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.



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

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 um byte

array).

Retorna:

  • (FFI::Pointer)

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



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

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

the specified byte array.

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.



159
160
161
162
163
# Arquivo 'lib/mongo/crypt/binding.rb', linha 159

anexar função(
  :mongocrypt_binary_new_from_data,
  [: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.



1592
1593
1594
1595
1596
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1592

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.



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

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.



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

anexar função :mongocrypt_ctx_decrypt_init, [: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.



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

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:

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



678
679
680
681
682
# Arquivo 'lib/mongo/crypt/binding.rb', linha 678

anexar função(
  :mongocrypt_ctx_encrypt_init,
  [: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.



804
805
806
807
808
# Arquivo 'lib/mongo/crypt/binding.rb', linha 804

anexar função(
  :mongocrypt_ctx_explicit_decrypt_init,
  [: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.



714
715
716
717
718
# Arquivo 'lib/mongo/crypt/binding.rb', linha 714

anexar função(
  :mongocrypt_ctx_explicit_encrypt_init,
  [: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.



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

anexar função :mongocrypt_ctx_finalize, [: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.



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

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.



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

anexar função :mongocrypt_ctx_mongo_feed, [: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 .



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

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 o driver executar no MongoDB

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



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

anexar função :mongocrypt_ctx_mongo_op, [: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.

Criar um novo objeto mongocrypt_ctx_t (um wrapper para a libmongocrypt

state machine).

Parâmetros:

  • criptografar (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_t.

Retorna:

  • (FFI::Pointer)

    Um novo objeto mongocrypt_ctx_t.



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

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.



1670
1671
1672
1673
1674
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1670

anexar função(
  :mongocrypt_ctx_provide_kms_providers,
  [ :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.



555
556
557
558
559
# Arquivo 'lib/mongo/crypt/binding.rb', linha 555

anexar função(
  :mongocrypt_ctx_setopt_algorithm,
  [: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.



1776
1777
1778
1779
1780
1781
1782
1783
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1776

anexar função(
  :mongocrypt_ctx_setopt_algorithm_range,
  [
    :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.



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

anexar função(
  :mongocrypt_ctx_setopt_contention_factor,
  [
    :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. Quando

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

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”: <BSON UTF8 valor> }.

Retorna:

  • (Booleano)

    Se o nome alternativo foi definido com sucesso.



487
488
489
490
491
# Arquivo 'lib/mongo/crypt/binding.rb', linha 487

anexar função(
  :mongocrypt_ctx_setopt_key_alt_name,
  [: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 da chave de chave de criptografia de chaves com um campo"provider" adicional.

Retorna:

  • (Booleano)

    Se a opção foi definida com sucesso.



585
586
587
588
589
# Arquivo 'lib/mongo/crypt/binding.rb', linha 585

anexar função(
  :mongocrypt_ctx_setopt_key_encryption_key,
  [: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.



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

anexar função :mongocrypt_ctx_setopt_key_id, [: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 para

encrypting data.

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.



522
523
524
525
526
# Arquivo 'lib/mongo/crypt/binding.rb', linha 522

anexar função(
  :mongocrypt_ctx_setopt_key_material,
  [: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.



1708
1709
1710
1711
1712
1713
1714
1715
1716
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1708

anexar função(
  :mongocrypt_ctx_setopt_query_type,
  [
    :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.



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

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

mongocrypt_status_t object.

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.



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

anexar função :mongocrypt_ctx_status, [: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.



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

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.



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

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.



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

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

mongocrypt_kms_ctx_t objects.

Parâmetros:

  • ctx (FFI::Pointer)

    Um ponteiro para um objeto mongocrypt_ctx_t .

Retorna:

  • (Booleano)

    Se a operação foi bem-sucedida.



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

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

the AWS master key.

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.



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

anexar função :mongocrypt_kms_ctx_endpoint, [: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.



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

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.



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

anexar função :mongocrypt_kms_ctx_feed, [: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.



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

anexar função(
  :mongocrypt_kms_ctx_get_kms_provider,
  [: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.



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

anexar função :mongocrypt_kms_ctx_message, [: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.

Escrever informações de status sobre o objeto mongocrypt_kms_ctx_t

to the mongocrypt_status_t object.

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.



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

anexar função :mongocrypt_kms_ctx_status, [: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.



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

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.



1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1487

anexar função(
  :mongocrypt_setopt_aes_256_ctr,
  [
    :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.



1525
1526
1527
1528
1529
1530
1531
1532
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1525

anexar função(
  :mongocrypt_setopt_append_crypt_shared_lib_search_path,
  [
    :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.



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

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.



1380
1381
1382
1383
1384
1385
1386
1387
1388
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1380

anexar função(
  :mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5,
  [
    :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.



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

anexar função(
  :mongocrypt_setopt_crypto_hooks,
  [
    :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.



1422
1423
1424
1425
1426
1427
1428
1429
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1422

anexar função(
  :mongocrypt_setopt_encrypted_field_config_map,
  [
    :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.



344
345
346
347
348
# Arquivo 'lib/mongo/crypt/binding.rb', linha 344

anexar função(
  :mongocrypt_setopt_kms_providers,
  [: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

libmongocrypt logs a message.

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.



315
316
317
318
319
# Arquivo 'lib/mongo/crypt/binding.rb', linha 315

anexar função(
  :mongocrypt_setopt_log_handler,
  [: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.



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

anexar função :mongocrypt_setopt_retry_kms, [: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.



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

anexar função :mongocrypt_setopt_schema_map, [: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.



1554
1555
1556
1557
1558
1559
1560
1561
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1554

anexar função(
  :mongocrypt_setopt_set_crypt_shared_lib_path_override,
  [
    :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.



1633
1634
1635
1636
1637
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1633

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

mongocrypt_status_t object.

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.



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

anexar função :mongocrypt_status, [: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.



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

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.



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

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.



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

anexar função :mongocrypt_status_message, [: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.



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

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.



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

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.



223
224
225
226
227
# Arquivo 'lib/mongo/crypt/binding.rb', linha 223

anexar função(
  :mongocrypt_status_set,
  [: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).



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

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.



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

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 .



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

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.



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

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:



1505
1506
1507
1508
1509
1510
1511
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1505

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.

Anexar um diretório adicional do Atlas Search ao caminho do Atlas Search para carregamento

the crypt_shared dynamic library.

Parâmetros:

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

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



1539
1540
1541
1542
1543
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1539

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:



1472
1473
1474
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1472

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 de criptografia para o algoritmo RSESSA-PKCS1-v1_5 com

a SHA-256 hash 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:



1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1397

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:



1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1359

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:



1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1440

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:



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

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:



327
328
329
330
331
# Arquivo 'lib/mongo/crypt/binding.rb', linha 327

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:



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

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.



1567
1568
1569
1570
1571
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1567

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 MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS e depois 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 em 'mongocrypt_setopt_kms_providers'.

Parâmetros:



1651
1652
1653
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1651

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:



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

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

  se de dados.nada?
    mensagem = "Tentativa de passar dados nulos para libmongocrypt. " +
      "Os dados devem ser um Hash"
  mais
    mensagem = "Tentativa de passar dados inválidos para libmongocrypt: #{data} " +
      "Os dados 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.



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

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.



1251
1252
1253
1254
1255
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1251

chamada de resposta(
  :mongocrypt_crypto_fn,
  [: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.



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

chamada de resposta :mongocrypt_hash_fn, [: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.



1276
1277
1278
1279
1280
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1276

chamada de resposta(
  :mongocrypt_hmac_fn,
  [: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 de chamada para a função de registro do mongocrypt. Definir um retorno de chamada de resposta de registro personalizado

with the mongocrypt_setopt_log_handler method

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.



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

chamada de resposta :mongocrypt_log_fn_t, [: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.



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

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