Skip to main content

Module tor1

Module tor1 

Source
Expand description

An implementation of Tor’s current relay cell cryptography.

These are not very good algorithms; they were the best we could come up with in ~2002. They are somewhat inefficient, and vulnerable to tagging attacks. They should get replaced within the next several years. For information on some older proposed alternatives so far, see proposals 261, 295, and 298.

I am calling this design tor1; it does not have a generally recognized name.

Modules§

bench_utils
Benchmark utilities for the tor1 module.

Structs§

ClientInbound
An outbound client layer, decryption relay cells from a relay.
ClientOutbound
An outbound client layer, encrypting relay cells for a relay.
CryptState 🔒
A CryptState represents one layer of shared cryptographic state between a relay and a client for a single hop, in a single direction.
CryptStatePair
A pair of CryptStates shared between a client and a relay, one for the outbound (away from the client) direction, and one for the inbound (towards the client) direction.
RelayInbound
An inbound relay layer, encrypting relay cells for a client.
RelayOutbound
An outbound relay layer, decrypting relay cells from a client.

Constants§

DIGEST_RANGE 🔒
Location in the relay cell for our “Digest” field.
EMPTY_DIGEST 🔒
An all-zero digest value.
RECOGNIZED_RANGE 🔒
Location in the relay cell for our “recognized” field.
SENDME_TAG_LEN 🔒
Length of SENDME tag generated by this encryption method.