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