Cryptography
The libraries in this subsection are as follows:
SHAandRSA: Pure implementations of SHA routines and RSA encryption and signature algorithms. Not the fastest, but plain Haskell without any FFI. Created by Galois Inc.HsOpenSSL: Partial bindings to OpenSSL via FFI.cryptonite: Low-level cryptography primitives with varying API's and probably of varying quality.skein: Bindings to the skein family of fast and secure cryptographic hash functions.
For really robust, production-ready cryptography applications, one should look for bindings to existing cryptography libraries. For instance, the C implementation of the Skein hash function family has Haskell bindings in the similarly named library skein.
Although Haskell can be used to implement cryptographic algorithms, many of the algorithms rely on bit-twiddling for security in ways that GHC's code optimizations can potentially negate. This makes code vulnerable to side-channel attacks.
That said, some pure Haskell implementations of some...