クラス: Mongo::Crypt::Context Private
- 継承:
-
オブジェクト
- オブジェクト
- Mongo::Crypt::Context
- 次による拡張機能。
- 転送可能
- 定義:
- build/ruby-Driver-v 2.19 /lib/mongo/crypt/context.rb
Overview
このクラスは、プライベート API の一部です。 このクラスは将来削除または変更される可能性があるため、可能な限り使用しないでください。
暗号化と復号化のステート マシンを管理する mongocrypt_ctx_t を囲むラッパー。
このクラスは、さまざまな目的で初期化されるコンテキスト間での共有メソッドを定義するスーパークラス(例: データキーの作成、暗号化、明示的な暗号化など)
既知のサブクラスを直接確認
AutoDecryptionContext 、 AutoEncryptionContext 、 DataKeyContext 、明示的DecryptionContext 、明示的暗号化コンテキスト 、 RewriteManyDataKeyContext
インスタンス属性の概要を折りたたむ
- #ctx_p =オブジェクト readOnly private
インスタンス メソッドの概要を折りたたむ
-
# initialize (mongocrypt_handle, io) = コンテキスト
コンストラクター
private
新しいコンテキスト オブジェクトを作成します。
-
# run_ State_ Machine = BSON::Document
private
mongocrypt_ctx_t ステート マシンを実行し、libmongocrypt に代わってすべての 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 55 |
# ファイル 'Build/ruby-Driver-v 2.19 /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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
57 58 59 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/context.rb', 行57 デフォルト ctx_p @ctx_p end |
インスタンス メソッドの詳細
# run_ State_ Machine = BSON::Document
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
mongocrypt_ctx_t ステート マシンを実行し、libmongocrypt に代わってすべての I/O を処理します
このメソッドは現在ユニットテストされていません。 仕様/統合/明示的_encryption_spec.rb で統合がテストされています
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 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/context.rb', 行78 デフォルト run_ State_ Machine 一方 true ケース 状態 次の場合: :error バインディング.checkpoint_ctx_status(自己) 次の場合: :ready # ステートマシンを確定し、その結果を BSON::Document として返す return バインディング.cx_ finalize(自己) 次の場合: :done return nil 次の場合: :need_mongo_keys フィルター = バインディング.cx_mongo_op(自己) @encryption_io.find_keys(フィルター).各 行う |キー| mongocrypt_feed(キー) 場合 キー end mongocrypt_done 次の場合: :need_mongo_collinfo フィルター = バインディング.cx_mongo_op(自己) 結果 = @encryption_io.collection_info(@db_name, フィルター) mongocrypt_feed(結果) 場合 結果 mongocrypt_done 次の場合: :need_mongo_markings cmd = バインディング.cx_mongo_op(自己) 結果 = @encryption_io.map_command(cmd) mongocrypt_feed(結果) mongocrypt_done 次の場合: :need_ kms 一方 kms_context = バインディング.ctx_next_kms_ctx(自己) 行う プロバイダー = バインディング.kms_ctx_get_ kms_provider(kms_context) = @mongocrypt_handle.(プロバイダー) @encryption_io.feature_ kms(kms_context, ) end バインディング.ctx_kms_done(自己) 次の場合: :need_ kms_credentials バインディング.cx_provide_ kms_providers( 自己, retrieve_kms_credentials.to_document ) else 発生 エラー::CryptError.新着情報( "状態#{状態}は Mongo::Crypt ::Context ではサポートされていません" ) end end end |
#状態~記号
このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。
mongocrypt_ctx_t の状態を返します
62 63 64 |
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/crypt/context.rb', 行62 デフォルト 状態 バインディング.mongocrypt_ctx_ State(@ctx_p) end |