类:Mongo::Crypt::ExplicitEncryptionContext Private

继承:
上下文
  • 对象
显示全部
定义于:
lib/ Mongo/crypt/explicit_encryption_context.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

为显式加密初始化的 Context 对象

实例属性摘要

从Context继承的属性

#ctx_p

实例方法摘要折叠

从Context继承的方法

#bson_mode, #run_state_machine, #state

构造函数详情

#initialize (mongocrypt, io, doc, options = {}) ⇒ ExplicitEncryptionContext

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

注意:

范围算法仅处于实验阶段。 它不适用于

注意:

“substring”(子字符串)查询类型不稳定,会受到向后

创建新的 ExplicitEncryptionContext对象

公共使用。重大更改。

参数:

  • mongocrypt ( Mongo::Crypt::Handle ) —

    包装 mongocrypt_t 对象的句柄,用于创建新的 mongocrypt_ctx_t

  • io (ClientEncryption::IO) —

    IO 类的实例,用于实现运行状态机所需的驱动程序 I/O 方法

  • doc ( BSON::Document ) —

    要加密的文档

  • 选项 (哈希) (默认为: {} )

选项哈希 ( options ):

  • :key_id ( BSON::Binary ) —

    :uuid 类型的 BSON::Binary 对象,表示用于加密的数据密钥的 UUID。

  • :key_alt_name ( string ) —

    将用于加密该值的数据密钥的备用名称。

  • :algorithm ( string ) —

    用于加密值的算法。有效算法为 "AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic"、"AEAD_AES_256_CBC_HMAC_SHA_512-Random"、"Indexed"、"Unindexed"、"Range"、"String" 。

  • :contention_factor ( Integer | nil ) —

    如果加密算法设立为“Indexed”(索引)、“Range”(范围)或“String”(字符串),则要应用的争用因子。如果未提供,则默认值为 0。仅当加密算法设立为“Indexed”(索引)、“Range”(范围)或“String”(字符串)时,才应设立争用因子。

  • query_type ( string | nil ) —

    如果加密算法设立为“Indexed”(索引)、“Range”(范围)或“String”(字符串),则要应用的查询类型。允许的值为“equality”、“range”、“prefix”、“suffix”和“substring”。

  • :range_opts (哈希 | nil ) —

    为支持“ 范围 ”查询的Queryable Encryption字段指定索引选项。允许的选项包括:

    • :min
    • :max
    • :trim_factor
    • :sparsity
    • :精度 min、max、trim_factor、稀疏性和精度必须与目标集合的encryptedFields中设立的值相匹配。对于 double 和十进制128,最小/最大/精度必须全部设立,或者全部取消设置。
  • :string_opts (哈希 | nil ) —

    指定支持“前缀”、“后缀”或“子字符串”索引的 Queryable Encryption字段的索引选项。查询(算法“String”)。允许的选项包括:

    • :case_sensitive
    • :diacritic_sensitive
    • :prefix(带有 :str_min_query_length、:str_max_query_length 的哈希)
    • :suffix(带有 :str_min_query_length、:str_max_query_length 的哈希)
    • :substring (Hash with :str_max_length, :str_min_query_length, :str_max_query_length) 选项必须与目标集合的encryptedFields中设立的值相匹配。

引发:



79
80
81
82
83
84
# File 'lib/ Mongo/crypt/explicit_encryption_context.rb', line 79

def 初始化(mongocrypt, io, doc, 选项 = {})
  超(mongocrypt, io)
  set_key_opts(选项)
  set_algorithm_opts(选项)
  init(doc)
end

实例方法详细信息

# init (doc) ⇒对象

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



86
87
88
# File 'lib/ Mongo/crypt/explicit_encryption_context.rb', line 86

def init(doc)
  绑定.ctx_explicit_encrypt_init(self, doc)
end