Classe: Mongo::Crypt::Binding Private

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
FFI::Biblioteca
Definido em:
build/ruby-driver-v2.19/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.7.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.



1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1757

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:



1099
1100
1101
1102
1103
1104
1105
1106
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1099

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.



1744
1745
1746
1747
1748
1749
1750
1751
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1744

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.



1550
1551
1552
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1550

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:



617
618
619
620
621
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 617

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:



778
779
780
781
782
783
784
785
786
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 778

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:



684
685
686
687
688
689
690
691
692
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 684

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:



808
809
810
811
812
813
814
815
816
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 808

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:



752
753
754
755
756
757
758
759
760
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 752

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:



718
719
720
721
722
723
724
725
726
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 718

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:



1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1145

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:



1122
1123
1124
1125
1126
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1122

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:



889
890
891
892
893
894
895
896
897
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 889

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



860
861
862
863
864
865
866
867
868
869
870
871
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 860

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



921
922
923
924
925
926
927
928
929
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 921

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:



1623
1624
1625
1626
1627
1628
1629
1630
1631
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1623

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.



648
649
650
651
652
653
654
655
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 648

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:



561
562
563
564
565
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 561

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 RangePreview é apenas experimental. Não é destinado a

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

uso público.

Parâmetros:

Aumenta:



1730
1731
1732
1733
1734
1735
1736
1737
1738
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1730

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:



1693
1694
1695
1696
1697
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1693

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:



492
493
494
495
496
497
498
499
500
501
502
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 492

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:



590
591
592
593
594
595
596
597
598
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 590

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:



459
460
461
462
463
464
465
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 459

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:



527
528
529
530
531
532
533
534
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 527

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:



1661
1662
1663
1664
1665
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1661

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

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



399
400
401
402
403
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 399

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



1055
1056
1057
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1055

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:



1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1031

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



1075
1076
1077
1078
1079
1080
1081
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1075

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 .



962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 962

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:



1002
1003
1004
1005
1006
1007
1008
1009
1010
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1002

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

.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
# File 'build/ruby-driver-v2.19/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.



187
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 187

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
# File 'build/ruby-driver-v2.19/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
# File 'build/ruby-driver-v2.19/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
# File 'build/ruby-driver-v2.19/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.



1528
1529
1530
1531
1532
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1528

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.



610
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 610

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.



770
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 770

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.



1164
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1164

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.



670
671
672
673
674
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 670

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.



796
797
798
799
800
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 796

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.



706
707
708
709
710
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 706

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.



1137
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1137

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.



905
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 905

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.



881
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 881

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 .



913
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 913

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.



849
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 849

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.



430
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 430

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.



1606
1607
1608
1609
1610
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1606

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.



547
548
549
550
551
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 547

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.



1712
1713
1714
1715
1716
1717
1718
1719
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1712

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.



1677
1678
1679
1680
1681
1682
1683
1684
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1677

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.



479
480
481
482
483
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 479

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.



577
578
579
580
581
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 577

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.



451
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 451

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.



514
515
516
517
518
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 514

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.



1644
1645
1646
1647
1648
1649
1650
1651
1652
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1644

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.



837
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 837

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.



440
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 440

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.



421
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 421

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.



392
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 392

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.



1048
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1048

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.



1115
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1115

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.



1021
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1021

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



1067
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1067

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.



947
948
949
950
951
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 947

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.



992
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 992

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.



1091
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1091

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

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



1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1423

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.



1461
1462
1463
1464
1465
1466
1467
1468
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1461

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.



1399
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1399

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.



1316
1317
1318
1319
1320
1321
1322
1323
1324
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1316

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.



1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1269

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.



1358
1359
1360
1361
1362
1363
1364
1365
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1358

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.



336
337
338
339
340
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 336

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.



307
308
309
310
311
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 307

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



367
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 367

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.



1490
1491
1492
1493
1494
1495
1496
1497
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1490

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.



1569
1570
1571
1572
1573
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1569

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.



413
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 413

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.



235
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 235

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.



261
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 261

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.



245
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 245

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.



201
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 201

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.



253
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 253

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.



215
216
217
218
219
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 215

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



227
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 227

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
# File 'build/ruby-driver-v2.19/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 .



295
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 295

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
# File 'build/ruby-driver-v2.19/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:



1441
1442
1443
1444
1445
1446
1447
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1441

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.



1475
1476
1477
1478
1479
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1475

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:



1408
1409
1410
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1408

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:



1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1333

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:



1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1295

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:



1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1376

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:



349
350
351
352
353
354
355
356
357
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 349

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:



319
320
321
322
323
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 319

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:



376
377
378
379
380
381
382
383
384
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 376

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.



1503
1504
1505
1506
1507
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1503

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:



1587
1588
1589
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1587

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:



1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1780

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
# File 'build/ruby-driver-v2.19/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.



1187
1188
1189
1190
1191
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1187

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.



1235
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1235

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.



1212
1213
1214
1215
1216
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1212

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.



288
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 288

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.



1253
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/binding.rb', linha 1253

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