Skip to content

Commit

Permalink
Merge bitcoin#1002: BIP155: Mention SHA3-256 explicitly
Browse files Browse the repository at this point in the history
6ef71b3 BIP155: Small text improvements (Hennadii Stepanov)
562f1d7 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 6ef71b3
  laanwj:
    ACK 6ef71b3

Tree-SHA512: b88c7dfeeda2a99cfe1042c9f4e7cbeb6047882bf97ce9c1dd5e1f4a30203a9a03702638cc4b6c3b573f6c0a05b73a5ca43a77352a5ca24a32d19be129f8b317
  • Loading branch information
laanwj committed Oct 6, 2020
2 parents cca9b98 + 6ef71b3 commit ebeb28e
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions bip-0155.mediawiki
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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.
Expand Down

0 comments on commit ebeb28e

Please sign in to comment.