类:Mongo::Crypt::Handle Private
- 继承:
-
对象
- 对象
- Mongo::Crypt::Handle
- 定义于:
- lib/ Mongo/crypt/ 处理.rb
Overview
此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。
包装 mongocrypt_t对象的 libmongocrypt 库的处理,允许客户端在该对象上设立选项或执行加密和解密等操作
实例属性摘要折叠
-
#kms_providers ⇒ Crypt::KMS::凭证
只读
private
KMS提供商的档案。
实例方法摘要折叠
- # 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 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
创建新的句柄对象并使用选项对其进行初始化
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 114 115 116 |
# File 'lib/ Mongo/crypt/ 处理.rb', line 69 def 初始化(kms_providers, , = {}) # FFI::AutoPointer 使用自定义发布策略来自动释放 # 当此对象超出作用域时的指针 @mongocrypt = FFI::AutoPointer.new( 绑定.mongocrypt_new, 绑定.方法(:mongocrypt_destroy) ) 绑定.kms_ctx_setopt_retry_kms(self, true) @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] @disable_crypt_shared_lib_search = [:disable_crypt_shared_lib_search] if @crypt_shared_lib_path 绑定.setopt_set_crypt_shared_lib_path_override(self, @crypt_shared_lib_path) elsif !@bypass_query_analysis && !@explicit_encryption_only && !@disable_crypt_shared_lib_search 绑定.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] return 除非 @crypt_shared_lib_required && crypt_shared_lib_version == 0 提高 mongo::错误::CryptError.new( ' 需要 Crypt 共享库,但根据 libmongocrypt 无法加载 ' ) end |
实例属性详细信息
#kms_providers ⇒ Crypt::KMS::Credentials (readonly)
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回KMS提供商的凭证。
29 30 31 |
# File 'lib/ Mongo/crypt/ 处理.rb', line 29 def kms_providers @kms_providers end |
实例方法详细信息
# crypt_shared_lib_available? ⇒布尔
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
139 140 141 |
# File 'lib/ Mongo/crypt/ 处理.rb', line 139 def crypt_shared_lib_available? crypt_shared_lib_version != 0 end |
# crypt_shared_lib_version ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
135 136 137 |
# File 'lib/ Mongo/crypt/ 处理.rb', line 135 def crypt_shared_lib_version 绑定.crypt_shared_lib_version(self) end |
# kms_tls_options (提供商) ⇒哈希
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回KMS提供商的 TLS 选项。 如果未设立TLS 选项,则返回空哈希。
131 132 133 |
# File 'lib/ Mongo/crypt/ 处理.rb', line 131 def (provider) @kms_tls_options.获取(provider, {}) end |
# ref ⇒ FFI::Pointer
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
返回对根本的@mongocrypt对象的引用
121 122 123 |
# File 'lib/ Mongo/crypt/ 处理.rb', line 121 def ref @mongocrypt end |