클래스: Mongo::Crypt:: 비공개처리

상속:
객체
  • 객체
모두 표시
다음에 정의됨:
lib/ Mongo/crypt/ 처리하다.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

클라이언트가 해당 객체 에 대한 옵션을 설정하다 하거나 암호화 및 암호 해독과 같은 작업을 수행할 수 있도록 mongocrypt_t 객체 를 래핑하는 libmongocrypt 라이브러리에 대한 처리하다 입니다.

인스턴스 속성 요약 접기

인스턴스 메서드 요약 접기

생성자 세부 정보

#initialize(kms_providers, kms_tls_options, options = {}) ⇒ Handle

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

새 핸들 객체 를 생성하고 옵션을 사용하여 초기화합니다.

매개변수:

  • kms_providers (Crypt:: KMS::Credentials)

    KMS 제공자에 대한 자격 증명.

  • kms_tls_options (해시)

    KMS 제공자에 연결하기 위한 TLS 옵션. 해시의 키는 KSM 제공자 이름이어야 합니다. 값은 TLS 연결 옵션의 해시여야 합니다. 이 옵션은 Mongo::Client의 TLS 연결 옵션과 동일합니다.

  • 옵션 (해시) (기본값: {})

    옵션의 해시입니다.

옵션 해시(options):

  • :schema_map (해시 | nil)

    자동 암호화됨 문서를 저장하는 컬렉션 의 JSON schema 를 나타내는 해시입니다. 이 옵션은 :schema_map_path와 상호 배타적입니다.

  • :schema_map_path (string | nil)

    파일 경로에는 자동으로 암호화됨 문서를 저장하는 컬렉션 의 JSON schema 가 포함되어 있습니다. 이 옵션은 :schema_map과 상호 배타적입니다.

  • :encrypted_fields_map (해시 | nil)

    컬렉션 네임스페이스 를 암호화된 필드에 매핑합니다.

    • 참고: 컬렉션이 암호화된 필드 맵과 schemaMap 모두에 존재하는 경우 오류가 발생합니다.

  • :bypass_query_analysis (Boolean | nil)

    true이면 발신 명령의 자동 분석이 비활성화됩니다.

  • :crypt_shared_lib_path (string | nil)

    crypt 공유 라이브러리를 로드하는 데 사용해야 하는 경로입니다. 이 옵션을 제공하면 libmongocrypt에 대한 기본 암호화 공유 라이브러리 로드 경로가 재정의됩니다.

  • :crypt_shared_lib_required (Boolean | nil)

    crypt_shared 라이브러리가 필요한지 여부입니다. 'true'인 경우, libmongocrypt가 crypt_shared 라이브러리를 로드할 수 없는 경우 오류가 발생합니다.

  • :explicit_encryption_only (Boolean | nil)

    이 처리하다 을 명시적 암호화 에만 사용할지 여부입니다. true인 경우, libmongocrypt는 crypt 공유 라이브러리를 로드하지 않도록 지시합니다.

  • :logger (로거)

    libmongocrypt 로그가 전송될 로거 객체입니다.



67
68
69
70
71
72
73
74
75
76
77
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
# 파일 'lib/ Mongo/crypt/ 처리하다.rb', 줄 67

def 초기화(kms_providers, kms_tls_options, 옵션={})
  # FFI::AutoPointer는 사용자 지정 출시하다 전략을 사용하여
  # 이 객체 가 범위를 벗어나면 포인터
  @mongocrypt = FFI::자동 포인터.신규(
    바인딩.mongocrypt_new,
    바인딩.메서드(:mongocrypt_destory)
  )
  바인딩.kms_ctx_setopt_retry_kms(self, true)
  @kms_providers = kms_providers
  @kms_tls_options =  kms_tls_options

  may_set_schema_map(옵션)

  @encrypted_fields_map = 옵션[:encrypted_fields_map]
  set_encrypted_fields_map 만약 @encrypted_fields_map

  @bypass_query_analysis = 옵션[:bypass_query_analysis]
  set_bypass_query_analysis 만약 @bypass_query_analysis

  @crypt_shared_lib_path = 옵션[:crypt_shared_lib_path]
  @explicit_encryption_only = 옵션[:explicit_encryption_only]
  만약 @crypt_shared_lib_path
    바인딩.setopt_set_crypt_shared_lib_path_override(self, @crypt_shared_lib_path)
  elsif !@bypass_query_analysis && !@explicit_encryption_only
    바인딩.setopt_append_crypt_shared_lib_search_path(self, "$SYSTEM")
  end

  @logger = 옵션[:logger]
  set_logger_callback 만약 @logger

  set_crypto_hooks

  바인딩.setopt_kms_providers(self, @kms_providers.to_document)

  만약 @kms_providers.AWS&.비어 있나요? || @kms_providers.GCP&.비어 있나요? || @kms_providers.Azure&.비어 있나요?
    바인딩.setopt_use_need_kms_credentials_state(self)
  end

  initialize_mongocrypt

  @crypt_shared_lib_required = !!옵션[:crypt_shared_lib_required]
  만약 @crypt_shared_lib_required && crypt_shared_lib_version == 0
    올리다 mongo::오류::CRYPTError.신규(
      "Crypt 공유 라이브러리가 필요하지만 libmongocrypt에 따라 로드할 수 없습니다."
    )
  end
end

인스턴스 속성 세부 정보

#kms_providers객체 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



32
33
34
# 파일 'lib/ Mongo/crypt/ 처리하다.rb', 줄 32

def kms_providers
  @kms_providers
end

인스턴스 메서드 세부 정보

#crypt_shared_lib_available?부울

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환합니다:

  • (부울)


136
137
138
# 파일 'lib/ Mongo/crypt/ 처리하다.rb', 줄 136

def crypt_shared_lib_available?
  crypt_shared_lib_version != 0
end

#crypt_shared_lib_version객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.



132
133
134
# 파일 'lib/ Mongo/crypt/ 처리하다.rb', 줄 132

def crypt_shared_lib_version
  바인딩.crypt_shared_lib_version(self)
end

#kms_tls_options(제공자) ⇒ 해시

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

KMS 제공자 에 대한 TLS 옵션을 반환합니다. TLS 옵션이 설정하다 되지 않은 경우 빈 해시가 반환됩니다.

매개변수:

  • provider (string)

    KSM 제공자 이름입니다.

반환합니다:

  • (해시)

    KMS 제공자에 연결하기 위한 TLS 옵션입니다.



128
129
130
# 파일 'lib/ Mongo/crypt/ 처리하다.rb', 줄 128

def kms_tls_options(provider)
  @kms_tls_options.가져오기(provider, {})
end

#refFFI::Pointer

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

기본 @mongocrypt 객체 에 대한 참조 반환

반환합니다:

  • (FFI::Pointer)


118
119
120
# 파일 'lib/ Mongo/crypt/ 처리하다.rb', 줄 118

def ref
  @mongocrypt
end