클래스: Mongo::Crypt::ExplicitEncrypter Private
- 상속:
-
객체
- 객체
- Mongo::Crypt::ExplicitEncrypter
- 확장자:
- 전달 가능
- 다음에 정의됨:
- lib/ Mongo/crypt/explicit_encrypter.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
ExplicitEncrypter는 명시적 암호화 작업을 수행하고 모든 관련 옵션 및 인스턴스 변수를 처리하는 객체입니다.
인스턴스 메서드 요약 접기
-
#add_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
비공개
지정된 ID를 가진 키 볼트 컬렉션의 키에 대한 key_alt_name을 추가합니다.
-
#create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) ⇒ BSON::Binary
비공개
암호화/복호화에 사용되는 데이터 키를 생성하고 해당 키를 KMS 컬렉션에 저장합니다.
-
#Decrypt(value) ⇒ 객체
비공개
이미 암호화된 값을 해독합니다.
-
#delete_key(ID) ⇒ Operation::Result
비공개
키 볼트 컬렉션 에서 지정된 ID의 키를 제거합니다.
-
#암호화(값, 옵션) ⇒ BSON::Binary
비공개
지정된 암호화 키와 알고리즘을 사용하여 값을 암호화합니다.
-
# 암호화 표현식 (표현식, 옵션) ⇒BSON::Binary
비공개
범위 인덱스를 쿼리하기 위해 일치 표현식 또는 애그리게이션 표현식을 암호화합니다.
-
#get_key(id) ⇒ BSON::Document | nil
비공개
지정된 ID를 가진 단일 키를 찾습니다.
-
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
비공개
지정된 key_alt_name을 가진 키 볼트 컬렉션 의 키를 반환합니다.
-
#get_keys ⇒ Collection::View
비공개
키 볼트 컬렉션 의 모든 키를 반환합니다.
-
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options, timeout_ms = nil) ⇒ ExplicitEncrypter
생성자
비공개
새 ExplicitEncrypter 객체를 만듭니다.
-
#remove_key_alt_name(id, key_alt_name) ⇒ BSON::Document | nil
비공개
지정된 ID를 가진 키 볼트 컬렉션 의 키에서 key_alt_name을 제거합니다.
-
#rewrap_many_data_key(filter, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
비공개
여러 데이터 키를 해독하고 새 마스터 키로 데이터 키를 (재)암호화하거나, 새 키가 제공되지 않은 경우 현재 마스터 키로 암호화합니다.
생성자 세부 정보
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options, timeout_ms = nil) ⇒ ExplicitEncrypter
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 ExplicitEncrypter 객체를 만듭니다.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 40 def 초기화(key_Vault_client, key_Vault_namespace, kms_providers, , timeout_ms = nil) 암호화.validate_ffi! @crypt_handle = 핸들.신규( kms_providers, , 명시적_암호화_전용: true ) @encryption_io = EncryptionIO.신규( key_vault_client: key_Vault_client, metadata_client: nil, key_vault_namespace: key_Vault_namespace ) @timeout_ms = timeout_ms end |
인스턴스 메서드 세부 정보
#add_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 ID를 가진 키 볼트 컬렉션의 키에 대한 key_alt_name을 추가합니다.
203 204 205 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 203 def add_key_alt_name(id, key_alt_name) @encryption_io.add_key_alt_name(id, key_alt_name, timeout_ms: @timeout_ms) end |
#create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) ⇒ BSON::Binary
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
암호화/복호화에 사용되는 데이터 키를 생성하고 해당 키를 KMS 컬렉션에 저장합니다. 생성된 키는 KMS 마스터 키로 암호화됩니다.
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 70 def create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) data_key_document = 암호화::DataKeyContext.신규( @crypt_handle, @encryption_io, master_key_document, key_alt_names, key_material ).run_state_ machine(timeout_holder) @encryption_io.insert_data_key( data_key_document, timeout_ms: timeout_holder.잔여 시간 초과_ms! ).insert_id end |
#Decrypt(value) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이미 암호화된 값을 해독합니다.
188 189 190 191 192 193 194 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 188 def 암호 해독(value) 암호화::명시적 암호 해독 컨텍스트.신규( @crypt_handle, @encryption_io, { v: value } ).run_state_ machine(timeout_holder)['v'] end |
#delete_key(ID) ⇒ Operation::Result
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
키 볼트 컬렉션 에서 지정된 ID의 키를 제거합니다.
213 214 215 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 213 def delete_key(id) @encryption_io.delete_key(id, timeout_ms: @timeout_ms) end |
#암호화(값, 옵션) ⇒ BSON::Binary
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
지정된 암호화 키 및 알고리즘을 사용하여 값을 암호화합니다.
암호화 알고리즘 이 '인덱싱됨'으로 설정하다 경우. 쿼리 유형을 설정하다 해야 합니다.
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
113 114 115 116 117 118 119 120 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 113 def 암호화(value, ) 암호화::명시적 암호화 컨텍스트.신규( @crypt_handle, @encryption_io, { v: value }, ).run_state_ machine(timeout_holder)['v'] end |
# 암호화 표현식 (표현식, 옵션) ⇒BSON :: Binary
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
범위 알고리즘 실험용으로만 제공됩니다. 그렇지 않습니다.
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
범위 인덱스를 쿼리하기 위해 일치 표현식 또는 애그리게이션 표현식을 암호화합니다.
queryType이 ' 범위'이고 알고리즘 'Range'인 경우에만 지원됩니다. @note: 범위 알고리즘 은 실험적일 뿐입니다. 의도된 것이 아닙니다.
for public use. It is subject to breaking changes.
# @param [ 해시 ] 옵션은 공개적으로 사용합니다.
173 174 175 176 177 178 179 180 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 173 def 암호화 표현식(표현식, ) 암호화::명시적 암호화 표현식 컨텍스트.신규( @crypt_handle, @encryption_io, { v: 표현식 }, ).run_state_ machine(timeout_holder)['v'] end |
#get_key(id) ⇒ BSON::Document | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 ID를 가진 단일 키를 찾습니다.
223 224 225 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 223 def get_key(id) @encryption_io.get_key(id, timeout_ms: @timeout_ms) end |
#get_key_by_alt_name(key_alt_name) ⇒ BSON::Document | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 key_alt_name을 가진 키 볼트 컬렉션 의 키를 반환합니다.
233 234 235 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 233 def get_key_by_alt_name(key_alt_name) @encryption_io.get_key_by_alt_name(key_alt_name, timeout_ms: @timeout_ms) end |
#get_keys ⇒ Collection::View
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
키 볼트 컬렉션 의 모든 키를 반환합니다.
Rubocop:disable Naming/AccessorMethodName 이 메서드의 이름은 FLE 사양에 정의되어 있습니다.
242 243 244 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 242 def get_keys @encryption_io.get_keys(timeout_ms: @timeout_ms) end |
#remove_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 ID를 가진 키 볼트 컬렉션 의 키에서 key_alt_name을 제거합니다.
254 255 256 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 254 def remove_key_alt_name(id, key_alt_name) @encryption_io.remove_key_alt_name(id, key_alt_name, timeout_ms: @timeout_ms) end |
#rewrap_many_data_key(필터하다, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
여러 데이터 키를 해독하고 새 master_key로 (재)암호화합니다.
or with their current master_key if a new one is not given.
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 269 def rerap_many_data_key(필터, opts = {}) (opts) master_key_document = master_key_for_provider(opts) rerap_result = 암호화::RewrapManyDataKeyContext.신규( @crypt_handle, @encryption_io, 필터, master_key_document ).run_state_ machine(timeout_holder) 반환 RewrapManyDataKeyResult.신규(nil) 만약 rerap_result.nil? 업데이트 = update_from_data_key_documents(rerap_result.가져오기('v')) RewrapManyDataKeyResult.신규( @encryption_io.update_data_keys(업데이트, timeout_ms: @timeout_ms) ) end |