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:
PUBKEY
is the 32 bytes ed25519 master pubkey of the hidden service.VERSION
is an one byte version field (default value'\x03'
)".onion checksum"
is a constant stringCHECKSUM
is 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. :)