Introduction

Unlike some protocol libraries, SSP21-CPP does not provide I/O by default. The user of the library must bind the library callbacks to both the application code and to the network I/O.

This allows the user to bind the library to any transport, e.g. :

  • TCP/IP
  • UDP/IP
  • Serial ports

IStack

The primary interface used to interact with the library is ssp21::IStack.

There are a number of factory methods for both the initiator and the responder available that allow the user to create a shared_ptr<ssp21::IStack> for the available key modes.

IStack

The factory methods take a number of arguments that will be described in the following sections.

Integration

User applications must provide their own implementations of both IUpperLayer and ILowerLayer to integrate with IStack.

Tip

The integration test suite provides the simplest example of implementing these interfaces and integrating with the library's API. Alternatively, the proxy application is a real world integration with TCP/IP as the transport layer, but is more complex.

The user provided ILowerLayer transmits fully formatted SSP21 messages on behalf of the stack, and notifies the stack's IUpperLayer when raw data is available for reading.

The user provided IUpperLayer receives authenticated (and possibly decrypted) payload data from the stack. It uses the ILowerLayer provided by the stack to transmit user data.