On Sun, Oct 10, 2021 at 8:44 AM nusenu <nusenu-li...@riseup.net> wrote: > > Hi, > > given a relay's ed25519_master_id_public_key > file, is there a simple way to generate the > 43 chars long ed25519 identity string (also found in fingerprint-ed25519)? >
Yes, there is! First you verify that the file is really 64 bytes long, and that the first 32 bytes of the file are really "== ed25519v1-public: type0 ==\0\0\0". Having done that, you base64-encode the second 32 bytes of the file, with no "=" padding. I've attached a lazy little python script. cheers, -- Nick
#!/usr/bin/python import sys import binascii # requires python 3 assert sys.version_info >= (3,0,0) try: s = open(sys.argv[1], "rb").read() except IndexError: print("Syntax: {} <filename>".format(sys.argv[0])) sys.exit(1) header = b"== ed25519v1-public: type0 ==\0\0\0" if len(s) != 64 and s[:32] != header: print("This wasn't an ed25519_master_id_public_key file.") sys.exit(1) else: print(binascii.b2a_base64(s[32:]).decode("ascii").strip().replace("=",""))
_______________________________________________ tor-dev mailing list tor-dev@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev