### 1.3 Overview ¶

libfko functionality can be divided into two roles. One is the creation of an encrypted SPA message together with an HMAC for authentication. The other is the taking an encrypted SPA message to authenticate, decode, parse, and extract the original data.

The actual SPA data handling and operations are set within a context. The context represents a single SPA message and provides configuration parameters and data settings for defining that message. All operations on the data occur within that context.

Some operations on the context must occur before others. Details of these dependencies are covered in Creating a SPA Message.

With libfko, working with SPA message data basically consists of the following steps in order:

- Create a new context
- Work with (get/set) the SPA data fields
- Destroy the context