соответствующий запрос о том, как получить открытый ключ с сервера открытого ключа - PullRequest
2 голосов
/ 20 августа 2009
import urllib

response = urllib.urlopen('http://pool.sks-keyservers.net/')
print 'RESPONSE:', response
print 'URL     :', response.geturl()

headers = response.info()
print 'DATE    :', headers['date']
print 'HEADERS :'
print '---------'
print headers

data = response.read()
print 'LENGTH  :', len(data)
print 'DATA    :'
print '---------'
print data

Этот код позволяет мне просматривать информацию и содержимое веб-страницы. что на самом деле у меня был запрос о том, как получить открытый ключ с любого сервера открытого ключа с помощью функции python.

Ответы [ 2 ]

4 голосов
/ 20 августа 2009

Эта спецификация должна помочь вам и прекратить задавать один и тот же вопрос повторно :). В основном вам нужно выполнить HTTP-запрос GET к серверу ключей. Большинство серверов ключей работают через TCP-порт 11371, поэтому вам необходимо убедиться, что ваш брандмауэр пропустит вас.

Например, этот URL даст вам открытый ключ Бога:

http://pool.sks -keyservers.net: 11371 / ПКС / поиск оп = прибудет и поиск = 0x1278A1862492D908 и опция = тг

Ответ - ключ.

В питоне:

import urllib
f = urllib.urlopen('http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x1278A1862492D908&options=mr')
data = f.read()
print data

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.0

mQGiBD/dywoRBADkaddBEedMhFHGH3wKORuOIDFufSDERmlm2ktj3ma+GhfwvnuvvpAj+QYl
ANh1K86Mm5k0dGOlhZwIr1zB3cIoNqt7TJ62v8w6mc0BA8UWzWJp0i6dHPa/qeeFFC53B8U1
h3FlPrmQGcVeV+hjOPFU7ANDSDm3tduad7NRxAst7QCg/8o++2BaAlTnbMB+Xfo23uEEc6UE
AK0vD4EUPLfU5snfow1zUPXQUDalOcUP6RIhbi6yxKRFAIWI+7QgNPZf/Q2CFIRWsXKmW/ly
IDSJgs5ruB+Yj8gmBZlrn5KMmW3EcEoHAhOP+ONZAIOb2LsaAjHjHOuefhlIr1T3gng+kLoD
3Yfy2WTugBizeNybAd2nfZyOJhfWA/4xTfg+Hbcb9n+8sEqgiuyQJEID38Q3FDmwSzRfBMbO
JFrf8t/VHPjB7ZSdshl9GM86TXYnWjspzAjjQB8fxLgIim2mC0T46aRNdE0l2ozxRmS95nr7
YuHVA73vcI5tRn6qa9yLXew1YeN3YWxRfIW2AZG7bkRcXOIdl7tO9KiVpbQUR29kIDxHb2RA
aGVhdmVuLmNvbT6IWAQQEQIAGAUCP93LCggLAwkIBwIBCgIZAQUbAwAAAAAKCRASeKGGJJLZ
CAp7AJ9WqGhOnysRt/b7p+EuC86lhs3iBgCdEVwLgEwcc63OVbBxxFF6vyiNuNG5Ag0EP93L
ChAIAPZCV7cIfwgXcqK61qlC8wXo+VMROU+28W65Szgg2gGnVqMU6Y9AVfPQB8bLQ6mUrfdM
ZIZJ+AyDvWXpF9Sh01D49Vlf3HZSTz09jdvOmeFXklnN/biudE/F/Ha8g8VHMGHOfMlm/xX5
u/2RXscBqtNbno2gpXI61Brwv0YAWCvl9Ij9WE5J280gtJ3kkQc2azNsOA1FHQ98iLMcfFst
jvbzySPAQ/ClWxiNjrtVjLhdONM0/XwXV0OjHRhs3jMhLLUq/zzhsSlAGBGNfISnCnLWhsQD
GcgHKXrKlQzZlp+r0ApQmwJG0wg9ZqRdQZ+cfL2JSyIZJrqrol7DVekyCzsAAgIH/j7FzAvF
jCmq3vXWnDOymAfJgTNyvYB67y0Xu2HXqGlXe92Gkxcf22w4X63TkZqMy7nXRbGc9WI2sr57
oSTJq3+42WHnVQjd9W10TFIgnH2YkuSC3KckMB5hC1yM9wqaIXNhfxXmq3B4V3UuKLyM3nQi
SgWb9+kST3FxcGWXRB0Ec/tIJ0cNeFtu5IrYDNkRbcHep/BuwXEARUIpjlUlG7NPIaY4U03I
/GSW7/IrG5/H7EsVWQzxRpcC6DcJjxJv2lIATvraXHwNpllOlPHFb9aABHmTOX7QLrG4FXTP
ReH6rjf+w5tqJilTMwYdsZIV13U7+NBwVZHFbUdYMmqhOTiITAQYEQIADAUCP93LCgUbDAAA
AAAKCRASeKGGJJLZCMqJAKCzS0hv0EY/GYdUKOOf3XiiZpu3qwCg9kFBm/GO+t073SsHkedu
HT0F6po=
=NhFO
-----END PGP PUBLIC KEY BLOCK-----
1 голос
/ 05 декабря 2011

Использование http://pypi.python.org/pypi/python-hkp

Python HPK клиент.

Пример использования:

>>> from hkp import KeyServer
>>> serv = KeyServer('http://pool.sks-keyservers.net')
>>> serv.search('Dmitry Gladkov')
[Key 28DFA7EC RSA (Encrypt or Sign), Key 473C57D9 RSA (Encrypt or Sign)]
>>> serv.search('Dmitry Gladkov')[0].identities
[Identity Dmitry Gladkov (dgl) <dmitry.gladkov@gmail.com>]
...