Network.TLS.SessionManager

tls-session-manager-0.0.7: In-memory TLS session DB and session ticket

Safe Haskell | None
Language | Haskell2010

Network.TLS.SessionManager

Description

In-memory TLS 1.2/1.3 session manager.

- Limitation: you can set the maximum size of the session data database.
- Automatic pruning: old session data over their lifetime are pruned automatically.
- Energy saving: no dedicate pruning thread is running when the size of session data database is zero.
- Replay resistance: each session data is used at most once to prevent replay attacks against 0RTT early data of TLS 1.3.

Synopsis

- newSessionManager :: Config -> IO SessionManager
- data Config
- defaultConfig :: Config
- ticketLifetime :: Config -> Int
- pruningDelay :: Config -> Int
- dbMaxSize :: Config -> Int

# Documentation

newSessionManager :: Config -> IO SessionManager #

Creating an in-memory session manager.

data Config #

Configuration for session managers.

defaultConfig :: Config #

ticketLifetime: 2 hours (7200 seconds), pruningDelay: 10 minutes (600 seconds), dbMaxSize: 1000 entries.

ticketLifetime :: Config -> Int #

Ticket lifetime in seconds.

pruningDelay :: Config -> Int #

Pruning delay in seconds. This is set to `reaperDelay`.

dbMaxSize :: Config -> Int #

The limit size of session data entries.