# Applications and libraries/Cryptography

### From HaskellWiki

*This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.*

## Libraries

See the Hackage Cryptography section for a list of current libraries.

- Crypto-API
- A generic interface (type classes) for cryptographic algorithms, modes of operation, random number generation, and entropy acquisition.

- CryptoCipher
- A growing collection of pure haskell implementation of ciphers (AES, Camellia, RC4) and key exchange algorithms (RSA, DH, DSA).

- CryptoHash
- A very fast implementation of most common crypto hashes algorithms (MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512, SHA512-t, RIPEMD160, SKEIN256, SKEIN512).

- DRBG
- Deterministic random bit generators (aka PRNGs) based on NIST SP 800-90.

- hecc
- Elliptical curve cryptography

- PWStore-Fast
- Fast, safe, password storage.

- CPSA
- The Cryptographic Protocol Shape Analyzer uses Strand Space to validate protocols.

- The Haskell Cryptographic Library
- A library of cryptographic functions collected together in one package.

- RSA
- The library implements the RSA encryption and signature algorithms for arbitrarily-sized ByteStrings.

- PAM authentication
- PAM (Pluggable Authentication Modules) is a library that makes the task of authenticating a user easier for application developers. Instead of writing a backend for every authentication library (kerberos, shadow, ldap etc.) you only have to write an interface for pam.

- Shaskell
- A SHA2 library for sha256 and sha512 hashes, written in pure Haskell.

- HazGuard
- An (incomplete) implementation of OpenPGP in Haskell.

*This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.*