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) highly encourages you to use and improve the tls package instead as long as possible.