saltine-0.0.0.4: Cryptography that's easy to digest (NaCl/libsodium bindings).

Copyright(c) Joseph Abrahamson 2013
LicenseMIT
Maintainerme@jspha.com
Stabilityexperimental
Portabilitynon-portable
Safe HaskellSafe
LanguageHaskell2010

Crypto.Saltine.Class

Description

Saltine type classes

Synopsis

Documentation

class IsEncoding a where Source

Class for all keys and nonces in Saltine which have a representation as Vector of Word8. encoded is a Prism of type Prism' (V.Vector Word8) a compatible with Control.Lens and is automatically deduced.

Minimal complete definition

encode, decode

Methods

encode :: a -> ByteString Source

decode :: ByteString -> Maybe a Source

encoded :: (Choice p, Applicative f) => p a (f a) -> p ByteString (f ByteString) Source

class IsNonce n where Source

A generic class for interacting with nonces.

Methods

zero :: n Source

Some privileged nonce value.

nudge :: n -> n Source

Some perturbation on nonces such that n /= nudge n with high probability. Since nonces are finite, repeats may happen in particularly small cases, but no nonces in Saltine are so small. This is not guaranteed to be difficult to predict---if a nonce had an Enum instance succ would be a good implementation excepting that succ is partial.