Cryptokit.Block.mac_final_triple

# Class Cryptokit.Block.mac_final_triple

    class mac_final_triple : ?iv:string -> ?pad:Cryptokit.Padding.scheme -> block_cipher -> block_cipher -> block_cipher -> Cryptokit.hash

Build a MAC (keyed hash function) from the given block ciphers `c1`, `c2` and `c3`. The input is run through `c1` in CBC mode, as described for `Cryptokit.Block.mac`. The final initialization vector is then super-enciphered by `c2`, then by `c3`, to provide the final MAC. This construction results in a MAC that is as nearly as fast as `Cryptokit.Block.mac` `c1`, but more resistant against brute-force key search because of the additional final encryption through `c2` and `c3`.