클래스: 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 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
지정된 암호화 키 및 알고리즘을 사용하여 값을 암호화합니다.
암호화 알고리즘 '인덱싱됨'으로 설정하다 경우. 쿼리 유형은 암호화 알고리즘 '인덱싱됨'으로 설정하다 경우에만 설정하다 해야 합니다. 허용되는 유일한 값은 "동등성"입니다.
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: 범위 알고리즘 은 실험적일 뿐입니다. 공개적으로 사용할 수 없습니다. 호환성이 손상되는 변경이 발생할 수 있습니다.
@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의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
여러 데이터 키를 해독하고 새 마스터 키로 데이터 키를 (재)암호화하거나, 새 키가 제공되지 않은 경우 현재 마스터 키로 암호화합니다.
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 |