-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Generate cryptographic nonces. -- -- According to the Wikipedia, a nonce is an arbitrary number used only -- once in a cryptographic communication. This package contain helper -- functions for generating nonces. -- -- There are many kinds of nonces used in different situations. It's not -- guarantee that by using the nonces from this package you won't have -- any security issues. Please make sure that the nonces generated via -- this package are usable on your design. @package nonce @version 1.0 -- | Usage of this module is very simple. Here is a sample GHCi run: -- --
-- *Crypto.Nonce> g <- new -- *Crypto.Nonce> nonce128 g -- "c\164\252\162f\207\245\ESC`\180p\DC4\234\223QP" -- *Crypto.Nonce> nonce128 g -- "\203C\190\138aI\158\194\146\&7\208\&7\ETX0\f\229" -- *Crypto.Nonce> nonce128url g -- "3RP-iEFT-6NrpCMsxigondMC" -- *Crypto.Nonce> nonce128url g -- "MVZH3Gi5zSKXJY-_qdtznxla" -- *Crypto.Nonce> nonce128url g -- "3f3cVNfuZT62-uGco1CBThci" -- *Crypto.Nonce> nonce128urlT g -- "iGMJyrRkw2QMp09SRy59s4Jx" -- *Crypto.Nonce> nonce128urlT g -- "WsHs0KwYiex3tsqQZ8b0119_" -- *Crypto.Nonce> nonce128urlT g -- "JWkLSX7qSFGu1Q3PHuExwurF" ---- -- The functions that generate nonces are not pure on purpose, since that -- makes it a lot harder to reuse the same nonce. module Crypto.Nonce -- | An encapsulated nonce generator. data Generator -- | Create a new nonce generator using the system entropy. new :: MonadIO m => m Generator -- | Generate a 128 bit nonce as a ByteString of 16 bytes. Each byte -- may have any value from 0 to 255. nonce128 :: MonadIO m => Generator -> m ByteString -- | Generate a 128 bit nonce as a ByteString of 24 bytes. Each byte -- is either a letter (upper or lowercase), a digit, a dash (-) -- or an underscore (_), which is the set of characters from the -- base64url encoding. In order to avoid any issues with padding, the -- generated nonce actually has 144 bits. nonce128url :: MonadIO m => Generator -> m ByteString -- | Same as nonce128url, but returns its result as Text -- instead. nonce128urlT :: MonadIO m => Generator -> m Text instance Typeable Generator instance Show Generator