confusion about RELAY EXTEND cell payloads & other little Tor questions

Christian Seberino chris at
Wed Jan 17 19:22:30 UTC 2007

>> 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.

Thanks!  You may want to consider changing wording to refer to this in
spec as 'data' rather than 'payload'.

> 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.

Did you mean to say each type of Relay cell has different *data*?

> 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.

I read section '4.4 Integrity checking on streams' in design doc.  If I
understand correctly, we have an initial derivative hash based on result
of Diffie-Hellman exchange.  Routers keep appending all Relay cells to
that initial derivative hash to create new hashes whose first 4 bytes form
digest fields.

In order to keep calculating this running digest, it appears ALL Relay
cells must be saved for entire lifetime of session.  Why? Because how else
can you calculate the current digest? (..since current digest is a hash of
all previous Relay cells!!)


More information about the tor-dev mailing list