Module: Google::APIClient::KeyUtils Deprecated

Defined in:
lib/google/api_client/auth/key_utils.rb

Overview

Deprecated.

Use google-auth-library-ruby instead

Helper for loading keys from the PKCS12 files downloaded when setting up service accounts at the APIs Console.

Class Method Summary collapse

Class Method Details

.load_from_pem(keyfile, passphrase) ⇒ OpenSSL::PKey

Loads a key from a PEM file.

Parameters:

  • keyfile (String)

    Path of the PEM file to load. If not a path to an actual file, assumes the string is the content of the file itself.

  • passphrase (String)

    Passphrase for unlocking the private key

Returns:

  • (OpenSSL::PKey)

    The private key for signing assertions.



52
53
54
55
56
# File 'lib/google/api_client/auth/key_utils.rb', line 52

def self.load_from_pem(keyfile, passphrase)
  load_key(keyfile, passphrase) do | content, pass_phrase|
    OpenSSL::PKey::RSA.new(content, pass_phrase)
  end
end

.load_from_pkcs12(keyfile, passphrase) ⇒ OpenSSL::PKey

Loads a key from PKCS12 file, assuming a single private key is present.

Parameters:

  • keyfile (String)

    Path of the PKCS12 file to load. If not a path to an actual file, assumes the string is the content of the file itself.

  • passphrase (String)

    Passphrase for unlocking the private key

Returns:

  • (OpenSSL::PKey)

    The private key for signing assertions.



34
35
36
37
38
# File 'lib/google/api_client/auth/key_utils.rb', line 34

def self.load_from_pkcs12(keyfile, passphrase)
  load_key(keyfile, passphrase) do |content, pass_phrase|
    OpenSSL::PKCS12.new(content, pass_phrase).key
  end
end

.load_key(keyfile, passphrase) {|String, String| ... } ⇒ OpenSSL::PKey

Helper for loading keys from file or memory. Accepts a block to handle the specific file format.

Parameters:

  • keyfile (String)

    Path of thefile to load. If not a path to an actual file, assumes the string is the content of the file itself.

  • passphrase (String)

    Passphrase for unlocking the private key

Yields:

  • (String, String)

    Key file & passphrase to extract key from

Yield Parameters:

  • keyfile (String)

    Contents of the file

  • passphrase (String)

    Passphrase to unlock key

Yield Returns:

  • (OpenSSL::PKey)

    Private key

Returns:

  • (OpenSSL::PKey)

    The private key for signing assertions.



80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/google/api_client/auth/key_utils.rb', line 80

def self.load_key(keyfile, passphrase, &block)
  begin
    begin
      content = File.open(keyfile, 'rb') { |io| io.read }
    rescue
      content = keyfile
    end
    block.call(content, passphrase)
  rescue OpenSSL::OpenSSLError
    raise ArgumentError.new("Invalid keyfile or passphrase")
  end
end