This file is indexed.

/usr/share/doc/libghc-cryptohash-doc/html/Crypto-Hash.html is in libghc-cryptohash-doc 0.11.6-6.

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
<!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>Crypto.Hash</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Crypto-Hash.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Crypto-Hash.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">cryptohash-0.11.6: collection of crypto hashes, fast, pure and practical</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>License</th><td>BSD-style</td></tr><tr><th>Maintainer</th><td>Vincent Hanquez &lt;vincent@snarc.org&gt;</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Portability</th><td>unknown</td></tr><tr><th>Safe Haskell</th><td>Trustworthy</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Crypto.Hash</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Types</a></li><li><a href="#g:2">Functions</a></li><li><a href="#g:3">hash algorithms</a></li><li><a href="#g:4">MAC algorithms</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Generalized cryptographic hash interface, that you can use with cryptographic hash
 algorithm that belong to the HashAlgorithm type class.</p><pre>import Crypto.Hash

sha1 :: ByteString -&gt; Digest SHA1
sha1 = hash

hexSha3_512 :: ByteString -&gt; String
hexSha3_512 bs = show (hash bs :: Digest SHA3_512)</pre></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"><span class="keyword">class</span> <a href="#t:HashAlgorithm">HashAlgorithm</a> a <span class="keyword">where</span><ul class="subs"><li><a href="#v:hashBlockSize">hashBlockSize</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a></li><li><a href="#v:hashInit">hashInit</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a</li><li><a href="#v:hashUpdates">hashUpdates</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a>] -&gt; <a href="Crypto-Hash.html#t:Context">Context</a> a</li><li><a href="#v:hashFinalize">hashFinalize</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a</li><li><a href="#v:digestFromByteString">digestFromByteString</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Crypto-Hash.html#t:Digest">Digest</a> a)</li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:HashFunctionBS">HashFunctionBS</a> a = <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a</li><li class="src short"><span class="keyword">type</span> <a href="#t:HashFunctionLBS">HashFunctionLBS</a> a = <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:Context">Context</a> a</li><li class="src short"><span class="keyword">data</span> <a href="#t:Digest">Digest</a> a</li><li class="src short"><a href="#v:digestToByteString">digestToByteString</a> :: <a href="Crypto-Hash.html#t:Digest">Digest</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:digestToHexByteString">digestToHexByteString</a> :: <a href="Crypto-Hash.html#t:Digest">Digest</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a></li><li class="src short"><a href="#v:hash">hash</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a</li><li class="src short"><a href="#v:hashlazy">hashlazy</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a</li><li class="src short"><a href="#v:hashUpdate">hashUpdate</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Context">Context</a> a</li><li class="src short"><a href="#v:hashInitAlg">hashInitAlg</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> alg =&gt; alg -&gt; <a href="Crypto-Hash.html#t:Context">Context</a> alg</li><li class="src short"><span class="keyword">data</span> <a href="#t:MD2">MD2</a> = <a href="#v:MD2">MD2</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:MD4">MD4</a> = <a href="#v:MD4">MD4</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:MD5">MD5</a> = <a href="#v:MD5">MD5</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA1">SHA1</a> = <a href="#v:SHA1">SHA1</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA224">SHA224</a> = <a href="#v:SHA224">SHA224</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA256">SHA256</a> = <a href="#v:SHA256">SHA256</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA384">SHA384</a> = <a href="#v:SHA384">SHA384</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA512">SHA512</a> = <a href="#v:SHA512">SHA512</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:RIPEMD160">RIPEMD160</a> = <a href="#v:RIPEMD160">RIPEMD160</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Tiger">Tiger</a> = <a href="#v:Tiger">Tiger</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA3_224">SHA3_224</a> = <a href="#v:SHA3_224">SHA3_224</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA3_256">SHA3_256</a> = <a href="#v:SHA3_256">SHA3_256</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA3_384">SHA3_384</a> = <a href="#v:SHA3_384">SHA3_384</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:SHA3_512">SHA3_512</a> = <a href="#v:SHA3_512">SHA3_512</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Skein256_224">Skein256_224</a> = <a href="#v:Skein256_224">Skein256_224</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Skein256_256">Skein256_256</a> = <a href="#v:Skein256_256">Skein256_256</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Skein512_224">Skein512_224</a> = <a href="#v:Skein512_224">Skein512_224</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Skein512_256">Skein512_256</a> = <a href="#v:Skein512_256">Skein512_256</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Skein512_384">Skein512_384</a> = <a href="#v:Skein512_384">Skein512_384</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Skein512_512">Skein512_512</a> = <a href="#v:Skein512_512">Skein512_512</a></li><li class="src short"><span class="keyword">data</span> <a href="#t:Whirlpool">Whirlpool</a> = <a href="#v:Whirlpool">Whirlpool</a></li><li class="src short"><span class="keyword">newtype</span> <a href="#t:HMAC">HMAC</a> a = <a href="#v:HMAC">HMAC</a> {<ul class="subs"><li><a href="#v:hmacGetDigest">hmacGetDigest</a> :: <a href="Crypto-Hash.html#t:Digest">Digest</a> a</li></ul>}</li><li class="src short"><a href="#v:hmac">hmac</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:HMAC">HMAC</a> a</li><li class="src short"><a href="#v:hmacAlg">hmacAlg</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:HMAC">HMAC</a> a</li></ul></div><div id="interface"><h1 id="g:1">Types</h1><div class="top"><p class="src"><span class="keyword">class</span> <a name="t:HashAlgorithm" class="def">HashAlgorithm</a> a <span class="keyword">where</span> <a href="src/Crypto-Hash-Types.html#HashAlgorithm" class="link">Source</a></p><div class="doc"><p>Class representing hashing algorithms.</p><p>The hash algorithm is built over 3 primitives:</p><ul><li>init     : create a new hashing context</li><li>updates  : update the hashing context with some strict bytestrings
              and return the new context</li><li>finalize : finalize the context into a digest</li></ul></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:hashBlockSize" class="def">hashBlockSize</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Int.html#t:Int">Int</a> <a href="src/Crypto-Hash-Types.html#hashBlockSize" class="link">Source</a></p><div class="doc"><p>Block size in bytes the hash algorithm operates on</p></div><p class="src"><a name="v:hashInit" class="def">hashInit</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a <a href="src/Crypto-Hash-Types.html#hashInit" class="link">Source</a></p><div class="doc"><p>Initialize a new context for this hash algorithm</p></div><p class="src"><a name="v:hashUpdates" class="def">hashUpdates</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a>] -&gt; <a href="Crypto-Hash.html#t:Context">Context</a> a <a href="src/Crypto-Hash-Types.html#hashUpdates" class="link">Source</a></p><div class="doc"><p>Update the context with a list of strict bytestring,
 and return a new context with the updates.</p></div><p class="src"><a name="v:hashFinalize" class="def">hashFinalize</a> :: <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a <a href="src/Crypto-Hash-Types.html#hashFinalize" class="link">Source</a></p><div class="doc"><p>Finalize a context and return a digest.</p></div><p class="src"><a name="v:digestFromByteString" class="def">digestFromByteString</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Crypto-Hash.html#t:Digest">Digest</a> a) <a href="src/Crypto-Hash-Types.html#digestFromByteString" class="link">Source</a></p><div class="doc"><p>Try to convert a binary digest bytestring to a digest.</p></div></div><div class="subs instances"><p id="control.i:HashAlgorithm" class="caption collapser" onclick="toggleSection('i:HashAlgorithm')">Instances</p><div id="section.i:HashAlgorithm" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_512">Skein512_512</a></span> <a href="src/Crypto-Hash-Types.html#line-173" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_384">Skein512_384</a></span> <a href="src/Crypto-Hash-Types.html#line-171" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_256">Skein512_256</a></span> <a href="src/Crypto-Hash-Types.html#line-169" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_224">Skein512_224</a></span> <a href="src/Crypto-Hash-Types.html#line-167" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein256_256">Skein256_256</a></span> <a href="src/Crypto-Hash-Types.html#line-164" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein256_224">Skein256_224</a></span> <a href="src/Crypto-Hash-Types.html#line-162" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_512">SHA3_512</a></span> <a href="src/Crypto-Hash-Types.html#line-159" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_384">SHA3_384</a></span> <a href="src/Crypto-Hash-Types.html#line-157" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_256">SHA3_256</a></span> <a href="src/Crypto-Hash-Types.html#line-155" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_224">SHA3_224</a></span> <a href="src/Crypto-Hash-Types.html#line-153" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Tiger">Tiger</a></span> <a href="src/Crypto-Hash-Types.html#line-150" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Whirlpool">Whirlpool</a></span> <a href="src/Crypto-Hash-Types.html#line-148" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:RIPEMD160">RIPEMD160</a></span> <a href="src/Crypto-Hash-Types.html#line-146" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA512">SHA512</a></span> <a href="src/Crypto-Hash-Types.html#line-143" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA384">SHA384</a></span> <a href="src/Crypto-Hash-Types.html#line-141" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA256">SHA256</a></span> <a href="src/Crypto-Hash-Types.html#line-139" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA224">SHA224</a></span> <a href="src/Crypto-Hash-Types.html#line-137" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA1">SHA1</a></span> <a href="src/Crypto-Hash-Types.html#line-135" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:MD5">MD5</a></span> <a href="src/Crypto-Hash-Types.html#line-133" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:MD4">MD4</a></span> <a href="src/Crypto-Hash-Types.html#line-131" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:MD2">MD2</a></span> <a href="src/Crypto-Hash-Types.html#line-129" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:HashFunctionBS" class="def">HashFunctionBS</a> a = <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a <a href="src/Crypto-Hash.html#HashFunctionBS" class="link">Source</a></p><div class="doc"><p>Alias to a single pass hash function that operate on a strict bytestring</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:HashFunctionLBS" class="def">HashFunctionLBS</a> a = <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a <a href="src/Crypto-Hash.html#HashFunctionLBS" class="link">Source</a></p><div class="doc"><p>Alias to a single pass hash function that operate on a lazy bytestring</p></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Context" class="def">Context</a> a <a href="src/Crypto-Hash-Types.html#Context" class="link">Source</a></p><div class="doc"><p>Represent a context for a given hash algorithm.</p></div><div class="subs instances"><p id="control.i:Context" class="caption collapser" onclick="toggleSection('i:Context')">Instances</p><div id="section.i:Context" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-byteable-doc/html/Data-Byteable.html#t:Byteable">Byteable</a> (<a href="Crypto-Hash.html#t:Context">Context</a> a)</span> <a href="src/Crypto-Hash-Types.html#line-56" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Digest" class="def">Digest</a> a <a href="src/Crypto-Hash-Types.html#Digest" class="link">Source</a></p><div class="doc"><p>Represent a digest for a given hash algorithm.</p></div><div class="subs instances"><p id="control.i:Digest" class="caption collapser" onclick="toggleSection('i:Digest')">Instances</p><div id="section.i:Digest" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Crypto-Hash.html#t:Digest">Digest</a> a)</span> <a href="src/Crypto-Hash-Types.html#line-65" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Ord.html#t:Ord">Ord</a> (<a href="Crypto-Hash.html#t:Digest">Digest</a> a)</span> <a href="src/Crypto-Hash-Types.html#line-65" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> (<a href="Crypto-Hash.html#t:Digest">Digest</a> a)</span> <a href="src/Crypto-Hash-Types.html#line-75" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-byteable-doc/html/Data-Byteable.html#t:Byteable">Byteable</a> (<a href="Crypto-Hash.html#t:Digest">Digest</a> a)</span> <a href="src/Crypto-Hash-Types.html#line-67" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:2">Functions</h1><div class="top"><p class="src"><a name="v:digestToByteString" class="def">digestToByteString</a> :: <a href="Crypto-Hash.html#t:Digest">Digest</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> <a href="src/Crypto-Hash-Types.html#digestToByteString" class="link">Source</a></p><div class="doc"><div class="warning"><p>Deprecated: use toBytes from byteable:Data.Byteable</p></div><p>return the binary bytestring. deprecated use toBytes.</p></div></div><div class="top"><p class="src"><a name="v:digestToHexByteString" class="def">digestToHexByteString</a> :: <a href="Crypto-Hash.html#t:Digest">Digest</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> <a href="src/Crypto-Hash.html#digestToHexByteString" class="link">Source</a></p><div class="doc"><p>Return the hexadecimal (base16) bytestring of the digest</p></div></div><div class="top"><p class="src"><a name="v:hash" class="def">hash</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a <a href="src/Crypto-Hash.html#hash" class="link">Source</a></p><div class="doc"><p>Hash a strict bytestring into a digest.</p></div></div><div class="top"><p class="src"><a name="v:hashlazy" class="def">hashlazy</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString-Lazy.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Digest">Digest</a> a <a href="src/Crypto-Hash.html#hashlazy" class="link">Source</a></p><div class="doc"><p>Hash a lazy bytestring into a digest.</p></div></div><div class="top"><p class="src"><a name="v:hashUpdate" class="def">hashUpdate</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a =&gt; <a href="Crypto-Hash.html#t:Context">Context</a> a -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="Crypto-Hash.html#t:Context">Context</a> a <a href="src/Crypto-Hash.html#hashUpdate" class="link">Source</a></p><div class="doc"><p>run hashUpdates on one single bytestring and return the updated context.</p></div></div><div class="top"><p class="src"><a name="v:hashInitAlg" class="def">hashInitAlg</a> :: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> alg =&gt; alg -&gt; <a href="Crypto-Hash.html#t:Context">Context</a> alg <a href="src/Crypto-Hash.html#hashInitAlg" class="link">Source</a></p><div class="doc"><p>Initialize a new context for a specified hash algorithm</p></div></div><h1 id="g:3">hash algorithms</h1><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:MD2" class="def">MD2</a> <a href="src/Crypto-Hash.html#MD2" class="link">Source</a></p><div class="doc"><p>MD2 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:MD2" class="def">MD2</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:MD2" class="caption collapser" onclick="toggleSection('i:MD2')">Instances</p><div id="section.i:MD2" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:MD2">MD2</a></span> <a href="src/Crypto-Hash.html#line-129" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:MD2">MD2</a></span> <a href="src/Crypto-Hash.html#line-129" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:MD4" class="def">MD4</a> <a href="src/Crypto-Hash.html#MD4" class="link">Source</a></p><div class="doc"><p>MD4 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:MD4" class="def">MD4</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:MD4" class="caption collapser" onclick="toggleSection('i:MD4')">Instances</p><div id="section.i:MD4" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:MD4">MD4</a></span> <a href="src/Crypto-Hash.html#line-131" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:MD4">MD4</a></span> <a href="src/Crypto-Hash.html#line-131" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:MD5" class="def">MD5</a> <a href="src/Crypto-Hash.html#MD5" class="link">Source</a></p><div class="doc"><p>MD5 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:MD5" class="def">MD5</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:MD5" class="caption collapser" onclick="toggleSection('i:MD5')">Instances</p><div id="section.i:MD5" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:MD5">MD5</a></span> <a href="src/Crypto-Hash.html#line-133" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:MD5">MD5</a></span> <a href="src/Crypto-Hash.html#line-133" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA1" class="def">SHA1</a> <a href="src/Crypto-Hash.html#SHA1" class="link">Source</a></p><div class="doc"><p>SHA1 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA1" class="def">SHA1</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA1" class="caption collapser" onclick="toggleSection('i:SHA1')">Instances</p><div id="section.i:SHA1" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA1">SHA1</a></span> <a href="src/Crypto-Hash.html#line-135" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA1">SHA1</a></span> <a href="src/Crypto-Hash.html#line-135" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA224" class="def">SHA224</a> <a href="src/Crypto-Hash.html#SHA224" class="link">Source</a></p><div class="doc"><p>SHA224 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA224" class="def">SHA224</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA224" class="caption collapser" onclick="toggleSection('i:SHA224')">Instances</p><div id="section.i:SHA224" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA224">SHA224</a></span> <a href="src/Crypto-Hash.html#line-137" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA224">SHA224</a></span> <a href="src/Crypto-Hash.html#line-137" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA256" class="def">SHA256</a> <a href="src/Crypto-Hash.html#SHA256" class="link">Source</a></p><div class="doc"><p>SHA256 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA256" class="def">SHA256</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA256" class="caption collapser" onclick="toggleSection('i:SHA256')">Instances</p><div id="section.i:SHA256" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA256">SHA256</a></span> <a href="src/Crypto-Hash.html#line-139" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA256">SHA256</a></span> <a href="src/Crypto-Hash.html#line-139" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA384" class="def">SHA384</a> <a href="src/Crypto-Hash.html#SHA384" class="link">Source</a></p><div class="doc"><p>SHA384 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA384" class="def">SHA384</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA384" class="caption collapser" onclick="toggleSection('i:SHA384')">Instances</p><div id="section.i:SHA384" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA384">SHA384</a></span> <a href="src/Crypto-Hash.html#line-141" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA384">SHA384</a></span> <a href="src/Crypto-Hash.html#line-141" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA512" class="def">SHA512</a> <a href="src/Crypto-Hash.html#SHA512" class="link">Source</a></p><div class="doc"><p>SHA512 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA512" class="def">SHA512</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA512" class="caption collapser" onclick="toggleSection('i:SHA512')">Instances</p><div id="section.i:SHA512" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA512">SHA512</a></span> <a href="src/Crypto-Hash.html#line-143" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA512">SHA512</a></span> <a href="src/Crypto-Hash.html#line-143" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:RIPEMD160" class="def">RIPEMD160</a> <a href="src/Crypto-Hash.html#RIPEMD160" class="link">Source</a></p><div class="doc"><p>RIPEMD160 cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:RIPEMD160" class="def">RIPEMD160</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:RIPEMD160" class="caption collapser" onclick="toggleSection('i:RIPEMD160')">Instances</p><div id="section.i:RIPEMD160" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:RIPEMD160">RIPEMD160</a></span> <a href="src/Crypto-Hash.html#line-146" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:RIPEMD160">RIPEMD160</a></span> <a href="src/Crypto-Hash.html#line-146" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Tiger" class="def">Tiger</a> <a href="src/Crypto-Hash.html#Tiger" class="link">Source</a></p><div class="doc"><p>Tiger cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Tiger" class="def">Tiger</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Tiger" class="caption collapser" onclick="toggleSection('i:Tiger')">Instances</p><div id="section.i:Tiger" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Tiger">Tiger</a></span> <a href="src/Crypto-Hash.html#line-150" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Tiger">Tiger</a></span> <a href="src/Crypto-Hash.html#line-150" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA3_224" class="def">SHA3_224</a> <a href="src/Crypto-Hash.html#SHA3_224" class="link">Source</a></p><div class="doc"><p>SHA3 (224 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA3_224" class="def">SHA3_224</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA3_224" class="caption collapser" onclick="toggleSection('i:SHA3_224')">Instances</p><div id="section.i:SHA3_224" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA3_224">SHA3_224</a></span> <a href="src/Crypto-Hash.html#line-153" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_224">SHA3_224</a></span> <a href="src/Crypto-Hash.html#line-153" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA3_256" class="def">SHA3_256</a> <a href="src/Crypto-Hash.html#SHA3_256" class="link">Source</a></p><div class="doc"><p>SHA3 (256 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA3_256" class="def">SHA3_256</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA3_256" class="caption collapser" onclick="toggleSection('i:SHA3_256')">Instances</p><div id="section.i:SHA3_256" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA3_256">SHA3_256</a></span> <a href="src/Crypto-Hash.html#line-155" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_256">SHA3_256</a></span> <a href="src/Crypto-Hash.html#line-155" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA3_384" class="def">SHA3_384</a> <a href="src/Crypto-Hash.html#SHA3_384" class="link">Source</a></p><div class="doc"><p>SHA3 (384 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA3_384" class="def">SHA3_384</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA3_384" class="caption collapser" onclick="toggleSection('i:SHA3_384')">Instances</p><div id="section.i:SHA3_384" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA3_384">SHA3_384</a></span> <a href="src/Crypto-Hash.html#line-157" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_384">SHA3_384</a></span> <a href="src/Crypto-Hash.html#line-157" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:SHA3_512" class="def">SHA3_512</a> <a href="src/Crypto-Hash.html#SHA3_512" class="link">Source</a></p><div class="doc"><p>SHA3 (512 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:SHA3_512" class="def">SHA3_512</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:SHA3_512" class="caption collapser" onclick="toggleSection('i:SHA3_512')">Instances</p><div id="section.i:SHA3_512" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:SHA3_512">SHA3_512</a></span> <a href="src/Crypto-Hash.html#line-159" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:SHA3_512">SHA3_512</a></span> <a href="src/Crypto-Hash.html#line-159" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Skein256_224" class="def">Skein256_224</a> <a href="src/Crypto-Hash.html#Skein256_224" class="link">Source</a></p><div class="doc"><p>Skein256 (224 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Skein256_224" class="def">Skein256_224</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Skein256_224" class="caption collapser" onclick="toggleSection('i:Skein256_224')">Instances</p><div id="section.i:Skein256_224" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Skein256_224">Skein256_224</a></span> <a href="src/Crypto-Hash.html#line-162" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein256_224">Skein256_224</a></span> <a href="src/Crypto-Hash.html#line-162" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Skein256_256" class="def">Skein256_256</a> <a href="src/Crypto-Hash.html#Skein256_256" class="link">Source</a></p><div class="doc"><p>Skein256 (256 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Skein256_256" class="def">Skein256_256</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Skein256_256" class="caption collapser" onclick="toggleSection('i:Skein256_256')">Instances</p><div id="section.i:Skein256_256" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Skein256_256">Skein256_256</a></span> <a href="src/Crypto-Hash.html#line-164" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein256_256">Skein256_256</a></span> <a href="src/Crypto-Hash.html#line-164" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Skein512_224" class="def">Skein512_224</a> <a href="src/Crypto-Hash.html#Skein512_224" class="link">Source</a></p><div class="doc"><p>Skein512 (224 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Skein512_224" class="def">Skein512_224</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Skein512_224" class="caption collapser" onclick="toggleSection('i:Skein512_224')">Instances</p><div id="section.i:Skein512_224" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Skein512_224">Skein512_224</a></span> <a href="src/Crypto-Hash.html#line-167" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_224">Skein512_224</a></span> <a href="src/Crypto-Hash.html#line-167" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Skein512_256" class="def">Skein512_256</a> <a href="src/Crypto-Hash.html#Skein512_256" class="link">Source</a></p><div class="doc"><p>Skein512 (256 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Skein512_256" class="def">Skein512_256</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Skein512_256" class="caption collapser" onclick="toggleSection('i:Skein512_256')">Instances</p><div id="section.i:Skein512_256" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Skein512_256">Skein512_256</a></span> <a href="src/Crypto-Hash.html#line-169" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_256">Skein512_256</a></span> <a href="src/Crypto-Hash.html#line-169" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Skein512_384" class="def">Skein512_384</a> <a href="src/Crypto-Hash.html#Skein512_384" class="link">Source</a></p><div class="doc"><p>Skein512 (384 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Skein512_384" class="def">Skein512_384</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Skein512_384" class="caption collapser" onclick="toggleSection('i:Skein512_384')">Instances</p><div id="section.i:Skein512_384" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Skein512_384">Skein512_384</a></span> <a href="src/Crypto-Hash.html#line-171" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_384">Skein512_384</a></span> <a href="src/Crypto-Hash.html#line-171" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Skein512_512" class="def">Skein512_512</a> <a href="src/Crypto-Hash.html#Skein512_512" class="link">Source</a></p><div class="doc"><p>Skein512 (512 bits version) cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Skein512_512" class="def">Skein512_512</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Skein512_512" class="caption collapser" onclick="toggleSection('i:Skein512_512')">Instances</p><div id="section.i:Skein512_512" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Skein512_512">Skein512_512</a></span> <a href="src/Crypto-Hash.html#line-173" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Skein512_512">Skein512_512</a></span> <a href="src/Crypto-Hash.html#line-173" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a name="t:Whirlpool" class="def">Whirlpool</a> <a href="src/Crypto-Hash.html#Whirlpool" class="link">Source</a></p><div class="doc"><p>Whirlpool cryptographic hash</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Whirlpool" class="def">Whirlpool</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Whirlpool" class="caption collapser" onclick="toggleSection('i:Whirlpool')">Instances</p><div id="section.i:Whirlpool" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Text-Show.html#t:Show">Show</a> <a href="Crypto-Hash.html#t:Whirlpool">Whirlpool</a></span> <a href="src/Crypto-Hash.html#line-148" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> <a href="Crypto-Hash.html#t:Whirlpool">Whirlpool</a></span> <a href="src/Crypto-Hash.html#line-148" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><h1 id="g:4">MAC algorithms</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a name="t:HMAC" class="def">HMAC</a> a <a href="src/Crypto-Hash.html#HMAC" class="link">Source</a></p><div class="doc"><p>Represent an HMAC that is a phantom type with the hash used to produce the mac.</p><p>The Eq instance is constant time.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HMAC" class="def">HMAC</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:hmacGetDigest" class="def">hmacGetDigest</a> :: <a href="Crypto-Hash.html#t:Digest">Digest</a> a</dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:HMAC" class="caption collapser" onclick="toggleSection('i:HMAC')">Instances</p><div id="section.i:HMAC" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.8.2.0/Data-Eq.html#t:Eq">Eq</a> (<a href="Crypto-Hash.html#t:HMAC">HMAC</a> a)</span> <a href="src/Crypto-Hash.html#line-187" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src clearfix"><span class="inst-left"><a href="file:///usr/share/doc/libghc-byteable-doc/html/Data-Byteable.html#t:Byteable">Byteable</a> (<a href="Crypto-Hash.html#t:HMAC">HMAC</a> a)</span> <a href="src/Crypto-Hash.html#line-184" class="link">Source</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:hmac" class="def">hmac</a> <a href="src/Crypto-Hash.html#hmac" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc"><p>Secret key</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc"><p>Message to MAC</p></td></tr><tr><td class="src">-&gt; <a href="Crypto-Hash.html#t:HMAC">HMAC</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>compute a MAC using the supplied hashing function</p></div></div><div class="top"><p class="src"><a name="v:hmacAlg" class="def">hmacAlg</a> <a href="src/Crypto-Hash.html#hmacAlg" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Crypto-Hash.html#t:HashAlgorithm">HashAlgorithm</a> a</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">=&gt; a</td><td class="doc"><p>the hash algorithm the actual value is unused.</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc"><p>Secret key</p></td></tr><tr><td class="src">-&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/bytestring-0.10.6.0/Data-ByteString.html#t:ByteString">ByteString</a></td><td class="doc"><p>Message to MAC</p></td></tr><tr><td class="src">-&gt; <a href="Crypto-Hash.html#t:HMAC">HMAC</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>compute a HMAC using a specified algorithm</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.16.1</p></div></body></html>