Under the Hood
Now that you know how to use
explain how it works, starting with an overview of
SafeTalk’s architecture. After that,
I’ll walk you through the code for each class.
application has five major components. The
class is the center of this universe; it manages the connection with
SafeTalk application. The other four
classes orbit around
Session, each with a specific
SessionServerlistens for incoming socket connections and notifies
Sessionif a connection is received. It exists primarily to isolate the action of listening for connections into a thread that’s separate from the main application thread.
Receiveris used while a conversation is in progress. It lives in its own thread, listening for incoming data and notifying the
Session, in turn, notifies
SafeTalk, and the incoming data is shown in the lower text area of the
SafeTalkclass itself is the GUI. It’s a subclass of
KeyManagermanages the user’s key pair as well as the public keys of recipients.
KeyManagerwhen it exchanges a session key at the beginning of a conversation.
KeyManagerto import and export keys. This class is presented in Chapter 5.
Figure 10.2 shows the relationships of the
Session class manages the niggly ...