diff options
Diffstat (limited to 'lib/nickserver/hkp/source.rb')
-rw-r--r-- | lib/nickserver/hkp/source.rb | 28 |
1 files changed, 13 insertions, 15 deletions
diff --git a/lib/nickserver/hkp/source.rb b/lib/nickserver/hkp/source.rb index 1af8ac9..cbff91a 100644 --- a/lib/nickserver/hkp/source.rb +++ b/lib/nickserver/hkp/source.rb @@ -1,5 +1,6 @@ require 'nickserver/response' require 'nickserver/hkp/response' +require 'nickserver/hkp/client' # # Fetch keys via HKP @@ -29,11 +30,17 @@ module Nickserver; module Hkp attr_reader :adapter # - # fetches ascii armored OpenPGP public key from the keyserver + # for now, just pick the newest key. # - def get_key_by_fingerprint(nick, key_id) - params = {op: 'get', search: "0x" + key_id, exact: 'on', options: 'mr'} - adapter.get Config.hkp_url, query: params do |status, response| + # in the future, we should perhaps pick the newest key + # that is signed by the oldest key. + # + def pick_best_key(key_info_list) + key_info_list.sort {|a,b| a.creationdate <=> b.creationdate}.last + end + + def get_key_by_fingerprint(nick, fingerprint) + client.get_key_by_fingerprint fingerprint do |status, response| if status == 200 yield Response.new nick, response else @@ -42,17 +49,8 @@ module Nickserver; module Hkp end end - protected - - # - # for now, just pick the newest key. - # - # in the future, we should perhaps pick the newest key - # that is signed by the oldest key. - # - def pick_best_key(key_info_list) - key_info_list.sort {|a,b| a.creationdate <=> b.creationdate}.last + def client + @client ||= Client.new(adapter) end end - end; end |