Under the Hood
Now that you know how to use SafeTalk, I’ll
explain how it works, starting with an overview of
SafeTalk’s architecture. After that,
I’ll walk you through the code for each class.
Architecture
The SafeTalk
application has five major components. The Session
class is the center of this universe; it manages the connection with
a remote SafeTalk application. The other four
classes orbit around Session, each with a specific
job:
SessionServerlistens for incoming socket connections and notifiesSessionif 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 theSession.Session, in turn, notifiesSafeTalk, and the incoming data is shown in the lower text area of theSafeTalkwindow.The
SafeTalkclass itself is the GUI. It’s a subclass ofFrame.KeyManagermanages the user’s key pair as well as the public keys of recipients.SessionusesKeyManagerwhen it exchanges a session key at the beginning of a conversation.SafeTalkusesKeyManagerto import and export keys. This class is presented in Chapter 5.
Figure 10.2 shows the relationships of the
SafeTalk classes.
![]() |
Session
The Session class manages the niggly ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access
