From ec996134a1f23ee36aff9d3ad2c800af71623207 Mon Sep 17 00:00:00 2001 From: Azul Date: Fri, 3 Nov 2017 14:33:51 +0100 Subject: fix: no expiration date means not outdated We were using Time.at(expirationdate) even if it was nil which led to using the Time.at(0). Instead an unset expirationdate is meant to not expire the key at all. Our tests did not catch this because the assertions were in blocks that did not get run at all. (at least in the HKP integration test). --- lib/nickserver/hkp/key_info.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/nickserver/hkp/key_info.rb b/lib/nickserver/hkp/key_info.rb index e1a9500..c1b1ad3 100644 --- a/lib/nickserver/hkp/key_info.rb +++ b/lib/nickserver/hkp/key_info.rb @@ -49,7 +49,7 @@ module Nickserver::Hkp def expirationdate expires = properties[4] - Time.at(expires.to_i) + expires && Time.at(expires.to_i) end def flags -- cgit v1.2.3 From 85a567286cf61a3a8193c339dd0967116d79299c Mon Sep 17 00:00:00 2001 From: Azul Date: Sat, 4 Nov 2017 08:30:08 +0100 Subject: refactor: turn Hkp::Response into KeyResponse We now also use it from wkd and it seems like a generally useful kind of response. --- lib/nickserver/hkp/response.rb | 16 ---------------- lib/nickserver/hkp/source.rb | 4 ++-- lib/nickserver/key_response.rb | 16 ++++++++++++++++ lib/nickserver/wkd/source.rb | 4 ++-- 4 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 lib/nickserver/hkp/response.rb create mode 100644 lib/nickserver/key_response.rb (limited to 'lib') diff --git a/lib/nickserver/hkp/response.rb b/lib/nickserver/hkp/response.rb deleted file mode 100644 index 2cc69d3..0000000 --- a/lib/nickserver/hkp/response.rb +++ /dev/null @@ -1,16 +0,0 @@ -module Nickserver::Hkp - class Response - attr_reader :status, :content - - def initialize(uid, key) - @content = format_response(address: uid, openpgp: key) - @status = 200 - end - - protected - - def format_response(map) - map.to_json - end - end -end diff --git a/lib/nickserver/hkp/source.rb b/lib/nickserver/hkp/source.rb index d7c86a3..fe3c4a5 100644 --- a/lib/nickserver/hkp/source.rb +++ b/lib/nickserver/hkp/source.rb @@ -1,6 +1,6 @@ require 'nickserver/source' require 'nickserver/response' -require 'nickserver/hkp/response' +require 'nickserver/key_response' require 'nickserver/hkp/client' require 'nickserver/hkp/parse_key_info' require 'nickserver/hkp/key_info' @@ -30,7 +30,7 @@ module Nickserver::Hkp def get_key_by_fingerprint(fingerprint, nick = nil) status, response = client.get_key_by_fingerprint fingerprint if status == 200 - Response.new nick, response + Nickserver::KeyResponse.new nick, response else Nickserver::Response.new status, 'HKP Request failed' end diff --git a/lib/nickserver/key_response.rb b/lib/nickserver/key_response.rb new file mode 100644 index 0000000..438dfc3 --- /dev/null +++ b/lib/nickserver/key_response.rb @@ -0,0 +1,16 @@ +module Nickserver + class KeyResponse + attr_reader :status, :content + + def initialize(uid, key) + @content = format_response(address: uid, openpgp: key) + @status = 200 + end + + protected + + def format_response(map) + map.to_json + end + end +end diff --git a/lib/nickserver/wkd/source.rb b/lib/nickserver/wkd/source.rb index 43f0b2e..bf30c94 100644 --- a/lib/nickserver/wkd/source.rb +++ b/lib/nickserver/wkd/source.rb @@ -1,7 +1,7 @@ require 'nickserver/source' require 'nickserver/response' require 'nickserver/wkd/url' -require 'nickserver/hkp/response' +require 'nickserver/key_response' module Nickserver::Wkd # Query the web key directory for a given email address @@ -10,7 +10,7 @@ module Nickserver::Wkd url = Url.new(email) status, blob = adapter.get url if status == 200 - Nickserver::Hkp::Response.new(email.to_s, armor_key(blob)) + Nickserver::KeyResponse.new(email.to_s, armor_key(blob)) end end -- cgit v1.2.3