The HsOpenSSL package

HsOpenSSL is an OpenSSL binding for Haskell. It can generate RSA
and DSA keys, read and write PEM files, generate message digests,
sign and verify messages, encrypt and decrypt messages. It has
also some capabilities of creating SSL clients and servers.

Please note that this project has started at the time when there
were no pure-Haskell implementations of TLS. Now there is tls
package (http://hackage.haskell.org/package/tls), which looks
pretty saner than HsOpenSSL especially for initialisation and
error handlings. So PHO (the initial author of HsOpenSSL) wants to
encourage you to use and improve the tls package instead as long
as possible. The only problem is that the tls package has not
received as much review as OpenSSL from cryptography specialists
yet, thus we can't assume it's secure enough.