Message translator
char* | Translator::PaddRestOfPath (char *path, Size pathLen, Size peelLen) Padds rest of path field to the original length |
void* | Translator::Run (void *) The main method that do the things |
Translator::Translator (Mix * parent, LogFile * translatorLogFile) Translator constructor | |
Translator::~Translator () Translator destructor |
methods |
attributes
Message translator. Decrypts one peel from message that is sent using onion routing. In the decrypted peel it finds the information necessary to decide whether the message is at its destination or whether it should be send to further to another Mix.
This method translates the incoming chunk into the outcoming one.
First, the method decrypts the GMessage where is some information
useful for further chunk translation. The GMessage is encrypted
with public key of this Mix (the public key that was included into
the Mix's certificate during certification creation). By decrypting
this, Run() gets a symetric key that is used to decrypt information
about next possible recipients. The combination of asymetric and
symetric cryptography is used because we want to be able to have
more than one recipient in each peel.
After decryption by symetric key, we have to check whether there
is a final stop indication:
pathLen - Current path length.
peelLen - Length to which to padd the path.
translatorLogFile - Log file.
alphabetic index hierarchy of classes
generated by doc++