Version 1.3.2
DSSL library consists of the following functional parts:
Packet layer receives captured network packets and process the link (Ethernet) and network (IP) protocols, detects TCP packets and directs them to the TCP layer.
TCP layer resolves packet's TCP session object using a table of all active TCP sessions it maintains. Then, the session packets are sorted and reassembled into client-to-server and server-to-client TCP streams.
When a new chunk of reassembled data becomes available, the TCP layer passes it to the data callback routine for further processing. For plaintext TCP traffic (no SSL), the output from TCP session reassembly is headed directly to user-provided callback function for application-level processing. If SSL encryption is present, the reassembled traffic first passes through the SSL Decryption layer before it reaches the application.
This module reconstructs the SSL protocol carried over its input TCP payload data. Then, using SSL server’s private key provided, it decrypts the SSL payload and passes the decrypted plaintext to the application-defined callback routine for processing.
SSL Decryption layer's design allows it to be used independently from the other parts of the library. This simplifies the task of adding SSL encryption support for applications that already have their own TCP reassembly and session management code.