<html> <head> <link rel="stylesheet" href="style.css" type="text/css"> <link rel="Start" href="index.html"> <link rel="previous" href="Cryptokit.Block.mac.html"> <link rel="next" href="Cryptokit.Block.aes_encrypt.html"> <link rel="Up" href="Cryptokit.Block.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Cryptokit" rel="Chapter" href="Cryptokit.html"><title>Cryptokit.Block.mac_final_triple</title> </head> <body> <div class="navbar"><a href="Cryptokit.Block.mac.html">Previous</a> <a href="Cryptokit.Block.html">Up</a> <a href="Cryptokit.Block.aes_encrypt.html">Next</a> </div> <center><h1>Class <a href="type_Cryptokit.Block.mac_final_triple.html">Cryptokit.Block.mac_final_triple</a></h1></center> <br> <pre><span class="keyword">class</span> <a name="TYPEmac_final_triple"></a>mac_final_triple : <code class="type">?iv:string -> ?pad:<a href="Cryptokit.Padding.scheme.html">Cryptokit.Padding.scheme</a> -> <a href="Cryptokit.Block.block_cipher.html">block_cipher</a> -> <a href="Cryptokit.Block.block_cipher.html">block_cipher</a> -> <a href="Cryptokit.Block.block_cipher.html">block_cipher</a> -> </code><code class="type"><a href="Cryptokit.hash.html">Cryptokit.hash</a></code></pre>Build a MAC (keyed hash function) from the given block ciphers <code class="code">c1</code>, <code class="code">c2</code> and <code class="code">c3</code>. The input is run through <code class="code">c1</code> in CBC mode, as described for <a href="Cryptokit.Block.mac.html"><code class="code">Cryptokit.Block.mac</code></a>. The final initialization vector is then super-enciphered by <code class="code">c2</code>, then by <code class="code">c3</code>, to provide the final MAC. This construction results in a MAC that is as nearly as fast as <a href="Cryptokit.Block.mac.html"><code class="code">Cryptokit.Block.mac</code></a> <code class="code">c1</code>, but more resistant against brute-force key search because of the additional final encryption through <code class="code">c2</code> and <code class="code">c3</code>.<br> <hr width="100%"> </body></html>