The implementation of Skein512_256 returns different results depending on how the input is broken into chunks and fed to hashUpdate. For example, the program:
import Crypto.Hash
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as L
s1, s2 :: B.ByteString
s1 = B.replicate 1 0
s2 = B.replicate 63 0
hs, hl :: Digest Skein512_256
hs = hash (B.concat [s1,s2])
hl = hashlazy (L.fromChunks [s1,s2])
main :: IO ()
main = print hs >> print hl
The implementation of
Skein512_256
returns different results depending on how the input is broken into chunks and fed tohashUpdate
. For example, the program:produces the following output: