Could you please explain what the pipe (|) in tor specification means -- is it a bitwise or or a concatenation of the values?
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:
onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion"
CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2]where:
PUBKEYis the 32 bytes ed25519 master pubkey of the hidden service.VERSIONis an one byte version field (default value'\x03')".onion checksum"is a constant stringCHECKSUMis truncated to two bytes before inserting it inonion_address
From the context, I understand it is a concatenation-- is that so?
If one has a working short Python\Node\Ruby snippet for that, it would be lovely. :)