module HkpClient

Constants

DEFAULT_KEYSERVER
PUB_ENTRY_FIELDS
UID_ENTRY_FIELDS
VERSION

Public Instance Methods

get(string, keyserver: DEFAULT_KEYSERVER, exact: false) click to toggle source

Fetches a keyring containing open PGP keys from keyserver, and returns it as an ASCII-armoured string.

@param string [String] a search string @param keyserver (see query) @return [String] keyring @return [nil] if key could not be found @raise [HkpClient::Error] if server responds with different HTTP code than

200 or 404

@raise any other exceptions caused by networking problems

# File lib/hkp_client.rb, line 32
def get(string, keyserver: DEFAULT_KEYSERVER, exact: false)
  resp = query(
    keyserver: keyserver,
    op: "get",
    search: string,
    options: "mr",
    exact: (exact ? "on" : "off"),
  )

  Util.response_body_or_error_or_nil(resp)
end
query(keyserver: DEFAULT_KEYSERVER, **query_args) click to toggle source

Makes a query to keyserver. Any surplus keyword arguments will be used as request parameters.

@param keyserver [String] a keyserver to query @return [Faraday::Response] @raise any exceptions caused by networking problems

# File lib/hkp_client.rb, line 73
def query(keyserver: DEFAULT_KEYSERVER, **query_args)
  uri = (URI === keyserver ? keyserver.dup : URI.parse(keyserver))
  use_ssl = %w[https hkps].include?(uri.scheme)
  Faraday.new(url: uri, ssl: use_ssl).get("/pks/lookup", query_args)
end