clientsession-0.3.0: Store session data in a cookie.

Web.ClientSession

Contents

Synopsis

Automatic key generation

getKeySource

Arguments

:: FilePath

File name where key is stored.

-> IO Key

The actual key.

Get a key from the given text file.

If the file does not exist a random key will be generated and stored in that file.

defaultKeyFile :: StringSource

The default key file.

getDefaultKey :: IO KeySource

Simply calls getKey "client_session_key.aes"

Actual encryption/decryption

encryptSource

Arguments

:: Key

The key used for encryption.

-> ByteString

The data to encrypt.

-> IO String

Encrypted and encoded data.

Encrypt with the given key and base-64 encode. A hash is stored inside the encrypted key so that, upon decryption, integrity can be guaranteed.

decryptSource

Arguments

:: (Monad m, Failure ClientSessionException m) 
=> Key

The key used for encryption.

-> String

Data to decrypt.

-> m ByteString

The decrypted data, if possible.

Base-64 decode and decrypt with the given key, if possible. Calls failure if either the original string is not a valid base-64 encoded string, or the hash at the beginning of the decrypted string does not match.

Exceptions