Classe: Mongo::Crypt::KMS::GCP::Credentials Private

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Validações
Definido em:
build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

O objeto GCP Cloud Key Management Credentials contém credenciais para usar o provedor GCP KMS.

Colapsode resumo constante

FORMAT_HINT =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

"As opções do fornecedor GCP KMS devem estar no formato: " +
"{ email: 'EMAIL', private_key: 'PRIVATE-KEY' }"

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Métodos incluídos nas Validações

#validate_param, validate_tls_options

Detalhes do construtor

#initialize(opts) ➤ Credenciais

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Cria um objeto de credenciais GCP KMS de um hash de parâmetros.

Parâmetros:

  • opciona (Hash)

    Um hash que contém credenciais para o fornecedor GCP KMS

Hash de opções (opts):

  • :email (string)

    E-mail GCP.

  • :private_key (string)

    Chave privada GCP. Esse método aceita chave privada no formato DER codificado de base64 ou no formato PEM.

  • :endpoint (string | nil)

    Ponto de conexão GCP, opcional.

  • :access_token (string | nil)

    Token de acesso GCP, opcional. Se esta opção não for nula, outras opções serão ignoradas.

Aumenta:

  • (ArgumentError)

    Se as opções necessárias estiverem ausentes ou formatadas incorretamente.



61
62
63
64
65
66
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
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb', linha 61

def inicializar(opciona)
  @opts = opciona
  Método se vazio?

  se opciona[:access_token]
    @access_token = opciona[:access_token]
  mais
    @email = validate_param(:email, opciona, FORMAT_HINT)
    @private_key = começar
      private_key_opt = validate_param(:private_key, opciona, FORMAT_HINT)
      se BSON::ambiente.jRuby?
        # Não podemos validar chave privada no JRuby, então assumimos
        # está no formato DER codificado de64 base.
        private_key_opt
      mais
        # Verifique se a chave privada está no formato PEM.
        pkey = OpenSSL::PKey::RSA.Novo(private_key_opt)
        # PEM que é, precisa ser convertido em DER codificado de base64 .
        der = se pkey.respond_to?(:private_to_der)
          pkey.private_to_der
        mais
          pkey.to_der
        end
        Base64.codificar64(der)
      end
    salvar OpenSSL::PKey::RSAError
      # Verifique se a chave privada está no DER.
      começar
        OpenSSL::PKey.ler(Base64.decodificar64(private_key_opt))
        # A chave privada está bem, use-a.
        private_key_opt
      salvar OpenSSL::PKey::PKeyError
        aumentar ArgumentError.Novo(
          "A opção private_key deve ser formato DER codificado de base64 ou formato PEM."
        )
      end
    end

    @endpoint = validate_param(
      :endpoint, opciona, FORMAT_HINT, necessário: false
    )
  end
end

Detalhes do atributo da instância

#access_token ➤ string | nil (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o token de acesso GCP.

Retorna:

  • (string | nil)

    Token de acesso GCP.



40
41
42
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb', linha 40

def access_token
  @access_token
end

#emailstring (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o e-mail do GCP para autenticação.

Retorna:

  • (string)

    E-mail GCP para autenticação.



31
32
33
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb', linha 31

def Email
  @email
end

#endpointstring | nil (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna o endpoint GCP KMS.

Retorna:

  • (string | nil)

    Ponto de extremidade GCP KMS.



37
38
39
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb', linha 37

def endpoint
  @endpoint
end

#private_keystring (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna a chave privada GCP, o formato DER codificado de base64 .

Retorna:

  • (string)

    Chave privada GCP, formato DER codificado de base64 .



34
35
36
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb', linha 34

def PRIVATE_KEY
  @private_key
end

Detalhes do método de instância

#to_document ➤ BSON::Document

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Converta o objeto de credenciais em um documento BSON no formato libmongocrypt.

Retorna:

  • (BSON::Document)

    Credenciais Azure KMS no formato libmongocrypt.



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/KMS/GCP/credentials.rb', linha 108

def to_document
  Método BSON::Documento.Novo se vazio?
  se access_token
    BSON::Documento.Novo({ accessToken: access_token })
  mais
    BSON::Documento.Novo({
      e-mail: Email,
      chave privada: BSON::Binário.Novo(PRIVATE_KEY, :general),
    }).toque fazer |BSON|
      a menos que endpoint.nada?
        BSON.update({ ponto de conexão: endpoint })
      end
    end
  end
end