클래스: 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, key_expiration_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, key_expiration_ms = nil) ⇒ ExplicitEncrypter
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 ExplicitEncrypter 객체를 만듭니다.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 43 def 초기화( key_Vault_client, key_Vault_namespace, kms_providers, , timeout_ms = nil, key_expiration_ms = nil ) 암호화.validate_ffi! @crypt_handle = 핸들.신규( kms_providers, , 명시적_암호화_전용: true, key_expiration_ms: key_expiration_ms ) @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을 추가합니다.
218 219 220 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 218 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 마스터 키로 암호화됩니다.
77 78 79 80 81 82 83 84 85 86 87 88 89 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 77 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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이미 암호화된 값을 해독합니다.
203 204 205 206 207 208 209 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 203 def 암호 해독(value) 암호화::명시적 암호 해독 컨텍스트.신규( @crypt_handle, @encryption_io, { v: value } ).run_state_ machine(timeout_holder)['v'] end |
#delete_key(ID) ⇒ Operation::Result
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
키 볼트 컬렉션 에서 지정된 ID의 키를 제거합니다.
228 229 230 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 228 def delete_key(id) @encryption_io.delete_key(id, timeout_ms: @timeout_ms) end |
#암호화(값, 옵션) ⇒ BSON::Binary
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
지정된 암호화 키 및 알고리즘을 사용하여 값을 암호화합니다.
128 129 130 131 132 133 134 135 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 128 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: 범위 알고리즘 은 실험적일 뿐입니다. 공개적으로 사용할 수 없습니다. 호환성이 손상되는 변경이 발생할 수 있습니다.
@param [ 해시 ] 옵션
공개적으로 사용하기 위한 것입니다.
188 189 190 191 192 193 194 195 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 188 def 암호화 표현식(표현식, ) 암호화::명시적 암호화 표현식 컨텍스트.신규( @crypt_handle, @encryption_io, { v: 표현식 }, ).run_state_ machine(timeout_holder)['v'] end |
#get_key(id) ⇒ BSON::Document | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 ID를 가진 단일 키를 찾습니다.
238 239 240 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 238 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을 가진 키 볼트 컬렉션 의 키를 반환합니다.
248 249 250 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 248 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 사양에 정의되어 있습니다.
257 258 259 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 257 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을 제거합니다.
269 270 271 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 269 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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
여러 데이터 키를 해독하고 새 마스터 키로 데이터 키를 (재)암호화하거나, 새 키가 제공되지 않은 경우 현재 마스터 키로 암호화합니다.
284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 |
# 파일 'lib/ Mongo/crypt/explicit_encrypter.rb', 줄 284 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 |