From 02aa3bb75a883757fc61aed5580a0056319084f0 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone <exarkun@twistedmatrix.com> Date: Tue, 28 Feb 2023 12:57:46 -0500 Subject: [PATCH] Perhaps fix one place where byte-for-byte compat is not achieved --- src/Tahoe/CHK.hs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/Tahoe/CHK.hs b/src/Tahoe/CHK.hs index 399b02e..af3a7a3 100644 --- a/src/Tahoe/CHK.hs +++ b/src/Tahoe/CHK.hs @@ -81,6 +81,7 @@ import Crypto.Types ( ByteLength, IV, ) +import Data.Binary (encode) import qualified Data.ByteArray as BA import qualified Data.ByteString as B import qualified Data.ByteString.Builder as B @@ -367,10 +368,10 @@ chkEncode version stateRef p@(Parameters segmentSize total happy required) dataS let tree = makeTreePartial crypttextHashes -- print ("CrypttextHashTree inputs", map encodeBase32Unpadded crypttextHashes) -- print ("CrypttextHashTree outputs", map encodeBase32Unpadded . breadthFirstList $ tree) - same_blocks . serializeTree $ tree + same_blocks . toStrict . encode $ tree BlockHashTree -> do setStage ShareHashes - let trees = map serializeTree $ makeBlockHashTrees blockHashes + let trees = map (toStrict . encode) $ makeBlockHashTrees blockHashes -- print ("BlockHashes", map encodeBase32Unpadded trees) different_blocks trees ShareHashes -> do @@ -633,9 +634,6 @@ makeShareTree = makeTreePartial . map (head . breadthFirstList) makeBlockHashTrees :: BlockHashMap -> [MerkleTree] makeBlockHashTrees = map (makeTreePartial . snd) . Map.toAscList -serializeTree :: MerkleTree -> B.ByteString -serializeTree = B.concat . breadthFirstList - makeCrypttextHash :: Context SHA256 -> CrypttextHash makeCrypttextHash = sha256 . toBytes . hashFinalize where -- GitLab