diff options
author | Nick Mathewson <nickm@torproject.org> | 2023-10-14 14:36:12 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2023-10-14 14:36:12 -0400 |
commit | 2f357f50a0775cc684169e83d21e8e87c97bfc90 (patch) | |
tree | 5ba083d885078beed5ea3d73d37fd1eccc3153fe /spec/rend-spec-v3/encoding-onion-addresses.md | |
parent | 4ba45dfd9afd08edeb46243127a480f1d23b9640 (diff) | |
download | torspec-2f357f50a0775cc684169e83d21e8e87c97bfc90.tar.gz torspec-2f357f50a0775cc684169e83d21e8e87c97bfc90.zip |
Rename all long files.
Diffstat (limited to 'spec/rend-spec-v3/encoding-onion-addresses.md')
-rw-r--r-- | spec/rend-spec-v3/encoding-onion-addresses.md | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/rend-spec-v3/encoding-onion-addresses.md b/spec/rend-spec-v3/encoding-onion-addresses.md new file mode 100644 index 0000000..14b3c44 --- /dev/null +++ b/spec/rend-spec-v3/encoding-onion-addresses.md @@ -0,0 +1,27 @@ +<a id="rend-spec-v3.txt-6"></a> + +# Encoding onion addresses \[ONIONADDRESS\] + +The onion address of a hidden service includes its identity public key, a +version field and a basic checksum. All this information is then base32 +encoded as shown below: + +```text + onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion" + CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2] + + where: + - PUBKEY is the 32 bytes ed25519 master pubkey of the hidden service. + - VERSION is a one byte version field (default value '\x03') + - ".onion checksum" is a constant string + - CHECKSUM is truncated to two bytes before inserting it in onion_address + + Here are a few example addresses: + + pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion + sp3k262uwy4r2k3ycr5awluarykdpag6a7y33jxop4cs2lu5uz5sseqd.onion + xa4r2iadxm55fbnqgwwi5mymqdcofiu3w6rpbtqn7b2dyn7mgwj64jyd.onion +``` + +For more information about this encoding, please see our discussion thread +at \[ONIONADDRESS-REFS\]. |