Skip to content

Commit

Permalink
new file: keyserver.rb
Browse files Browse the repository at this point in the history
  • Loading branch information
vpereira committed Mar 2, 2010
0 parents commit 0cc5c86
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 0 deletions.
30 changes: 30 additions & 0 deletions key.txt
@@ -0,0 +1,30 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)

mQENBEuMPe4BCADyjBIvj8RsRWeQtBgz1qD9q+blWOI32uYga9QCxbVFwLIKsfOo
/VgTFfSyloj06rfgrY747QXn0MmFTGky+ssUwVFwO6e59F7zZZFLbvHo6Izy9HRu
rZu6yoD0cWEA6Nbv1w8cY5jgPsRf2vTW+CZIPkrrLwQKGAcAPTH2gyJlBO4Bir+B
Zsg4okVc229gmNLZQ4Tb1SB/G2mRmjadqTzwfVzHMJCiiBq86Gyw8AfUTjQHBpbk
pYqjaPMmUlrUzMN4aWTPfFO08NRUwdAoFlXUKpYDaFjn7L5afO+CV5aHdeRYGUZ2
K5Pin/PzF1F+gHYpTYWjBj0XLRiadfyPv2zdABEBAAG0IFZpY3RvciBQZXJlaXJh
IDx2cGVyZWlyYUB3ZWIuZGU+iQE4BBMBAgAiBQJLjD3uAhsDBgsJCAcDAgYVCAIJ
CgsEFgIDAQIeAQIXgAAKCRBtWqllyx0gE2cFCAChAf3EvqScz05XMWZ9trd5D4hn
0GiJjLn5B3wSVfGrd7sOBfabODsbbs/+kfYLWcegjPnSE4LLpVdOa9qPeMotnSzS
ph+gM2uJwQ0ryVR+t8Dka+FBeMhRK/qfGU2yy64hiBkPh+Rf5QODy9ZjdmiBhKjA
wssLAfVIMaVoY6G/w1gc+CVmINZVxNNBIocEK8EQnu548IvhNNA9KqM2kMA+JCaF
8Xa6Qtb5qO7GajjVN7yeVcLy8vujA3grFoScbjrqdouUU3+Cr5JmZtz2Mfl8O5kl
tkWR76VSk0uUu0sSW/Mj/VFma7rEHn3mpzUjndotH/KSQzYn4C60Q/5DJiMzuQEN
BEuMPe4BCACwuoOMa+2e1EAkVpcY2dIsrvnKhTxoFGv9H3mEU8xmhvNWX6xRSTFl
GcYBJkoP0oGzpXcFbkFnfYaTtz53P45ApH0NS914h7XLENPCECsXj15aB4bDHbRo
nHHXRLfSuezY+QQCYhmvMwBcCHmcyYyoFi0cz54uGguNB/DPwbRx8L3C9PYcMnV9
/MBqVo0+h0LiRsnBSwHkpKbDge49w9Beu1P61YPHcryxmEc6DWn5m8cT1lGZxWrA
lWOWRND4AvxBJUWINLbiMHKqaP+p99D+mHQnpYHU2gb4VuTubsOVu4qJwao8P/P3
AUexNpJd28WzpNgThQPzEnHWYY0sYeQrABEBAAGJAR8EGAECAAkFAkuMPe4CGwwA
CgkQbVqpZcsdIBNwkggAxW8Vj4mwtV+kt8Hxgvgu8bQ00KIXs/kHTdrGqNEj9UX0
bIBBEey2HAyPJwDZ/MN7tcQaWInJ5V1LPQx4jOPQ8/sC63XnBSa5br/IqZpJg587
jOXb9DPSkveJ4BK7n3y673sgmyZ+y2BRh+a3nHVUq6KSDa9dSLYb4C3llqOv1H5M
oL5kn+vy3iBlOWdV8amERW7FmUP/YZhPV2rilHvV2b3L4tP5IOV1MFqyyW+5L2x2
mHR6i3LiR9H+WptmyQSA7v428OuQMtUlbyIFlhq0EOaLkFxY3G/e6WCJVSVxuVrz
KoxKbFfFJa6In8JKuGbH8od7v5Tky8RGYvCxPZufVA==
=QBAM
-----END PGP PUBLIC KEY BLOCK-----
68 changes: 68 additions & 0 deletions keyserver.rb
@@ -0,0 +1,68 @@
#
# Prototype to add and search keys in keyservers
# first one added: pgp.mit.edu
#
require 'rubygems'
require 'hpricot'
require 'mechanize'

MIT_SERVER = "http://pgp.mit.edu/"
class KeyServer
attr_accessor :agent
attr_accessor :server
attr_accessor :keyfile

def initialize
@agent = WWW::Mechanize.new { |agent|
agent.user_agent_alias = 'Mac Safari'
}
@server = MIT_SERVER
end


def search_key(search_str)
if @server == MIT_SERVER
ret = search_mitserver_key(search_str)
else
puts "not implemented"
ret = nil
end
ret
end

def add_key(keyf)
@keyfile = keyf if File.exist?(keyf)
@keyfile.nil? ? nil : add_key_mitserver
end

protected
def search_mitserver_key(search_str)
url = "http://pgp.mit.edu:11371"
page = @agent.get(@server)
resp = page.form_with(:action=>"http://pgp.mit.edu:11371/pks/lookup") do |form|
form['search'] = search_str
end.submit
doc = resp.parser
unless doc.nil?
url += doc.at("a")['href']
page = @agent.get(url)
doc = page.parser
end
doc.at("pre").inner_text ? doc.at("pre").inner_text : nil
end
def add_key_mitserver
content = File.open(@keyfile) do |f|
f.read
end

page = @agent.get(@server)
resp = page.form_with(:action=>'http://pgp.mit.edu:11371/pks/add') do |form|
form['keytext'] = content
end.submit
resp.body =~ /added succesfully/ ? true : false
end
end

k = KeyServer.new
key = k.search_key('vpereira@web.de')
k.add_key("key.txt")

0 comments on commit 0cc5c86

Please sign in to comment.