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

継承:
オブジェクト
  • オブジェクト
すべて表示
定義:
build/ruby-Driver-v 2.19 /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 は暗号化共有ライブラリをロードしないように指示されます。

  • :logger ロガー

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



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
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/handle.rb', 行67

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

  @ 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]
  場合 @crypt_shared_lib_path
    バインディング.setopt_set_crypt_shared_lib_path_override(自己, @crypt_shared_lib_path)
  elsif !@bypass_query_analysis & & !@explit_encryption_only
    バインディング.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]
  場合 @crypt_shared_lib_required & & crypt_shared_lib_version == 0
    発生 mongo::エラー::CryptError.新着情報(
      "暗号化共有ライブラリは必要ですが、 libmongocrypt に従ってロードできません"
    )
  end
end

インスタンス属性の詳細

# kms_providers =オブジェクト(読み取り専用)

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



32
33
34
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/handle.rb', 行32

デフォルト kms_providers
  @ kms_providers
end

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

#crypt_shared_lib_available? =ブール値

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

次の値を返します。

  • ブール値


136
137
138
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/handle.rb', 行136

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

#crypt_shared_lib_version =オブジェクト

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



132
133
134
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/handle.rb', 行132

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

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

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

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

パラメーター:

  • プロバイダー ( string )

    KVM プロバイダー名。

次の値を返します。

  • ハッシュ

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



128
129
130
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/handle.rb', 行128

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

参照: FFI::Pointer

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

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

次の値を返します。

  • FFI::Pointer


118
119
120
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/handle.rb', 行118

デフォルト 参照
  @mongocrypt
end