클래스: Mongo::Crypt::ExplicitEncrypter Private
- 상속:
-
객체
- 객체
- Mongo::Crypt::ExplicitEncrypter
- 확장자:
- 전달 가능
- 다음에 정의됨:
- build/ruby-driver-v2.19/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) ⇒ 객체
비공개
이미 암호화된 값을 해독합니다.
-
#암호화(값, 옵션) ⇒ BSON::Binary
비공개
지정된 암호화 키와 알고리즘을 사용하여 값을 암호화합니다.
-
# 암호화 표현식 (표현식, 옵션) ⇒BSON::Binary
비공개
범위 인덱스를 쿼리하기 위해 일치 표현식 또는 애그리게이션 표현식을 암호화합니다.
-
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options) ⇒ ExplicitEncrypter
생성자
비공개
새 ExplicitEncrypter 객체를 만듭니다.
-
#rewrap_many_data_key(filter, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
비공개
여러 데이터 키를 해독하고 새 마스터 키로 데이터 키를 (재)암호화하거나, 새 키가 제공되지 않은 경우 현재 마스터 키로 암호화합니다.
생성자 세부 정보
#initialize(key_vault_client, key_vault_namespace, kms_providers, kms_tls_options) ⇒ ExplicitEncrypter
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
새 ExplicitEncrypter 객체를 만듭니다.
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', 줄 38 def 초기화(key_Vault_client, key_Vault_namespace, kms_providers, ) 암호화.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 ) end |
인스턴스 메서드 세부 정보
#add_key_alt_name(ID, key_alt_name) ⇒ BSON::Document | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
지정된 ID를 가진 키 볼트 컬렉션의 키에 대한 key_alt_name을 추가합니다.
197 198 199 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', 줄 197 def add_key_alt_name(id, key_alt_name) @encryption_io.add_key_alt_name(id, key_alt_name) end |
#create_and_insert_data_key(master_key_document, key_alt_names, key_material = nil) ⇒ BSON::Binary
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
암호화/복호화에 사용되는 데이터 키를 생성하고 해당 키를 KMS 컬렉션에 저장합니다. 생성된 키는 KMS 마스터 키로 암호화됩니다.
67 68 69 70 71 72 73 74 75 76 77 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', 줄 67 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 @encryption_io.insert_data_key(data_key_document).insert_id end |
#Decrypt(value) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이미 암호화된 값을 해독합니다.
182 183 184 185 186 187 188 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', 줄 182 def 암호 해독(value) 암호화::명시적 암호 해독 컨텍스트.신규( @crypt_handle, @encryption_io, { v: value } ).run_state_ machine['v'] end |
#암호화(값, 옵션) ⇒ BSON::Binary
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
지정된 암호화 키 및 알고리즘을 사용하여 값을 암호화합니다.
암호화 알고리즘 이 '인덱싱됨'으로 설정하다 경우. 쿼리 유형을 설정하다 해야 합니다.
only if encryption algorithm is set to "Indexed". The only allowed
value is "equality".
108 109 110 111 112 113 114 115 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', 줄 108 def 암호화(value, ) 암호화::명시적 암호화 컨텍스트.신규( @crypt_handle, @encryption_io, { v: value }, ).run_state_ machine['v'] end |
# 암호화 표현식 (표현식, 옵션) ⇒BSON :: Binary
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
RangePreview 알고리즘 은 실험용으로만 제공됩니다. 그렇지 않습니다.
:key_id 및 :key_alt_name 옵션은 상호 배타적입니다. 명시적 암호화를 수행하는 데는 하나만 필요합니다.
범위 인덱스를 쿼리하기 위해 일치 표현식 또는 애그리게이션 표현식을 암호화합니다.
queryType이 'rangePreview'이고 알고리즘 이 'RangePreview'인 경우에만 지원됩니다. @note: 범위 알고리즘 은 실험적일 뿐입니다. 의도된 것이 아닙니다.
for public use. It is subject to breaking changes.
# @param [ 해시 ] 옵션은 공개적으로 사용합니다.
167 168 169 170 171 172 173 174 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', 줄 167 def 암호화 표현식(표현식, ) 암호화::명시적 암호화 표현식 컨텍스트.신규( @crypt_handle, @encryption_io, { v: 표현식 }, ).run_state_ machine['v'] end |
#rewrap_many_data_key(필터하다, opts = {}) ⇒ Crypt::RewrapManyDataKeyResult
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
여러 데이터 키를 해독하고 새 master_key로 (재)암호화합니다.
or with their current master_key if a new one is not given.
250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/explicit_encrypter.rb', 줄 250 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 반환 RewrapManyDataKeyResult.신규(nil) 만약 rerap_result.nil? 업데이트 = update_from_data_key_documents(rerap_result.가져오기('v')) RewrapManyDataKeyResult.신규(@encryption_io.update_data_keys(업데이트)) end |