blob: bf30c9463d5591ee6672e5ca98907b9e79a5aaf7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
require 'nickserver/source'
require 'nickserver/response'
require 'nickserver/wkd/url'
require 'nickserver/key_response'
module Nickserver::Wkd
# Query the web key directory for a given email address
class Source < Nickserver::Source
def query(email)
url = Url.new(email)
status, blob = adapter.get url
if status == 200
Nickserver::KeyResponse.new(email.to_s, armor_key(blob))
end
end
protected
def armor_key(blob)
header + encode(blob) + footer
end
def encode(blob)
Base64.strict_encode64(blob).scan(/.{1,64}/).join "\n"
end
def header
"-----BEGIN PGP PUBLIC KEY BLOCK-----\n\n"
end
def footer
"\n-----END PGP PUBLIC KEY BLOCK-----\n"
end
end
end
|