/usr/share/doc/libghc-hsopenssl-doc/html/OpenSSL.html is in libghc-hsopenssl-doc 0.11.4.11-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>OpenSSL</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_OpenSSL.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/OpenSSL.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">HsOpenSSL-0.11.4.11: Partial OpenSSL binding for Haskell</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">OpenSSL</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>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.</p><p>Please note that this project has started at the time when there
were no pure-Haskell implementations of TLS. Now there is tls
package (<a href="http://hackage.haskell.org/package/tls">http://hackage.haskell.org/package/tls</a>), 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.</p><p>Features that aren't (yet) supported:</p><dl><dt><em>SSL network connection</em></dt><dd>ssl(3) functionalities aren't fully
covered yet. See <a href="OpenSSL-Session.html">OpenSSL.Session</a>.</dd><dt><em>Complete coverage of Low-level API to symmetric ciphers</em></dt><dd>Only
high-level APIs (EVP and BIO) are fully available. But I believe
no one will be lost without functions like <code>DES_set_odd_parity</code>.</dd><dt><em>Low-level API to asymmetric ciphers</em></dt><dd>Only a high-level API
(EVP) is available. But I believe no one will complain about the
absence of functions like <code>RSA_public_encrypt</code>.</dd><dt><em>X.509 v3 extension handling</em></dt><dd>It should be supported in the
future.</dd><dt><em>Low-level API to message digest functions</em></dt><dd>Just use EVP
instead of something like <code>MD5_Update</code>.</dd><dt><em>API to PKCS#12 functionality</em></dt><dd>It should be covered someday.</dd><dt><em>BIO</em></dt><dd>BIO isn't needed because we are Haskell hackers. Though
HsOpenSSL itself uses BIO internally.</dd><dt><em>ENGINE cryptographic module</em></dt><dd>The default implementations work
very well, don't they?</dd></dl></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:withOpenSSL">withOpenSSL</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a id="v:withOpenSSL" class="def">withOpenSSL</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a -> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/System-IO.html#t:IO">IO</a> a <a href="src/OpenSSL.html#withOpenSSL" class="link">Source</a> <a href="#v:withOpenSSL" class="selflink">#</a></p><div class="doc"><p>Computation of <code><code><a href="OpenSSL.html#v:withOpenSSL">withOpenSSL</a></code> action</code> initializes the OpenSSL
library as necessary, and computes <code>action</code>. Every application that
uses HsOpenSSL must wrap any operations involving OpenSSL with
<code><a href="OpenSSL.html#v:withOpenSSL">withOpenSSL</a></code>, or they might crash:</p><pre>module Main where
import OpenSSL
main :: IO ()
main = withOpenSSL $
do ...</pre><p>Since 0.10.3.5, <code><a href="OpenSSL.html#v:withOpenSSL">withOpenSSL</a></code> is safe to be applied
redundantly. Library authors may wish to wrap their functions not
to force their users to think about initialization:</p><pre>get :: URI -> IO Response
get uri = withOpenSSL $ internalImplementationOfGet uri</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>
|