クラス: Mongo::Crypt::Context Private
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
暗号化と復号化のステート マシンを管理する mongocrypt_ctx_t を囲むラッパー。
このクラスは、さまざまな目的で初期化されるコンテキスト間での共有メソッドを定義するスーパークラス(例: データキーの作成、暗号化、明示的な暗号化など)
既知のサブクラスを直接確認
AutoDecryptionContext 、 AutoEncryptionContext 、 DataKeyContext 、明示的DecryptionContext 、明示的暗号化コンテキスト 、 RewriteManyDataKeyContext
インスタンス属性の概要を折りたたむ
- #ctx_p =オブジェクト readOnly private
インスタンス メソッドの概要を折りたたむ
-
# initialize (mongocrypt_handle, io) = コンテキスト
コンストラクター
private
新しいコンテキスト オブジェクトを作成します。
-
# run_rate_度マシン(timeout_handler)= BSON::Document
private
mongocrypt_ctx_t ステート マシンを実行し、 に代わってすべての I/O を処理します。
-
#状態~ 記号
private
mongocrypt_ctx_t の状態を返します。
コンストラクターの詳細
# initialize (mongocrypt_handle, io) =コンテキスト
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
新しいコンテキスト オブジェクトの作成
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# ファイル 'lib/mongo/crypt/context.rb' 行 41 デフォルト 初期化(mongocrypt_handle, io) @mongocrypt_handle = mongocrypt_handle 理想的には、このレベルの API はポインターを渡しません はオブジェクト間の # 参照であるため、このメソッド署名は変更される可能性があります。 #FFI::AutoPointer はカスタム リリース戦略を使用して自動的に解放 このオブジェクトがスコープを超えるとポインターは 表示されます @ctx_p = FFI::AutoPointer.新着情報( バインディング.mongocrypt_ctx_new(@mongocrypt_handle.参照), バインディング.メソッド(:mongocrypt_ctx_detry) ) @encryption_io = io @cached_azure_token = nil end |
インスタンス属性の詳細
#ctx_p =オブジェクト(読み取り専用)
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
56 57 58 |
# ファイル 'lib/mongo/crypt/context.rb' 行 56 デフォルト ctx_p @ctx_p end |
インスタンス メソッドの詳細
# run_rate_度マシン(timeout_handler)= BSON::Document
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
mongocrypt_ctx_t ステート マシンを実行し、次の代わりにすべての I/O を処理します
このメソッドは現在ユニットテストされていません。 仕様/統合/明示的_encryption_spec.rb で統合がテストされています
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 |
# ファイル 'lib/mongo/crypt/context.rb' 行 80 デフォルト run_ State_ Machine(timeout_holder) 一方 true timeout_ms = timeout_holder.retention_timeout_ms。 ケース 状態 次の場合: :error バインディング.checkpoint_ctx_status(自己) 次の場合: :ready # ステートマシンを確定し、その結果を BSON::Document として返す return バインディング.cx_ finalize(自己) 次の場合: :done return nil 次の場合: :need_mongo_keys provider_keys(timeout_ms) 次の場合: :need_mongo_collinfo provider_collection_info(timeout_ms) 次の場合: :need_mongo_markings provider_markings(timeout_ms) 次の場合: :need_ kms feature_ kms 次の場合: :need_ kms_credentials バインディング.cx_provide_ kms_providers( 自己, retrieve_kms_credentials(timeout_holder).to_document ) else 発生 エラー::CryptError.新着情報( "状態#{状態}は Mongo::Crypt ::Context ではサポートされていません" ) end end end |
#状態~記号
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
mongocrypt_ctx_t の状態を返します
61 62 63 |
# ファイル 'lib/mongo/crypt/context.rb' 行 61 デフォルト 状態 バインディング.mongocrypt_ctx_ State(@ctx_p) end |