Merge #1002: BIP155: Mention SHA3-256 explicitly

6ef71b344c51aebe1dab5ac47f87d8f926462a65 BIP155: Small text improvements (Hennadii Stepanov)
562f1d71883d1daa0dd5f438d25986fb18465800 BIP155: Mention SHA3-256 explicitly (Hennadii Stepanov)

Pull request description:

  It seems better to clarify that `CHECKSUM` in Tor onion v3 address uses SHA3-256 hash function.

ACKs for top commit:
  vasild:
    ACK 6ef71b344
  laanwj:
    ACK 6ef71b344c51aebe1dab5ac47f87d8f926462a65

Tree-SHA512: b88c7dfeeda2a99cfe1042c9f4e7cbeb6047882bf97ce9c1dd5e1f4a30203a9a03702638cc4b6c3b573f6c0a05b73a5ca43a77352a5ca24a32d19be129f8b317
This commit is contained in:
Wladimir J. van der Laan 2020-10-06 15:51:19 +02:00
commit ebeb28ee0e
No known key found for this signature in database
GPG Key ID: 1E4AED62986CD25D

View File

@ -150,7 +150,7 @@ The reference implementation is available at (to be done)
==Appendix A: Tor v2 address encoding==
The new message introduces a separate network ID for <code>TORV2</code>.
The new message introduces a separate network ID for <code>TORV2</code>.
Clients MUST send Tor hidden service addresses with this network ID, with the 80-bit hidden service ID in the address field. This is the same as the representation in the legacy <code>addr</code> message, minus the 6 byte prefix of the OnionCat wrapping.
@ -164,10 +164,11 @@ 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 an one byte version field (default value '\x03')
- 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
- H() is the SHA3-256 cryptographic hash function
</pre>
Tor v3 addresses MUST be sent with the <code>TORV3</code> network ID, with the 32-byte PUBKEY part in the address field. As VERSION will always be '\x03' in the case of v3 addresses, this is enough to reconstruct the onion address.