クラス: Mongo::Crypt::Handle Private

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
lib/mongo/crypt/handle.rb

Overview

このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。

mongocrypt_t オブジェクトをラップする libmongocrypt ライブラリへのハンドル。クライアントはそのオブジェクトにオプションを設定したり、暗号化と復号化などの操作を実行したりできます。

インスタンス属性の概要を折りたたむ

インスタンス メソッドの概要を折りたたむ

コンストラクターの詳細

#initialize(kms_providers, kms_tls_options, options = {}) ⇒ Handle

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

新しいハンドル オブジェクトを作成し、オプションで初期化します

パラメーター:

  • kms_providers Crypt::KMS::Credentials

    KMS プロバイダーの認証情報。

  • kms_tls_options ハッシュ

    KMS プロバイダーに接続するための TLS オプション。 ハッシュのキーは、K SM プロバイダー名である必要があります。値は、TLS 接続オプションのハッシュである必要があります。 オプションは、Mongo::Client の TLS 接続オプションと同じです。

  • options ハッシュ (デフォルトは{}です)

    オプションのハッシュ。

オプション ハッシュ( options ):

  • :schema_map ハッシュ | nil

    自動暗号化ドキュメントを保存するコレクションのJSON schemaを表すハッシュ。 このオプションは :schema_map_path と相互に排他的です。

  • :schema_map_path string | nil

    ファイルへのパスには、自動暗号化ドキュメントを保存するコレクションのJSON schemaが含まれます。 このオプションは :schema_map と相互に排他的です。

  • :encrypted_fields_map ハッシュ | nil

    は、コレクション名前空間を暗号化されたフィールドにマッピングします。

    • 注: コレクションが encryptedFieldsMap と schemaMap の両方に存在する場合、エラーが発生します。
  • :bypass_query_analysis (Boolean | nil)

    true の場合、送信コマンドの自動分析が無効になります。

  • :crypt_shared_lib_path string | nil

    暗号化共有ライブラリをロードするために使用されるパス。 このオプションを指定すると、libmongocrypt のデフォルトの暗号化共有ライブラリのロード パスが上書きされます。

  • :crypt_shared_lib_required (Boolean | nil)

    crypt_shared ライブラリが必要かどうか。「true」の場合、libmongocrypt によって crypt_shared ライブラリをロードできない場合は、エラーが発生します。

  • :explit_encryption_only (Boolean | nil)

    この処理を明示的な暗号化にのみ使用するかどうか。 true の場合、libmongocrypt は暗号化共有ライブラリをロードしないように指示されます。

  • :disable_crypt_shared_lib_search (Boolean | nil)

    true の場合、crypt_shared の自動 "$SYSTEM" 検索を抑制します。これは、同じプロセス内の前の ハンドルがすでにパス オーバーライドを介してライブラリをロードしていて、libmongocrypt が後続の "$SYSTEM" 検索で発生する競合ロード エラーを回避したい場合に使用します。

  • :logger ロガー

    mongocrypt ログが送信される Logger オブジェクト

次の値が発生します。



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
# ファイル 'lib/mongo/crypt/handle.rb', 行 69

デフォルト 初期化(kms_providers, kms_tls_options, options = {})
  #FFI::AutoPointer はカスタム リリース戦略を使用して自動的に解放
  このオブジェクトがスコープを超えるとポインターは 表示されます
  @mongocrypt = FFI::AutoPointer.新着情報(
    バインディング.mongocrypt_new,
    バインディング.メソッド(:mongocrypt_detry)
  )
  バインディング.kms_ctx_setopt_retry_kms(自己, true)
  @ kms_providers = kms_providers
  @ kms_tls_options = kms_tls_options

  Max_set_schema_map(options)

  @encrypted_fields_map = options[:encrypted_fields_map]
  set_encrypted_fields_map 場合 @encrypted_fields_map

  @bypass_query_analysis = options[:bypass_query_analysis]
  set_bypass_query_analysis 場合 @bypass_query_analysis

  @crypt_shared_lib_path = options[:crypt_shared_lib_path]
  @explit_encryption_only = options[:explit_encryption_only]
  @disable_crypt_shared_lib_search = options[:disable_crypt_shared_lib_search]
  場合 @crypt_shared_lib_path
    バインディング.setopt_set_crypt_shared_lib_path_override(自己, @crypt_shared_lib_path)
  elsif !@bypass_query_analysis & & !@explit_encryption_only & & !@disable_crypt_shared_lib_search
    バインディング.setopt_append_crypt_shared_lib_search_path(自己, '$SYSTEM')
  end

  @logger = options[:logger]
  set_logger_callback 場合 @logger

  set_crypto_hooks

  バインディング.setopt_ kms_providers(自己, @ kms_providers.to_document)

  場合 @ kms_providers.Amazon Web Services&.空の場合 || @ kms_providers.gcp&.空の場合 || @ kms_providers.Azure&.空の場合
    バインディング.setopt_use_need_ kms_credentials_rate(自己)
  end

  initialize_mongocrypt

  @crypt_shared_lib_required = !!options[:crypt_shared_lib_required]
  return ただし、 @crypt_shared_lib_required & & crypt_shared_lib_version == 0

  発生 mongo::エラー::CryptError.新着情報(
    ' 暗号化共有ライブラリは必要ですが、 libmongocrypt に従ってロードできません '
  )
end

インスタンス属性の詳細

# kms_providers = Ccrypt::KMS::認証情報 (読み取り専用)

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

KMS プロバイダーの認証情報を返します。

次の値を返します。



29
30
31
# ファイル 'lib/mongo/crypt/handle.rb', 行 29

デフォルト kms_providers
  @ kms_providers
end

インスタンス メソッドの詳細

#crypt_shared_lib_available? =ブール値

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

次の値を返します。

  • ブール値


139
140
141
# ファイル 'lib/mongo/crypt/handle.rb', 行 139

デフォルト crypt_shared_lib_available?
  crypt_shared_lib_version != 0
end

#crypt_shared_lib_version =オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。



135
136
137
# ファイル 'lib/mongo/crypt/handle.rb', 行 135

デフォルト crypt_shared_lib_version
  バインディング.crypt_shared_lib_version(自己)
end

# kms_tls_options (プロバイダー) =ハッシュ

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

KMS プロバイダーの TLS オプションを返します。 TLS オプションが設定されていない場合は、空のハッシュが返されます。

パラメーター:

  • プロバイダー ( string )

    KVM プロバイダー名。

次の値を返します。

  • ハッシュ

    KMS プロバイダーに接続するための TLS オプション。



131
132
133
# ファイル 'lib/mongo/crypt/handle.rb', 行 131

デフォルト kms_tls_options(プロバイダー)
  @ kms_tls_options.fetch(プロバイダー, {})
end

参照: FFI::Pointer

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

基礎となる @mongocrypt オブジェクトへの参照を返します

次の値を返します。

  • FFI::Pointer


121
122
123
# ファイル 'lib/mongo/crypt/handle.rb', 行 121

デフォルト 参照
  @mongocrypt
end