Skip to content
Sathyanarayanan Gunasekaran edited this page Oct 29, 2013 · 3 revisions

Description of Initialization

Encoding Decision Module

The Encoding Decision Module controls initialization for the entire pluggable transport. It will reserve any resources necessary during this stage as well as initialize any global variables, in particular the sequence numbers. This includes any initialization that the Send/Receive Module requires, which is likely to be minimal.

After handling its own initialization, the Encoding Decision Module will initialize all the Encoding Modules. To do this, it will call Init() on each Encoding modules such that they can initialize their own resources. Next, the Encoding Decision Module will call Register() on each Encoding Module to get the valid parameters such that the Encoding Decision Module can decide how to encode the stream of data from Tor.

Finally, the initialization routine will establish the Upstream connection to Obfsproxy.

Encoding Modules

The Encoding Modules initialization should be simple. The call to Init() is likely to result in very little action by the Encoding Module, perhaps initializing state variables or establishing a connection to an image processing library.

The call to Register() is more involved, however. This will return the amount of data that should be handled by this particular module.

Clone this wiki locally