Consulta relevante sobre cómo obtener una clave pública del servidor de claves públicas

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 

Este código me permite ver información y contenidos de algunas páginas web. Lo que en realidad me consultó sobre cómo obtener la clave pública de cualquier servidor de claves públicas mediante la función python.

Esta especificación debería ayudarlo, y evitar que haga la misma pregunta repetidamente :). Básicamente, debe realizar una solicitud HTTP GET al servidor de claves. La mayoría de los servidores de claves funcionan en el puerto TCP 11371, por lo que debe asegurarse de que su firewall lo permita.

Por ejemplo, esta URL le dará la clave pública de Dios:

http://pool.sks-keyservers.net:11371/pks/lookup?op=get&search=0x1278A1862492D908&options=mr

La respuesta es la clave.

En python:

 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----- 

Utilice http://pypi.python.org/pypi/python-hkp

Cliente HPK de Python.

Ejemplo de uso:

 >>> 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) ]