类:Mongo::Crypt::Handle Private
- 继承:
-
对象
- 对象
- Mongo::Crypt::Handle
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/crypt/handle.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
包装 mongocrypt_t对象的 libmongocrypt 库的处理,允许客户端在该对象上设立选项或执行加密和解密等操作
实例属性摘要折叠
- # kms_providers ⇒ 对象 只读 private
实例方法摘要折叠
- # crypt_shared_lib_available? ⇒ 布尔 private
- # crypt_shared_lib_version ⇒ 对象 private
-
#initialize(kms_providers, kms_tls_options, options = {}) ⇒ Handle
构造函数
private
创建新的句柄对象并使用选项对其进行初始化。
-
# kms_tls_options (provider) ⇒ 哈希
private
返回KMS提供商的 TLS 选项。
-
# ref ⇒ FFI::Pointer
private
返回对根本的@mongocrypt对象的引用。
构造函数详情
#initialize(kms_providers, kms_tls_options, options = {}) ⇒ Handle
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
创建新的句柄对象并使用选项对其进行初始化
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ 处理.rb', 第67行 def 初始化(kms_providers, , ={}) # FFI::AutoPointer 使用自定义发布策略来自动释放 # 当此对象超出作用域时的指针 @mongocrypt = FFI::AutoPointer.new( 绑定.mongocrypt_new, 绑定.方法(:mongocrypt_destroy) ) @kms_providers = kms_providers @kms_tls_options = 也许_set_schema_map() @encrypted_fields_map = [:encrypted_fields_map] set_encrypted_fields_map if @encrypted_fields_map @bypass_query_analysis = [:bypass_query_analysis] set_bypass_query_analysis if @bypass_query_analysis @crypt_shared_lib_path = [:crypt_shared_lib_path] @explicit_encryption_only = [:explicit_encryption_only] if @crypt_shared_lib_path 绑定.setopt_set_crypt_shared_lib_path_override(self, @crypt_shared_lib_path) elsif !@bypass_query_analysis && !@explicit_encryption_only 绑定.setopt_append_crypt_shared_lib_search_path(self, " $SYSTEM ") end @logger = [:logger] set_logger_callback if @logger set_crypto_hooks 绑定.setopt_kms_providers(self, @kms_providers.to_document) if @kms_providers.AWS&。空? || @kms_providers.GCP&。空? || @kms_providers.AZURE&。空? 绑定.setopt_use_need_kms_credentials_state(self) end initialize_mongocrypt @crypt_shared_lib_required = !![:crypt_shared_lib_required] if @crypt_shared_lib_required && crypt_shared_lib_version == 0 提高 mongo::错误::CryptError.new( " Crypt 共享库是必需的,但根据 libmongocrypt 无法加载" ) end end |
实例属性详细信息
# kms_providers ⇒对象(只读)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
32 33 34 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ 处理.rb', 第32行 def kms_providers @kms_providers end |
实例方法详细信息
# crypt_shared_lib_available? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
136 137 138 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ 处理.rb', 第136行 def crypt_shared_lib_available? crypt_shared_lib_version != 0 end |
# crypt_shared_lib_version ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
132 133 134 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ 处理.rb', 第132行 def crypt_shared_lib_version 绑定.crypt_shared_lib_version(self) end |
# kms_tls_options (提供商) ⇒哈希
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回KMS提供商的 TLS 选项。 如果未设立TLS 选项,则返回空哈希。
128 129 130 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ 处理.rb', 第128行 def (provider) @kms_tls_options.获取(provider, {}) end |
# ref ⇒ FFI::Pointer
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回对根本的@mongocrypt对象的引用
118 119 120 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /crypt/ 处理.rb', 第118行 def ref @mongocrypt end |