Classe: Mongo::Crypt::Binding Private
- Herda:
-
Objeto
- Objeto
- Mongo::Crypt::Binding
- 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
-
.check_ctx_status(context) ➤ nil
privado
Gere um Mongo::Error::CryptError com base no status do objeto mongocrypt_ctx_t subjacente.
-
.check_kms_ctx_status(kms_context) ➤ Objeto
privado
Se o bloco fornecido retornar falso, gere um CryptError com as informações de status do objeto KmsContext fornecido.
-
.check_status(handle) ➤ nil
privado
Gere um Mongo::Error::CryptError com base no status do objeto mongocrypt_t subjacente.
-
.crypt_shared_lib_version(handle) ➤ inteiro
privado
Obtenha uma codificação de constante de 64bits para a versão da biblioteca crypt_shared carregada, se disponível.
-
.ctx_datakey_init(contexto) ➤ Objeto
privado
Inicialize o contexto para criar uma chave de dados.
-
.ctx_decrypt_init(contexto, comando) ➤ Objeto
privado
Inicialize o contexto para descriptografia automática.
-
.ctx_encrypt_init(contexto, db_name, comando) ➤ Objeto
privado
Inicialize o contexto para criptografia automática.
-
.ctx_explicit_decrypt_init(context, doc) ⇒ Object
privado
Inicialize o contexto para descriptografia explícita.
-
.ctx_explicit_encrypt_expression_init(context, doc) ⇒ Object
privado
Inicialize o Contexto para criptografia de expressão explícita.
-
.ctx_explicit_encrypt_init(context, doc) ⇒ Object
privado
Inicialize o Contexto para criptografia explícita.
-
.ctx_finalize(contexto) ➤ Objeto
privado
Finalize a máquina de estado representada pelo Contexto.
-
.ctx_kms_done(context) ⇒ Object
privado
Indique para libmongocrypt que ela não receberá mais respostas de KMS.
-
.ctx_mongo_db(context) ⇒ String
privado
Obtenha o nome do banco de dados para a operação collinfo atual.
-
.ctx_mongo_feed(contexto, doc) ➤ Objeto
privado
Alimente uma resposta do driver de volta para libmongocrypt.
-
.ctx_mongo_op(context) ⇒ BSON::Document
privado
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).
-
.ctx_next_kms_ctx(contexto) ➤ Mongo::Crypt::KmsContext | nada
privado
Retorne um novo objeto KmsContext necessário para um objeto Context .
-
.ctx_provide_kms_providers(contexto, kms_providers) ➤ Objeto
privado
Ligue para em resposta ao estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS para definir as configurações do provedor KMS por contexto.
-
.ctx_rewrap_many_datakey_init(contexto, filtro) ➤ Boolean
privado
Inicialize um contexto para retrair as chaves de dados.
-
.ctx_setopt_algorithm(contexto, nome) ➤ Objeto
privado
Defina o algoritmo no contexto.
-
.ctx_setopt_algorithm_range(contexto, opções) ➤ Objeto
privado
Defina opções para criptografia explícita com o algoritmo de "faixa".
-
.ctx_setopt_contention_factor(contexto, fator) ➤ Objeto
privado
Defina o fator de contenção usado para criptografia explícita.
-
.ctx_setopt_key_alt_names(contexto, key_alt_names) ➤ Objeto
privado
Defina vários nomes de chave alternativos na criação de chave de dados.
-
.ctx_setopt_key_encryption_key(contexto, key_document) ➤ Objeto
privado
Defina o documento de chave de chave de criptografia para criar uma chave de dados.
-
.ctx_setopt_key_id(context, key_id) ⇒ Object
privado
Define a opção de ID da chave em um contexto de criptografia explícito.
-
.ctx_setopt_key_material(contexto, key_material) ➤ Objeto
privado
Defina um material de chave personalizado a ser usado para criptografar dados.
-
.ctx_setopt_query_type(contexto, query_type) ➤ Objeto
privado
Defina o tipo de query a ser usado para a criptografia explícita FLE 2 .
- .get_binary_data_direct(mongocrypt_binary_t) ➤ Objeto privado
- .get_binary_ten_direct(mongocrypt_binary_t) ➤ Objeto privado
-
.init(handle) ➤ Objeto
privado
Inicialize o objeto Mongo::Crypt::Handle.
-
.kms_ctx_bytes_needed(kms_context) ➤ Inteiro
privado
Obtenha o número de bytes necessários para o KmsContext.
-
.kms_ctx_endpoint(kms_context) ⇒ String | nil
privado
Obtenha o nome do host com o qual se conectar por TLS para obter informações sobre a chave mestra do Amazon Web Services .
-
.kms_ctx_fail(kms_context) ➤ verdadeiro, falso
privado
Verifique se a última solicitação com falha para o contexto KMS pode ser repetida.
-
.kms_ctx_feed(kms_context, bytes) ➤ Objeto
privado
Alimente as respostas do KMS de volta para libmongocrypt.
-
.kms_ctx_get_kms_provider(kms_context) ➤ Objeto
privado
Obtenha o identificador do provedor de KMS associado a esta solicitação de KMS.
-
.kms_ctx_message(kms_context) ⇒ String
privado
Obtenha a mensagem necessária para buscar a HTTP Amazon Web Services KMS chave mestra do de um objeto KmsContext.
-
.kms_ctx_setopt_retry_kms(handle, value) ⇒ true, fale
privado
Habilite ou desabilite o comportamento de novas tentativas do KMS.
-
.kms_ctx_status(kms_context) ➤ Mongo::Crypt::Status
privado
Leia as informações de status do KmsContext fornecido em um objeto Status sem gerar.
-
.kms_ctx_usleep(kms_context) ⇒ Integer
privado
Retorna o número de milissegundos para hibernar antes de enviar a solicitação KMS para o contexto KMS fornecido.
-
.mongocrypt_binary_data(binary) ➤ FFI::Pointer
privado
Obtenha o ponteiro para os dados subjacentes para o mongocrypt_binary_t.
-
.mongocrypt_binary_destroy(binary) ➤ nil
privado
Destrua o objeto mongocrypt_binary_t .
-
.mongocrypt_binary_ten(binary) ➤ Inteiro
privado
Obtenha o comprimento da array de dados subjacente.
-
.mongocrypt_binary_new ➤ FFI::Pointer
privado
Cria um novo objeto mongocrypt_binary_t (uma visualização não própria de uma array de bytes).
-
.mongocrypt_binary_new_from_data(data, lent) ➤ FFI::Pointer
privado
Crie um novo objeto mongocrypt_binary_t que mantém um ponteiro para a array de bytes especificada.
- .mongocrypt_crypt_shared_lib_version(crypt) ➤ Objeto privado
- .mongocrypt_ctx_datakey_init(ctx, filtro) ➤ Objeto privado
-
.mongocrypt_ctx_decrypt_init(ctx, doc) ⇒ Boolean
privado
Inicializa o ctx para descriptografia automática.
-
.mongocrypt_ctx_destroy(ctx) ➤ nil
privado
Destrua a referência ao objeto mongocrypt_ctx_t.
-
.mongocrypt_ctx_encrypt_init(ctx, db, db_ten, cmd) ➤ booleano
privado
Inicializa o ctx para criptografia automática.
-
.mongocrypt_ctx_explicit_decrypt_init(ctx, msg) ⇒ Boolean
privado
Inicializa o ctx para descriptografia explícita.
-
.mongocrypt_ctx_explicit_encrypt_init(ctx, msg) ⇒ Boolean
privado
Inicializa o ctx para criptografia de expressão explícita.
-
.mongocrypt_ctx_finalize(ctx, op_bson) ➤ Boolean
privado
Execute a criptografia ou descriptografia final e retorne um documento BSON .
- .mongocrypt_ctx_mongo_db(ctx) ⇒ Object privado
-
.mongocrypt_ctx_mongo_done(ctx) ⇒ Boolean
privado
Indique para libmongocrypt que o driver terminou de alimentar respostas.
-
.mongocrypt_ctx_mongo_feed(ctx, responder) ➤ Boolean
privado
Alimente uma resposta BSON para libmongocrypt.
-
.mongocrypt_ctx_mongo_next_kms_ctx(ctx) ➤ FFI::Pointer
privado
Retorne um ponteiro para um objeto mongocrypt_kms_ctx_t ou NULL.
-
.mongocrypt_ctx_mongo_op(ctx, op_bson) ➤ Boolean
privado
Obtenha uma operação BSON para que o driver seja executado na coleção do MongoDB , no banco de banco de dados do cofre de chaves ou no mongocryptd.
-
.mongocrypt_ctx_new(crypt) ➤ FFI::Pointer
privado
Crie um novo objeto mongocrypt_ctx_t (um wrapper para a máquina de estado libmongocrypt).
- .mongocrypt_ctx_provide_kms_providers(ctx, kms_providers) ➤ Objeto privado
-
.mongocrypt_ctx_setopt_algorithm(ctx, algoritmo, lent) ➤ booleano
privado
Defina o algoritmo usado para criptografia explícita.
- .mongocrypt_ctx_setopt_algorithm_range(ctx, opts) ➤ Objeto privado
- .mongocrypt_ctx_setopt_contention_factor(ctx, containsion_factor) ➤ Objeto privado
-
.mongocrypt_ctx_setopt_key_alt_name(ctx, binary) ➤ Boolean
privado
Ao criar uma chave de dados, defina um nome alternativo nessa chave.
-
.mongocrypt_ctx_setopt_key_encryption_key(ctx) ➤ Boolean
privado
Defina o documento de chave de chave de criptografia para criar uma chave de dados.
-
.mongocrypt_ctx_setopt_key_id(ctx, key_id) ⇒ Boolean
privado
Defina o ID da chave usado para criptografia explícita.
-
.mongocrypt_ctx_setopt_key_material(ctx, binário) ➤ Booleano
privado
Ao criar uma chave de dados, defina um material de chave personalizado para usar na criptografia de dados.
- .mongocrypt_ctx_setopt_query_type(ctx, mongocrypt_query_type) ➤ Objeto privado
-
.mongocrypt_ctx_state(ctx) ➤ Símbolo
privado
Obtenha o estado atual do ctx.
-
.mongocrypt_ctx_status(ctx, status) ➤ Boolean
privado
Defina as informações de status do objeto mongocrypt_ctx_t no objeto mongocrypt_status_t .
-
.mongocrypt_destroy(crypt) ➤ nil
privado
Destrua a referência ao objeto mongocrypt_t.
-
.mongocrypt_init(crypt) ➤ Boolean
privado
Inicialize o objeto mongocrypt_t .
-
.mongocrypt_kms_ctx_bytes_needed(KMS) ➤ Inteiro
privado
Obtenha o número de bytes necessários para o contexto KMS.
-
.mongocrypt_kms_ctx_done(ctx) ⇒ Boolean
privado
Indique para libmongocrypt que ela não receberá mais respostas de objetos mongocrypt_kms_ctx_t.
-
.mongocrypt_kms_ctx_endpoint(KMS, endpoint) ➤ Boolean
privado
Obtenha o nome do host com o qual se conectar por TLS para obter informações sobre a chave mestra do Amazon Web Services .
- .mongocrypt_kms_ctx_fail(ctx) ⇒ Object privado
-
.mongocrypt_kms_ctx_feed(KMS, bytes) ➤ Boolean
privado
Alimente as respostas do KMS de volta para libmongocrypt.
- .mongocrypt_kms_ctx_get_kms_provider(crypt, kms_providers) ➤ Objeto privado
-
.mongocrypt_kms_ctx_message(KMS, mensagem) ➤ Boolean
privado
Obtenha a mensagem necessária para buscar a Amazon Web Services KMS chave mestra do .
-
.mongocrypt_kms_ctx_status(KMS, status) ➤ Boolean
privado
Escreva informações de status sobre o objeto mongocrypt_kms_ctx_t no objeto mongocrypt_status_t.
-
.mongocrypt_kms_ctx_usleep(ctx) ⇒ int64
privado
Indica quanto tempo sono antes de enviar solicitação de KMS.
-
.mongocrypt_setopt_aes_256_ctr(crypt, aes_256_ctr_encrypt, aes_256_ctr_decrypt, ctx) ➤ booleano
privado
Defina um hook criptográfico para as operações AES256-CTR.
- .mongocrypt_setopt_append_crypt_shared_lib_search_path(crypt, caminho) ➤ Objeto privado
- .mongocrypt_setopt_bypass_query_analysis(crypt) ➤ Objeto privado
-
.mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(crypt, sign_rsaes_pkcs1_v1_5, ctx = nil) ➤ booleano
privado
Defina um hook cripto para o algoritmo RASSA-PKCS1-v1_5 com um hash SHA-256 .
-
.mongocrypt_setopt_crypto_hooks(crypt, aes_enc_fn, aes_dec_fn, random_fn, sha_512_fn, sha_256_fn, hash_fn, ctx = nil) ➤ booleano
privado
Defina hooks de criptomoedas no objeto mongocrypt fornecido.
- .mongocrypt_setopt_enable_multiple_collinfo(crypt) ➤ Objeto privado
- .mongocrypt_setopt_encrypted_field_config_map(crypt, efc_map) ➤ Objeto privado
-
.mongocrypt_setopt_kms_providers(crypt, kms_providers) ➤ Objeto
privado
Configure os provedores de KMS com um documento BSON .
-
.mongocrypt_setopt_log_handler(crypt, log_fn, log_ctx = nil) ➤ Boolean
privado
Defina o manipulador no objeto mongocrypt_t a ser chamado toda vez que libmongocrypt registrar uma mensagem.
- .mongocrypt_setopt_retry_kms(crypt, enable) ➤ Objeto privado
-
.mongocrypt_setopt_schema_map(crypt, schema_map) ➤ Boolean
privado
Define um mapa de esquema local para criptografia.
- .mongocrypt_setopt_set_crypt_shared_lib_path_override(crypt, path) ➤ Objeto privado
- .mongocrypt_setopt_use_need_kms_credentials_state(crypt) ➤ Objeto privado
- .mongocrypt_setopt_use_need_mongo_collinfo_with_db_state(crypt) → Objeto privado
-
.mongocrypt_status(crypt, status) ➤ Boolean
privado
Defina as informações de status do objeto mongocrypt_t no objeto mongocrypt_status_t .
-
.mongocrypt_status_code(status) ➤ Inteiro
privado
Retornar o código de erro de status.
-
.mongocrypt_status_destroy(status) ➤ nil
privado
Destrói a referência ao objeto mongocrypt_status_t.
-
.mongocrypt_status_message(status, len = nil) ⇒ String
privado
Retorna a mensagem de status.
-
.mongocrypt_status_new ➤ FFI::Pointer
privado
Crie um novo objeto mongocrypt_status_t.
-
.mongocrypt_status_ok(status) ➤ Boolean
privado
Retorna se o status está correto ou se é um erro.
-
.mongocrypt_status_set(status, tipo, código, mensagem, lent) ➤ nil
privado
Defina uma mensagem, digite e código em um status existente.
-
.mongocrypt_status_type(status) ⇒ Symbol
privado
Indica o tipo de status.
-
.mongocrypt_version(ten) ➤ string
privado
Retorna a string de versão da biblioteca libmongocrypt.
-
.ongocrypt_new ➤ FFI::Pointer
privado
Cria um novo objeto mongocrypt_t.
-
.parse_version(version) ⇒ Gem::Version
privado
Fornece uma string que representa um número de versão, analisa-a em um objeto Gem::Version .
-
.setopt_aes_256_ctr(handle, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb) ➤ Objeto
privado
Defina um hook criptográfico para as operações AES256-CTR.
-
.setopt_append_crypt_shared_lib_search_path(handle, caminho) ➤ Objeto
privado
Anexe um diretório de pesquisa adicional ao caminho de pesquisa para carregar a biblioteca dinâmica crypt_shared.
-
.setopt_bypass_query_analysis(handle) ⇒ Object
privado
Opte por ignorar a análise de query.
-
.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(handle, rsaes_pkcs_signature_cb) ⇒ Object
privado
Defina um hook cripto para o algoritmo RASSA-PKCS1-v1_5 com um hash SHA-256 oh the Handle.
-
.setopt_crypto_hooks(handle, aes_encrypt_cb, aes_decrypt_cb, random_cb, hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb) ➤ Objeto
privado
Defina chamada de resposta criptográficas no Handle.
-
.setopt_enable_multiple_collinfo(lidar) ⇒ Booleano
privado
Habilite o suporte para vários esquemas de coleções.
-
.setopt_encrypted_field_config_map(handle, efc_map) ➤ Objeto
privado
Defina um EncryptedFieldConfigMap local para criptografia.
-
.setopt_kms_providers(handle, kms_providers) ➤ Objeto
privado
Defina as opções do provedor KMS no objeto Mongo::Crypt::Handle.
-
.setopt_log_handler(handle, log_callback) ➤ Objeto
privado
Defina a função de retorno de chamada do logger no Mongo::Crypt::Handle objeto.
-
.setopt_schema_map(handle, schema_map_doc) ➤ Objeto
privado
Defina o mapa de esquema no objeto Mongo::Crypt::Handle.
-
.setopt_set_crypt_shared_lib_path_override(handle, caminho) ➤ Objeto
privado
Defina um único caminho de substituição para carregar a biblioteca compartilhada de criptografia.
-
.setopt_use_need_kms_credentials_state(handle) ➤ Object
privado
Opte por lidar com o estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS.
-
.setopt_use_need_mongo_collinfo_with_db_state(lidar) ⇒ objeto
privado
Opte por lidar com o estado MONGOCRYPT_CTX_NEED_MONGO_COLLINFO_WITH_DB.
-
.validate_document(data) ⇒ Object
privado
Verifica se os dados especificados são um Hash antes de serializá-los para BSON para evitar erros de libmongocrypt.
-
.validate_version(lmc_version) ⇒ Object
privado
Valida se a versão fornecida da libmongocrypt é válida, ou seja,
Recolhimento do Resumo do método de instância
-
#mongocrypt_crypto_fn(ctx, key, iv, entrada, saída, status) ➤ Bool
privado
Um chamada de resposta de chamada para uma função que executa criptografia ou descriptografia AES.
-
#mongocrypt_hash_fn(ctx, input, output, status) ⇒ Bool
privado
Um chamada de resposta de chamada para uma função de hash SHA-256 .
-
#mongocrypt_hmac_fn(ctx, key, entrada, saída, status) ➤ Bool
privado
Um retorno de chamada para uma função que executa HMAC SHA-512 ou SHA-256.
-
#mongocrypt_log_fn_t(nível, mensagem, lent, ctx) ➤ nil
privado
Um chamada de resposta de chamada para a função de registro do mongocrypt.
-
#mongocrypt_random_fn(ctx, saída, contagem, status) ➤ Bool
privado
Um chamada de resposta de chamada para uma função aleatória segura de criptografia.
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.
1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1893 def auto.check_ctx_status(Contexto) do_raise = se block_given? !rendimento mais true end Método a menos que do_raise Status = Status.Novo mongocrypt_ctx_status(Contexto.ctx_p, Status.ref) Status.create_crypt_error end |
.check_kms_ctx_status(kms_context) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Se o bloco fornecido retornar falso, gere um CryptError com as informações de status do objeto KmsContext fornecido.
1106 1107 1108 1109 1110 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1106 def auto.check_kms_ctx_status(kms_context) Método se rendimento kms_ctx_status(kms_context).create_crypt_error(KMS: true) end |
.check_status(handle) ➤ nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Gere um Mongo::Error::CryptError com base no status do objeto mongocrypt_t subjacente.
1880 1881 1882 1883 1884 1885 1886 1887 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1880 def auto.check_status(lidar) Método se rendimento Status = Status.Novo mongocrypt_status(lidar.ref, Status.ref) Status.create_crypt_error end |
.crypt_shared_lib_version(handle) ➤ inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha uma codificação de constante de 64bits para a versão da biblioteca crypt_shared carregada, se disponível.
A versão é codificada como quatro números 16-bit, de cima para baixo:
- Versão principal
- Versão secundária
- Revisão
- reservado
Por exemplo, a versão 6.2.1 seria codificada como: 0x00060002'0001'0000
1619 1620 1621 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1619 def auto.crypt_shared_lib_version(lidar) mongocrypt_crypt_shared_lib_version(lidar.ref) end |
.ctx_datakey_init(contexto) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicialize o contexto para criar uma chave de dados
623 624 625 626 627 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 623 def auto.ctx_datakey_init(Contexto) check_ctx_status(Contexto) fazer mongocrypt_ctx_datakey_init(Contexto.ctx_p) end end |
.ctx_decrypt_init(contexto, comando) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicialize o contexto para descriptografia automática
784 785 786 787 788 789 790 791 792 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 784 def auto.ctx_decrypt_init(Contexto, comando) validate_document(comando) de dados = comando.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_decrypt_init(Contexto.ctx_p, data_p) end end end |
.ctx_encrypt_init(contexto, db_name, comando) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicializar o contexto para criptografia automática
690 691 692 693 694 695 696 697 698 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 690 def auto.ctx_encrypt_init(Contexto, db_name, comando) validate_document(comando) de dados = comando.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_encrypt_init(Contexto.ctx_p, db_name, -1, data_p) end end end |
.ctx_explicit_decrypt_init(context, doc) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicialize o contexto para descriptografia explícita
814 815 816 817 818 819 820 821 822 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 814 def auto.ctx_explicit_decrypt_init(Contexto, doc) validate_document(doc) de dados = doc.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_explicit_decrypt_init(Contexto.ctx_p, data_p) end end end |
.ctx_explicit_encrypt_expression_init(context, doc) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicialize o Contexto para criptografia de expressão explícita.
758 759 760 761 762 763 764 765 766 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 758 def auto.ctx_explicit_encrypt_expression_init(Contexto, doc) validate_document(doc) de dados = doc.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_explicit_encrypt_expression_init(Contexto.ctx_p, data_p) end end end |
.ctx_explicit_encrypt_init(context, doc) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicializar o contexto para criptografia explícita
724 725 726 727 728 729 730 731 732 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 724 def auto.ctx_explicit_encrypt_init(Contexto, doc) validate_document(doc) de dados = doc.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_explicit_encrypt_init(Contexto.ctx_p, data_p) end end end |
.ctx_finalize(contexto) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Finalize a máquina de estados representada pelo Contexto
1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1217 def auto.ctx_finalize(Contexto) binário = Binário.Novo check_ctx_status(Contexto) fazer mongocrypt_ctx_finalize(Contexto.ctx_p, binário.ref) end # TODO: como o binário faz referência a um ponteiro C, e ByteBuffer é # escritos em C em MRI, poderíamos omitir uma cópia dos dados fazendo # ByteBuffer faz referência à string que pertence a libmongocrypt. BSON::Documento.from_bson(BSON::ByteBuffer.Novo(binário.to_s), modo: Contexto.bson_mode) end |
.ctx_kms_done(context) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Indique para libmongocrypt que ela não receberá mais respostas de KMS.
1194 1195 1196 1197 1198 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1194 def auto.ctx_kms_done(Contexto) check_ctx_status(Contexto) fazer mongocrypt_ctx_kms_done(Contexto.ctx_p) end end |
.ctx_mongo_db(context) ⇒ String
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o nome do banco de dados para a operação collinfo atual.
1720 1721 1722 1723 1724 1725 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1720 def auto.ctx_mongo_db(Contexto) db_name = mongocrypt_ctx_mongo_db(Contexto.ctx_p) Método db_name se db_name check_ctx_status(Contexto) end |
.ctx_mongo_feed(contexto, doc) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Alimente uma resposta do motorista de volta para libmongocrypt
896 897 898 899 900 901 902 903 904 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 896 def auto.ctx_mongo_feed(Contexto, doc) validate_document(doc) de dados = doc.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_mongo_feed(Contexto.ctx_p, data_p) end end end |
.ctx_mongo_op(context) ⇒ BSON::Document
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna um BSON::Document que representa uma operação que o driver deve executar em nome da libmongocrypt para obter as informações necessárias para continuar com a criptografia/descriptografia (por exemplo, um filtro para uma query de cofre de chaves).
867 868 869 870 871 872 873 874 875 876 877 878 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 867 def auto.ctx_mongo_op(Contexto) binário = Binário.Novo check_ctx_status(Contexto) fazer mongocrypt_ctx_mongo_op(Contexto.ctx_p, binário.ref) end # TODO: como o binário faz referência a um ponteiro C, e ByteBuffer é # escritos em C em MRI, poderíamos omitir uma cópia dos dados fazendo # ByteBuffer faz referência à string que pertence a libmongocrypt. BSON::Documento.from_bson(BSON::ByteBuffer.Novo(binário.to_s), modo: :bson) end |
.ctx_next_kms_ctx(context) ⇒ Mongo::Crypt::KmsContext | nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorne um novo objeto KmsContext necessário para um objeto Context .
928 929 930 931 932 933 934 935 936 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 928 def auto.ctx_next_kms_ctx(Contexto) kms_ctx_p = mongocrypt_ctx_next_kms_ctx(Contexto.ctx_p) se kms_ctx_p.nulo? nada mais KmsContext.Novo(kms_ctx_p) end end |
.ctx_provide_kms_providers(contexto, kms_providers) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Ligue para em resposta ao estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS para definir as configurações do provedor KMS por contexto. Eles seguem o mesmo formato que `mongocrypt_setopt_kms_providers``. Se nenhuma chave estiver presente na entrada BSON, as configurações do provedor KMS configuradas para o mongocrypt_t na inicialização serão usadas.
1759 1760 1761 1762 1763 1764 1765 1766 1767 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1759 def auto.ctx_provide_kms_providers(Contexto, kms_providers) validate_document(kms_providers) de dados = kms_providers.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_provide_kms_providers(Contexto.ctx_p, data_p) end end end |
.ctx_rewrap_many_datakey_init(contexto, filtro) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicialize um contexto para retrair as chaves de dados.
654 655 656 657 658 659 660 661 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 654 def auto.ctx_rewrap_many_datakey_init(Contexto, filtro, filtro) filter_data = filtro, filtro.to_bson.to_s Binário.wrap_string(filter_data) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_rewrap_many_datakey_init(Contexto.ctx_p, data_p) end end end |
.ctx_setopt_algorithm(contexto, nome) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina o algoritmo no contexto
567 568 569 570 571 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 567 def auto.ctx_setopt_algorithm(Contexto, name) check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_algorithm(Contexto.ctx_p, name, -1) end end |
.ctx_setopt_algorithm_range(contexto, opções) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
O algoritmo Range é apenas experimental. Não é destinado a
Defina opções para criptografia explícita com o algoritmo de "faixa".
uso público.
1866 1867 1868 1869 1870 1871 1872 1873 1874 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1866 def auto.ctx_setopt_algorithm_range(Contexto, opciona) validate_document(opciona) de dados = opciona.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_algorithm_range(Contexto.ctx_p, data_p) end end end |
.ctx_setopt_contention_factor(contexto, fator) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina o fator de contenção usado para criptografia explícita. O fator de contenção é usado somente para criptografia FLE 2 indexada.
1829 1830 1831 1832 1833 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1829 def auto.ctx_setopt_contention_factor(Contexto, fator) check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_contention_factor(Contexto.ctx_p, fator) end end |
.ctx_setopt_key_alt_names(contexto, key_alt_names) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Definir vários nomes de chave alternativos na criação de chave de dados
498 499 500 501 502 503 504 505 506 507 508 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 498 def auto.ctx_setopt_key_alt_names(Contexto, key_alt_names) key_alt_names.cada fazer |key_alt_name| key_alt_name_bson = { keyAltName: key_alt_name }.to_bson.to_s Binário.wrap_string(key_alt_name_bson) fazer |key_alt_name_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_key_alt_name(Contexto.ctx_p, key_alt_name_p) end end end end |
.ctx_setopt_key_encryption_key(contexto, key_document) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina o documento de chave de chave de criptografia para criar uma chave de dados.
596 597 598 599 600 601 602 603 604 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 596 def auto.ctx_setopt_key_encryption_key(Contexto, key_document) validate_document(key_document) de dados = key_document.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_key_encryption_key(Contexto.ctx_p, data_p) end end end |
.ctx_setopt_key_id(context, key_id) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Define a opção de ID da chave em um contexto de criptografia explícito.
465 466 467 468 469 470 471 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 465 def auto.ctx_setopt_key_id(Contexto, key_id) Binário.wrap_string(key_id) fazer |key_id_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_key_id(Contexto.ctx_p, key_id_p) end end end |
.ctx_setopt_key_material(contexto, key_material) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina um material de chave personalizado a ser usado para criptografar dados.
533 534 535 536 537 538 539 540 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 533 def auto.ctx_setopt_key_material(Contexto, key_material) de dados = { 'keyMaterial' => key_material }.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_key_material(Contexto.ctx_p, data_p) end end end |
.ctx_setopt_query_type(contexto, query_type) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina o tipo de query a ser usado para a criptografia explícita FLE 2 . O tipo de query é usado somente para criptografia FLE 2 indexada.
1797 1798 1799 1800 1801 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1797 def auto.ctx_setopt_query_type(Contexto, query_type) check_ctx_status(Contexto) fazer mongocrypt_ctx_setopt_query_type(Contexto.ctx_p, query_type, -1) end end |
.get_binary_data_direct(mongocrypt_binary_t) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
179 180 181 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 179 def auto.get_binary_data_direct(mongocrypt_binary_t) mongocrypt_binary_t.get_pointer(0) end |
.get_binary_ten_direct(mongocrypt_binary_t) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
183 184 185 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 183 def auto.get_binary_ten_direct(mongocrypt_binary_t) mongocrypt_binary_t.get_uint32(FFI::NativeType::POINTER.Tamanho) end |
.init(handle) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicialize o objeto Mongo::Crypt::Handle
405 406 407 408 409 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 405 def auto.init(lidar) check_status(lidar) fazer mongocrypt_init(lidar.ref) end end |
.kms_ctx_bytes_needed(kms_context) ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o número de bytes necessários para o KmsContext.
1062 1063 1064 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1062 def auto.kms_ctx_bytes_needed(kms_context) mongocrypt_kms_ctx_bytes_needed(kms_context.kms_ctx_p) end |
.kms_ctx_endpoint(kms_context) ⇒ String | nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o nome do host com o qual se conectar por TLS para obter informações sobre a chave mestra do Amazon Web Services .
1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1038 def auto.kms_ctx_endpoint(kms_context) ptr = FFI::MemoryPointer.Novo(:pointer, 1) check_kms_ctx_status(kms_context) fazer mongocrypt_kms_ctx_endpoint(kms_context.kms_ctx_p, ptr) end str_ptr = ptr.read_pointer str_ptr.nulo? ? nada : str_ptr.read_string.force_encoding('UTF-8') end |
.kms_ctx_fail(kms_context) ➤ true, false
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Verifique se a última solicitação com falha para o contexto KMS pode ser repetida.
1157 1158 1159 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1157 def auto.kms_ctx_fail(kms_context) mongocrypt_kms_ctx_fail(kms_context.kms_ctx_p) end |
.kms_ctx_feed(kms_context, bytes) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Alimente as respostas do KMS de volta para libmongocrypt.
1082 1083 1084 1085 1086 1087 1088 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1082 def auto.kms_ctx_feed(kms_context, bytes) check_kms_ctx_status(kms_context) fazer Binário.wrap_string(bytes) fazer |bytes_p| mongocrypt_kms_ctx_feed(kms_context.kms_ctx_p, bytes_p) end end end |
.kms_ctx_get_kms_provider(kms_context) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o identificador do provedor de KMS associado a esta solicitação de KMS.
Isso é usado para configurar condicionalmente conexões TLS com base na solicitação do KMS. É útil para o KMIP, que se autentica com um certificado de cliente .
969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 969 def auto.kms_ctx_get_kms_provider(kms_context) len_ptr = FFI::MemoryPointer.Novo(:uint32, 1) fornecedor = mongocrypt_kms_ctx_get_kms_provider( kms_context.kms_ctx_p, len_ptr ) se len_ptr.nada? nada mais len = se BSON::ambiente.jRuby? # A implementação do JRuby FFI não tem o método 'read (type)', mas # tem este `get_uint32'. len_ptr.get_uint32 mais # Para MRI, usamos um método de `read` documentado - https://www.rubydoc.info/github/ffi/ffi/FFI%2FPointer:read len_ptr.ler(:uint32) end fornecedor.read_string(len).to_sym end end |
.kms_ctx_message(kms_context) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha a mensagem necessária para buscar a HTTP Amazon Web Services KMS chave mestra do de um objeto KmsContext.
1009 1010 1011 1012 1013 1014 1015 1016 1017 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1009 def auto.(kms_context) binário = Binário.Novo check_kms_ctx_status(kms_context) fazer (kms_context.kms_ctx_p, binário.ref) end binário.to_s end |
.kms_ctx_setopt_retry_kms(handle, value) ⇒ true, fale
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Habilite ou desabilite o comportamento de novas tentativas do KMS.
1176 1177 1178 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1176 def auto.kms_ctx_setopt_retry_kms(lidar, valor) mongocrypt_setopt_retry_kms(lidar.ref, valor) end |
.kms_ctx_status(kms_context) ⇒ Mongo::Crypt::Status
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Leia as informações de status do KmsContext fornecido em um objeto Status sem gerar.
1118 1119 1120 1121 1122 1123 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1118 def auto.kms_ctx_status(kms_context) Status = Status.Novo mongocrypt_kms_ctx_status(kms_context.kms_ctx_p, Status.ref) Status end |
.kms_ctx_usleep(kms_context) ⇒ Integer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o número de milissegundos para hibernar antes de enviar a solicitação KMS para o contexto KMS fornecido.
1140 1141 1142 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1140 def auto.kms_ctx_usleep(kms_context) mongocrypt_kms_ctx_usleep(kms_context.kms_ctx_p) end |
.mongocrypt_binary_data(binary) ➤ FFI::Pointer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o ponteiro para os dados subjacentes para o mongocrypt_binary_t.
169 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 169 anexar função :mongocrypt_binary_data, [ :pointer ], :pointer |
.mongocrypt_binary_destroy(binary) ➤ nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Destrua o objeto mongocrypt_binary_t .
193 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 193 anexar função :mongocrypt_binary_destroy, [ :pointer ], :void |
.mongocrypt_binary_ten(binary) ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o comprimento da array de dados subjacente.
177 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 177 anexar função :mongocrypt_binary_ten, [ :pointer ], :int |
.mongocrypt_binary_new ➤ FFI::Pointer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Cria um novo objeto mongocrypt_binary_t (uma visualização não própria de uma array de bytes).
145 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 145 anexar função :mongocrypt_binary_new, [], :pointer |
.mongocrypt_binary_new_from_data(data, lent) ➤ FFI::Pointer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Crie um novo objeto mongocrypt_binary_t que mantém um ponteiro para a array de bytes especificada.
157 158 159 160 161 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 157 anexar função( :mongocrypt_binary_new_from_data, %i[pointer int], :pointer ) |
.mongocrypt_crypt_shared_lib_version(crypt) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1597 1598 1599 1600 1601 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1597 anexar função( :mongocrypt_crypt_shared_lib_version, [ :pointer ], :uint64 ) |
.mongocrypt_ctx_datakey_init(ctx, filtro) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
616 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 616 anexar função :mongocrypt_ctx_datakey_init, [ :pointer ], :bool |
.mongocrypt_ctx_decrypt_init(ctx, doc) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicializa o ctx para descriptografia automática.
776 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 776 anexar função :mongocrypt_ctx_decrypt_init, %i[pointer pointer], :bool |
.mongocrypt_ctx_destroy(ctx) ➤ nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Destrua a referência ao objeto mongocrypt_ctx_t.
1236 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1236 anexar função :mongocrypt_ctx_destroy, [ :pointer ], :void |
.mongocrypt_ctx_encrypt_init(ctx, db, db_len, cmd) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Este método espera que o BSON passado esteja no formato: { "v": valor BSON para descriptografar }.
Inicializa o ctx para criptografia automática.
676 677 678 679 680 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 676 anexar função( :mongocrypt_ctx_encrypt_init, %i[pointer string int pointer], :bool ) |
.mongocrypt_ctx_explicit_decrypt_init(ctx, msg) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicializa o ctx para descriptografia explícita.
802 803 804 805 806 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 802 anexar função( :mongocrypt_ctx_explicit_decrypt_init, %i[pointer pointer], :bool ) |
.mongocrypt_ctx_explicit_encrypt_init(ctx, msg) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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.
712 713 714 715 716 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 712 anexar função( :mongocrypt_ctx_explicit_encrypt_init, %i[pointer pointer], :bool ) |
.mongocrypt_ctx_finalize(ctx, op_bson) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Execute a criptografia ou descriptografia final e retorne um documento BSON .
1209 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1209 anexar função :mongocrypt_ctx_finalize, %i[pointer pointer], :void |
.mongocrypt_ctx_mongo_db(ctx) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1714 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1714 anexar função :mongocrypt_ctx_mongo_db, [ :pointer ], : string |
.mongocrypt_ctx_mongo_done(ctx) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Indique para libmongocrypt que o driver terminou de alimentar respostas.
912 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 912 anexar função :mongocrypt_ctx_mongo_done, [ :pointer ], :bool |
.mongocrypt_ctx_mongo_feed(ctx, responder) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Alimente uma resposta BSON para libmongocrypt.
888 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 888 anexar função :mongocrypt_ctx_mongo_feed, %i[pointer pointer], :bool |
.mongocrypt_ctx_mongo_next_kms_ctx(ctx) ➤ FFI::Pointer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorne um ponteiro para um objeto mongocrypt_kms_ctx_t ou NULL.
920 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 920 anexar função :mongocrypt_ctx_next_kms_ctx, [ :pointer ], :pointer |
.mongocrypt_ctx_mongo_op(ctx, op_bson) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha uma operação BSON para que o driver seja executado na coleção do MongoDB , no banco de banco de dados do cofre de chaves ou no mongocryptd.
856 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 856 anexar função :mongocrypt_ctx_mongo_op, %i[pointer pointer], :bool |
.mongocrypt_ctx_new(crypt) ➤ FFI::Pointer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Crie um novo objeto mongocrypt_ctx_t (um wrapper para a máquina de estado libmongocrypt).
436 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 436 anexar função :mongocrypt_ctx_new, [ :pointer ], :pointer |
.mongocrypt_ctx_provide_kms_providers(ctx, kms_providers) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1742 1743 1744 1745 1746 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1742 anexar função( :mongocrypt_ctx_provide_kms_providers, %i[pointer pointer], :bool ) |
.mongocrypt_ctx_setopt_algorithm(ctx, algoritmo, lent) ➤ booleano
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Não inicialize ctx antes de chamar este método.
Defina o algoritmo usado para criptografia explícita.
553 554 555 556 557 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 553 anexar função( :mongocrypt_ctx_setopt_algorithm, %i[pointer string int], :bool ) |
.mongocrypt_ctx_setopt_algorithm_range(ctx, opts) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1848 1849 1850 1851 1852 1853 1854 1855 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1848 anexar função( :mongocrypt_ctx_setopt_algorithm_range, %i[ pointer pointer ], :bool ) |
.mongocrypt_ctx_setopt_contention_factor(ctx, containsion_factor) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1813 1814 1815 1816 1817 1818 1819 1820 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1813 anexar função( :mongocrypt_ctx_setopt_contention_factor, %i[ pointer int64 ], :bool ) |
.mongocrypt_ctx_setopt_key_alt_name(ctx, binary) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Não inicialize ctx antes de chamar este método.
Ao criar uma chave de dados, defina um nome alternativo nessa chave. Ao executar a criptografia explícita, especifique qual chave de dados usar para criptografia com base em seu campo keyAltName .
485 486 487 488 489 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 485 anexar função( :mongocrypt_ctx_setopt_key_alt_name, %i[pointer pointer], :bool ) |
.mongocrypt_ctx_setopt_key_encryption_key(ctx) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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.
583 584 585 586 587 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 583 anexar função( :mongocrypt_ctx_setopt_key_encryption_key, %i[pointer pointer], :bool ) |
.mongocrypt_ctx_setopt_key_id(ctx, key_id) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Não inicialize ctx antes de chamar este método.
Defina o ID da chave usado para criptografia explícita.
457 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 457 anexar função :mongocrypt_ctx_setopt_key_id, %i[pointer pointer], :bool |
.mongocrypt_ctx_setopt_key_material(ctx, binário) ➤ Booleano
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Não inicialize ctx antes de chamar este método.
Ao criar uma chave de dados, defina um material de chave personalizado para usar na criptografia de dados.
520 521 522 523 524 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 520 anexar função( :mongocrypt_ctx_setopt_key_material, %i[pointer pointer], :bool ) |
.mongocrypt_ctx_setopt_query_type(ctx, mongocrypt_query_type) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1780 1781 1782 1783 1784 1785 1786 1787 1788 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1780 anexar função( :mongocrypt_ctx_setopt_query_type, %i[ pointer string int ], :bool ) |
.mongocrypt_ctx_state(ctx) ➤ Símbolo
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o estado atual do ctx.
844 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 844 anexar função :mongocrypt_ctx_state, [ :pointer ], :mongocrypt_ctx_state |
.mongocrypt_ctx_status(ctx, status) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina as informações de status do objeto mongocrypt_ctx_t no objeto mongocrypt_status_t .
446 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 446 anexar função :mongocrypt_ctx_status, %i[pointer pointer], :bool |
.mongocrypt_destroy(crypt) ➤ nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Destrua a referência ao objeto mongocrypt_t.
427 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 427 anexar função :mongocrypt_destroy, [ :pointer ], :void |
.mongocrypt_init(crypt) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Inicialize o objeto mongocrypt_t .
398 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 398 anexar função :mongocrypt_init, [ :pointer ], :bool |
.mongocrypt_kms_ctx_bytes_needed(KMS) ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o número de bytes necessários para o contexto KMS.
1055 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1055 anexar função :mongocrypt_kms_ctx_bytes_needed, [ :pointer ], :int |
.mongocrypt_kms_ctx_done(ctx) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Indique para libmongocrypt que ela não receberá mais respostas de objetos mongocrypt_kms_ctx_t.
1187 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1187 anexar função :mongocrypt_ctx_kms_done, [ :pointer ], :bool |
.mongocrypt_kms_ctx_endpoint(KMS, endpoint) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha o nome do host com o qual se conectar por TLS para obter informações sobre a chave mestra do Amazon Web Services .
1028 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1028 anexar função :mongocrypt_kms_ctx_endpoint, %i[pointer pointer], :bool |
.mongocrypt_kms_ctx_fail(ctx) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1151 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1151 anexar função :mongocrypt_kms_ctx_fail, [ :pointer ], :bool |
.mongocrypt_kms_ctx_feed(KMS, bytes) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Alimente as respostas do KMS de volta para libmongocrypt.
1074 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1074 anexar função :mongocrypt_kms_ctx_feed, %i[pointer pointer], :bool |
.mongocrypt_kms_ctx_get_kms_provider(crypt, kms_providers) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
954 955 956 957 958 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 954 anexar função( :mongocrypt_kms_ctx_get_kms_provider, %i[pointer pointer], :pointer ) |
.mongocrypt_kms_ctx_message(KMS, mensagem) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Obtenha a mensagem necessária para buscar a Amazon Web Services KMS chave mestra do .
999 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 999 anexar função :mongocrypt_kms_ctx_message, %i[pointer pointer], :bool |
.mongocrypt_kms_ctx_status(KMS, status) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Escreva informações de status sobre o objeto mongocrypt_kms_ctx_t no objeto mongocrypt_status_t.
1098 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1098 anexar função :mongocrypt_kms_ctx_status, %i[pointer pointer], :bool |
.mongocrypt_kms_ctx_usleep(ctx) ⇒ int64
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Indica quanto tempo sono antes de enviar solicitação de KMS.
1132 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1132 anexar função :mongocrypt_kms_ctx_usleep, [ :pointer ], :int64 |
.mongocrypt_setopt_aes_256_ctr(crypt, aes_256_ctr_encrypt, aes_256_ctr_decrypt, ctx) ➤ booleano
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina um hook criptográfico para as operações AES256-CTR.
1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1493 anexar função( :mongocrypt_setopt_aes_256_ctr, %i[ pointer mongocrypt_crypto_fn mongocrypt_crypto_fn pointer ], :bool ) |
.mongocrypt_setopt_append_crypt_shared_lib_search_path(crypt, caminho) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1530 1531 1532 1533 1534 1535 1536 1537 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1530 anexar função( :mongocrypt_setopt_append_crypt_shared_lib_search_path, %i[ pointer string ], :void ) |
.mongocrypt_setopt_bypass_query_analysis(crypt) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1469 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1469 anexar função(:mongocrypt_setopt_bypass_query_analysis, [ :pointer ], :void) |
.mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(crypt, sign_rsaes_pkcs1_v1_5, ctx = nil) ➤ booleano
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina um hook cripto para o algoritmo RASSA-PKCS1-v1_5 com um hash SHA-256 .
1386 1387 1388 1389 1390 1391 1392 1393 1394 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1386 anexar função( :mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5, %i[ pointer mongocrypt_hmac_fn pointer ], :bool ) |
.mongocrypt_setopt_crypto_hooks(crypt, aes_enc_fn, aes_dec_fn, random_fn, sha_512_fn, sha_256_fn, hash_fn, ctx = nil) ⇒ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina hooks de criptomoedas no objeto mongocrypt fornecido.
1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1341 anexar função( :mongocrypt_setopt_crypto_hooks, %i[ pointer mongocrypt_crypto_fn mongocrypt_crypto_fn mongocrypt_random_fn mongocrypt_hmac_fn mongocrypt_hmac_fn mongocrypt_hash_fn pointer ], :bool ) |
.mongocrypt_setopt_enable_multiple_collinfo(crypt) ⇒ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1668 1669 1670 1671 1672 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1668 anexar função( :mongocrypt_setopt_enable_multiple_collinfo, [ :pointer ], :bool ) |
.mongocrypt_setopt_encrypted_field_config_map(crypt, efc_map) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1428 1429 1430 1431 1432 1433 1434 1435 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1428 anexar função( :mongocrypt_setopt_encrypted_field_config_map, %i[ pointer pointer ], :bool ) |
.mongocrypt_setopt_kms_providers(crypt, kms_providers) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Não inicialize ctx antes de chamar este método.
Configure os provedores de KMS com um documento BSON .
342 343 344 345 346 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 342 anexar função( :mongocrypt_setopt_kms_providers, %i[pointer pointer], :bool ) |
.mongocrypt_setopt_log_handler(crypt, log_fn, log_ctx = nil) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina o manipulador no objeto mongocrypt_t a ser chamado toda vez que libmongocrypt registrar uma mensagem.
313 314 315 316 317 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 313 anexar função( :mongocrypt_setopt_log_handler, %i[pointer mongocrypt_log_fn_t pointer], :bool ) |
.mongocrypt_setopt_retry_kms(crypt, enable) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1169 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1169 anexar função :mongocrypt_setopt_retry_kms, %i[pointer bool], :bool |
.mongocrypt_setopt_schema_map(crypt, schema_map) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Define um mapa de esquema local para criptografia.
373 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 373 anexar função :mongocrypt_setopt_schema_map, %i[pointer pointer], :bool |
.mongocrypt_setopt_set_crypt_shared_lib_path_override(crypt, path) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1559 1560 1561 1562 1563 1564 1565 1566 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1559 anexar função( :mongocrypt_setopt_set_crypt_shared_lib_path_override, %i[ pointer string ], :void ) |
.mongocrypt_setopt_use_need_kms_credentials_state(crypt) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1638 1639 1640 1641 1642 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1638 anexar função( :mongocrypt_setopt_use_need_kms_credentials_state, [ :pointer ], :void ) |
.mongocrypt_setopt_use_need_mongo_collinfo_with_db_state(crypt) ⇒ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
1692 1693 1694 1695 1696 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1692 anexar função( :mongocrypt_setopt_use_need_mongo_collinfo_with_db_state, [ :pointer ], :void ) |
.mongocrypt_status(crypt, status) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina as informações de status do objeto mongocrypt_t no objeto mongocrypt_status_t .
419 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 419 anexar função :mongocrypt_status, %i[pointer pointer], :bool |
.mongocrypt_status_code(status) ➤ Inteiro
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retornar o código de erro de status.
241 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 241 anexar função :mongocrypt_status_code, [ :pointer ], :int |
.mongocrypt_status_destroy(status) ➤ nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Destrói a referência ao objeto mongocrypt_status_t.
267 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 267 anexar função :mongocrypt_status_destroy, [ :pointer ], :void |
.mongocrypt_status_message(status, len = nil) ⇒ String
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna a mensagem de status.
251 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 251 anexar função :mongocrypt_status_message, %i[pointer pointer], : string |
.mongocrypt_status_new ➤ FFI::Pointer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Crie um novo objeto mongocrypt_status_t.
207 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 207 anexar função :mongocrypt_status_new, [], :pointer |
.mongocrypt_status_ok(status) ➤ Boolean
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna se o status está correto ou se é um erro.
259 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 259 anexar função :mongocrypt_status_ok, [ :pointer ], :bool |
.mongocrypt_status_set(status, tipo, código, mensagem, lent) ➤ nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina uma mensagem, digite e código em um status existente.
221 222 223 224 225 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 221 anexar função( :mongocrypt_status_set, %i[pointer status_type int string int], :void ) |
.mongocrypt_status_type(status) ⇒ Symbol
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Indica o tipo de status.
233 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 233 anexar função :mongocrypt_status_type, [ :pointer ], :status_type |
.mongocrypt_version(ten) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna a string de versão da biblioteca libmongocrypt.
93 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 93 anexar função :mongocrypt_version, [ :pointer ], : string |
.ongocrypt_new ➤ FFI::Pointer
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Cria um novo objeto mongocrypt_t.
301 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 301 anexar função :mongocrypt_new, [], :pointer |
.parse_version(version) ⇒ Gem::Version
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Fornece uma string que representa um número de versão, analisa-a em um objeto Gem::Version . Isso lida com o caso em que a string não está em um formato suportado pelo Gem::Version fazendo uma análise personalizada.
106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 106 def auto.parse_version(Versão) Gem::Versão.Novo(Versão) salvar ArgumentError corresponder = Versão.corresponder(/\A(?<major>\d+)\.(?<minor>\d+)\.(?<patch>\d+)?(?:-[A-Za-z+\d]+)?\z/) aumentar ArgumentError.Novo(" string número de versão malformada #{version}") se corresponder.nada? Gem::Versão.Novo( [ corresponder[:major], corresponder[:minor], corresponder[:patch] ].juntar('.') ) end |
.setopt_aes_256_ctr(handle, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina um hook criptográfico para as operações AES256-CTR.
1511 1512 1513 1514 1515 1516 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1511 def auto.setopt_aes_256_ctr(lidar, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb) check_status(lidar) fazer mongocrypt_setopt_aes_256_ctr(lidar.ref, aes_ctr_encrypt_cb, aes_ctr_decrypt_cb, nada) end end |
.setopt_append_crypt_shared_lib_search_path(handle, caminho) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Anexe um diretório de pesquisa adicional ao caminho de pesquisa para carregar a biblioteca dinâmica crypt_shared.
1544 1545 1546 1547 1548 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1544 def auto.setopt_append_crypt_shared_lib_search_path(lidar, caminho) check_status(lidar) fazer mongocrypt_setopt_append_crypt_shared_lib_search_path(lidar.ref, caminho) end end |
.setopt_bypass_query_analysis(handle) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Opte por ignorar a análise de query.
Se ativado:
- A biblioteca compartilhada csfle não tentará ser carregada.
- Um mongocrypt_ctx_t nunca entrará no estado MONGOCRYPT_CTX_NEED_Markings.
1478 1479 1480 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1478 def auto.setopt_bypass_query_analysis(lidar) mongocrypt_setopt_bypass_query_analysis(lidar.ref) end |
.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5(handle, rsaes_pkcs_signature_cb) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina um hook cripto para o algoritmo RASSA-PKCS1-v1_5 com um hash SHA-256 oh the Handle.
1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1403 def auto.setopt_crypto_hook_sign_rsaes_pkcs1_v1_5( lidar, rsaes_pkcs_signature_cb ) check_status(lidar) fazer mongocrypt_setopt_crypto_hook_sign_rsaes_pkcs1_v1_5( lidar.ref, rsaes_pkcs_signature_cb, nada ) end end |
.setopt_crypto_hooks(handle, aes_encrypt_cb, aes_decrypt_cb, random_cb, hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Definir retornos de chamada de criptografia no identificador
1367 1368 1369 1370 1371 1372 1373 1374 1375 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1367 def auto.setopt_crypto_hooks(lidar, aes_encrypt_cb, aes_decrypt_cb, random_cb, hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb) check_status(lidar) fazer mongocrypt_setopt_crypto_hooks(lidar.ref, aes_encrypt_cb, aes_decrypt_cb, random_cb, hmac_sha_512_cb, hmac_sha_256_cb, hmac_hash_cb, nada) end end |
.setopt_enable_multiple_collinfo(lidar) ⇒ booleano
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Habilite o suporte para vários esquemas de coleção. Necessário para suportar $lookup.
1678 1679 1680 1681 1682 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1678 def auto.setopt_enable_multiple_collinfo(lidar) check_status(lidar) fazer mongocrypt_setopt_enable_multiple_collinfo(lidar.ref) end end |
.setopt_encrypted_field_config_map(handle, efc_map) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina um EncryptedFieldConfigMap local para criptografia.
1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1446 def auto.setopt_encrypted_field_config_map(lidar, efc_map) validate_document(efc_map) de dados = efc_map.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_status(lidar) fazer mongocrypt_setopt_encrypted_field_config_map( lidar.ref, data_p ) end end end |
.setopt_kms_providers(handle, kms_providers) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Definir as opções do provedor KMS no objeto Mongo::Crypt::Handle
355 356 357 358 359 360 361 362 363 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 355 def auto.setopt_kms_providers(lidar, kms_providers) validate_document(kms_providers) de dados = kms_providers.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_status(lidar) fazer mongocrypt_setopt_kms_providers(lidar.ref, data_p) end end end |
.setopt_log_handler(handle, log_callback) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Definir a função de chamada de resposta de chamada do registrador no objeto Mongo::Crypt::Handle
325 326 327 328 329 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 325 def auto.setopt_log_handler(lidar, log_callback) check_status(lidar) fazer mongocrypt_setopt_log_handler(lidar, log_callback, nada) end end |
.setopt_schema_map(handle, schema_map_doc) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Definir mapa de esquema no objeto Mongo::Crypt::Handle
382 383 384 385 386 387 388 389 390 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 382 def auto.setopt_schema_map(lidar, schema_map_doc) validate_document(schema_map_doc) de dados = schema_map_doc.to_bson.to_s Binário.wrap_string(de dados) fazer |data_p| check_status(lidar) fazer mongocrypt_setopt_schema_map(lidar.ref, data_p) end end end |
.setopt_set_crypt_shared_lib_path_override(handle, caminho) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Defina um único caminho de substituição para carregar a biblioteca compartilhada de criptografia.
1572 1573 1574 1575 1576 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1572 def auto.setopt_set_crypt_shared_lib_path_override(lidar, caminho) check_status(lidar) fazer mongocrypt_setopt_set_crypt_shared_lib_path_override(lidar.ref, caminho) end end |
.setopt_use_need_kms_credentials_state(handle) ➤ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Opte por lidar com o estado MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS.
Se definido, antes de entrar no estado MONGOCRYPT_CTX_NEED_KMS, os contextos podem entrar no estado MONGCRYPT_CTX_NEED_KMS_CREDENTIALS e então aguardar que as credenciais sejam fornecidas por meio de mongocrypt_ctx_provide_kms_providers.
Um contexto só entrará em MONGOCRYPT_CTX_NEED_KMS_CREDENTIALS se um documento vazio tiver sido definido para um provedor de KMS no mongocrypt_setopt_kms_providers.
1656 1657 1658 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1656 def auto.setopt_use_need_kms_credentials_state(lidar) mongocrypt_setopt_use_need_kms_credentials_state(lidar.ref) end |
.setopt_use_need_mongo_collinfo_with_db_state(lidar) ⇒ objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Opte por lidar com o estado MONGOCRYPT_CTX_NEED_MONGO_COLLINFO_WITH_DB.
1701 1702 1703 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1701 def auto.setopt_use_need_mongo_collinfo_with_db_state(lidar) mongocrypt_setopt_use_need_mongo_collinfo_with_db_state(lidar.ref) end |
.validate_document(data) ⇒ Object
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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
1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1916 def auto.validate_document(de dados) Método se de dados.is_a?(Hash) = se de dados.nada? 'Tentativa de passar dados nulos para libmongocrypt. ' + ' Osdados devem ser um Hash ' mais "Tentativa de passar dados inválidos para libmongocrypt: #{data} " + ' Osdados devem ser um Hash ' end aumentar Erro::Criptografia de erro.Novo() 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.
129 130 131 132 133 134 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 129 def auto.validate_version(lmc_version) se (real_version = parse_version(lmc_version)) < MIN_LIBMOCRYPT_VERSION aumentar LoadError, "libmongocrypt version #{MIN_LIBMOCRYPT_VERSION} ou superior é necessário, " + "mas a versão #{real_version} foi encontrada." end end |
Detalhes do método de instância
#mongocrypt_crypto_fn(ctx, key, iv, input, output, status) ⇒ Bool
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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.
1259 1260 1261 1262 1263 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1259 chamada de resposta( :mongocrypt_crypto_fn, %i[pointer pointer pointer pointer pointer pointer pointer], :bool ) |
#mongocrypt_hash_fn(ctx, entrada, saída, status) ➤ Bool
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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 .
1307 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1307 chamada de resposta :mongocrypt_hash_fn, %i[pointer pointer pointer pointer], :bool |
#mongocrypt_hmac_fn(ctx, key, entrada, saída, status) ➤ Bool
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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.
1284 1285 1286 1287 1288 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1284 chamada de resposta( :mongocrypt_hmac_fn, %i[pointer pointer pointer pointer pointer], :bool ) |
#mongocrypt_log_fn_t(nível, mensagem, lent, ctx) ➤ nil
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Isto define uma assinatura de método para uma chamada de resposta de resposta FFI ; não é um método de instância na classe Binding.
Um chamada de resposta para a função de log do mongocrypt. Defina um chamada de resposta de log personalizado com o método mongocrypt_setopt_log_handler
294 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 294 chamada de resposta :mongocrypt_log_fn_t, %i[log_level string int pointer], :void |
#mongocrypt_random_fn(ctx, saída, contagem, status) ➤ Bool
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
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.
1325 |
# Arquivo 'lib/mongo/crypt/binding.rb', linha 1325 chamada de resposta :mongocrypt_random_fn, %i[pointer pointer int pointer], :bool |