clientsession-0.0.1: Store session data in a cookie.Source codeContentsIndex
Web.ClientSession
Contents
Automatic key generation
Actual encryption/decryption
Classes
Key types and classes.
Synopsis
getKey :: FilePath -> IO Word256
defaultKeyFile :: String
getDefaultKey :: IO Word256
encrypt :: (IsByteString b, AESKey k) => k -> b -> String
decrypt :: (AESKey k, Monad m, IsByteString b) => k -> String -> m b
class IsByteString a where
toByteString :: a -> ByteString
fromByteString :: ByteString -> a
type Word256 = LargeKey Word64 Word192
class AESKeyIndirection a => AESKey a
Automatic key generation
getKeySource
:: FilePathFile name where key is stored.
-> IO Word256The actual 256-bit key.
Get a 256-bit key from the given text file. If the file does not exist, or did not contain enough bits, a random key will be generated and stored in that file.
defaultKeyFile :: StringSource
The default key file.
getDefaultKey :: IO Word256Source
Simply calls getKey "client_session_key.aes"
Actual encryption/decryption
encryptSource
:: (IsByteString b, AESKey k)
=> kThe data to encrypt.
-> bEncrypted and encoded data.
-> String
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
:: (AESKey k, Monad m, IsByteString b)
=> kData to decrypt.
-> StringThe decrypted data, if possible.
-> m b
Base-64 decode and decrypt with the given key, if possible. 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, this function fails.
Classes
class IsByteString a whereSource
A class for anything which can become a Data.ByteString. The String instance uses UTF8 encoding.
Methods
toByteString :: a -> ByteStringSource
fromByteString :: ByteString -> aSource
show/hide Instances
Key types and classes.
type Word256 = LargeKey Word64 Word192Source
class AESKeyIndirection a => AESKey a Source
show/hide Instances
Produced by Haddock version 2.6.0