crypto-sodium (hackage): This is a collection of high-level cryptographic primitives based on Sodium, spiced up with extra type-safety of the Haskell type system.  Note: this package is experimental and WIP.  Cryptography is hard to do right and you should never try to implement it on your own, even if you have access to safe and secure cryptographic primitives. Luckily, D. J. Bernstein created NaCl.  NaCl was designed specifically to make it hard to use it incorrectly and thus save you from a disaster. It exposes high-level cryptographic algorithms with underlying implementations chosen for you, so you do not get flexibility, but you get security, which is more important.  Sodium is a reimplementation of NaCl with the goal to make it more portable across different platforms. With time, it started providing more than the same interface as NaCl. Nowadays it implements additional primitives and utility functions.  Crypto.Sodium.Init  Authenticated symmetric-key encryption: Crypto.Sodium.Encrypt.Symmetric  Message authentication codes: Crypto.Sodium.Mac  Authenticated public-key encryption: Crypto.Sodium.Encrypt.Public  Public-key signatures: Crypto.Sodium.Sign  Key derivation and generation: Crypto.Sodium.Key  Cryptographically-secure random: Crypto.Sodium.Random  Hashing: Crypto.Sodium.Hash
Keywords: cryptography|library|mpl|haskell|libsodium