confusion about RELAY EXTEND cell payloads & other little Tor questions

Roger Dingledine arma at
Wed Jan 17 06:06:13 UTC 2007

On Tue, Jan 16, 2007 at 03:30:15PM -0800, Christian Seberino wrote:
> Tor spec says Relay cell payloads consist of:
> relay command
> streamID
> digest
> length
> data

Yep. (Though you left out 'recognized'.)

> Yet in another place it says Relay *EXTEND* cell payloads consist of:
> address
> port
> onion skin
> indentify fingerprint

Those are the "data" in a relay cell.

> Are EXTENDs somehow special & have different payloads than other Relay cells?

You can look at it that way if you like. Actually, all relay cells are
special. They each have different payloads than other relay cells. That's
why there's a relay command element, to specify how to interpret them.

> ----
> Also, why is address field of EXTEND hard wired to IPv4 only? What about
> IPv6?

Because for now, Tor servers are assumed to have an IPv4 address. If
they don't, that breaks our clique assumption ("all Tor servers can
reach all Tor servers"), and we can't handle that yet.

> ----
> Some places talk about seeding a hash.  I assume this means adding unique
> stuff to a SHA1 hash?? Where are the details of 'seeding hashes' found?

It means initializing the SHA1 hash with whatever you seed it with. SHA1
is nice in that you can feed it stuff as you go. That is, you can have a
running SHA1 hash of a stream of bytes, and the intermediate hash values
are meaningful.

See tor-design.pdf for more details about the integrity-checking hashes.


More information about the tor-dev mailing list