The digest of relay cells are running digests [ SHA_final() is never called ], so the digest of each cell is dependent on the previously computed digest destined for that node particular node. Hashing is seeded with values determine by the OR which responded with CREATED or REALY EXTENDED cell. I have noticed that, the payload of RELAY_COMMAND_RENDEZVOUS unlike CREATED OR RELAY EXTENDED cells made no provisions for the seeding bytes. This can be referenced in section 1.10 of https://gitweb.torproject.org/torspec.git?a=blob_plain;hb=HEAD;f=rend-spec.t... I'm in a state of confusion concerning how the digest of relay cells destined for hidden services should be computed. [1] should the digests be independent of previously computed digests destined for the hidden services? OR [2] it should be a running digest but not seeded with any seeding value.
I will like a little clarification on this.
Thanks