[tor-dev] [RFC] Proposal for the encoding of prop224 onion addresses

Vi Grey vigrey at riseup.net
Sun Feb 5 02:14:00 UTC 2017

> Here is the suggested scheme:
>   onion_address = base32(version + pubkey + checksum)
>   checksum = SHA3(".onion checksum" + version + pubkey)

Wouldn't SHA3 be computational overkill if we're just worrying about the
checksum making sure the .onion address wasn't mistyped?  My suggestion
would be to use something like this for the checksum:

   checksum = HMAC-CRC32(".onion checksum", version + pubkey)[2:]
   (with the HMAC key as its first argument)

HMAC-CRC16 could be used as well instead of a truncated HMAC-CRC32, but
CRC16 is a lot less standard than CRC32.

Also, should we consider including a Version option eventually in the
ADD_ONION control port command when using a KeyBlob?  It wouldn't matter
much for this new version and probably wouldn't matter much for a while,
but it might be good to keep this in mind for the future.

More information about the tor-dev mailing list