On 7/28/12 5:47 AM, Aichetou Med wrote:
my question is : is there an "easy" way to translate relay nickname to fingerprint ? if not is it possible to download descriptors for some specific relays given "Digest" string from consensus file? i mean before launching tor. besides is there a reason for not showing the fingerprint in the consensus.
The fingerprint is contained in the consensus, but it's base64 encoded. For example, in the following line from cached-consensus,
r gabelmoo 8gREE9rC4C49a89HNaGbyh3pcoE AGGki/L4EedzUlT9yLqwYeWYomg 2012-07-28 04:03:18 212.112.245.170 443 80
the 8gREE9r.. part is the fingerprint. Here's how you convert that into hex using Python:
from binascii import * b2a_hex(a2b_base64("8gREE9rC4C49a89HNaGbyh3pcoE="))
'f2044413dac2e02e3d6bcf4735a19bca1de97281'
The consensus format is specified in dir-spec.txt:
https://gitweb.torproject.org/torspec.git/blob/HEAD:/dir-spec.txt
Note that there can be more than one relay with the same nickname. Look out for Named flags in the consensus when resolving a nickname to a fingerprint. If a relay doesn't have that flag, you can't be sure that the fingerprint really belongs to the nickname.
Best, Karsten