{-# LANGUAGE CPP #-} {-# LANGUAGE TypeFamilies #-} -- | -- Module: Data.Hash.Keccak -- Copyright: Copyright © 2021 Lars Kuhtz -- License: MIT -- Maintainer: Lars Kuhtz -- Stability: experimental -- -- | The code in this module uses internal OpenSSL APIs. It may break with new -- versions of OpenSSL. It may also be broken for existing versions of OpenSSL. -- Portability of the code is unknown. -- -- ONLY USE THIS CODE AFTER YOU HAVE VERIFIED THAT IT WORKS WITH OUR VERSION OF -- OPENSSL. -- -- For details see the file cbits/keccak.c. -- module Data.Hash.Keccak ( -- * Keccak-256 -- -- | This is the latest version of Keccak-256 hash function that was submitted to -- the SHA3 competition. It is different from the final NIST SHA3 hash. -- -- The difference between NIST SHA3-256 and Keccak-256 is the use of a different -- padding character for the input message. The former uses '0x06' and the -- latter uses '0x01'. -- -- This version of Keccak-256 is used by the Ethereum project. Keccak256(..) , Keccak512(..) , module Data.Hash.Class.Mutable ) where import Data.Hash.Class.Mutable import Data.Hash.Internal.OpenSSL