commit b36e36e9dfbd793dec2908b3640394b8f47860db
parent 6cfa6b51774c195c6c637483593b08e3885eb352
Author: Jared Tobin <jared@jtobin.io>
Date: Sat, 10 Oct 2026 15:24:32 +0400
lib: require a full checksum in base58check decode
Diffstat:
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/Data/ByteString/Base58Check.hs b/lib/Data/ByteString/Base58Check.hs
@@ -40,7 +40,8 @@ decode :: BS.ByteString -> Maybe BS.ByteString
decode mb = do
bs <- B58.decode mb
let len = BS.length bs
- (pay, kek) = BS.splitAt (len - 4) bs
+ guard (len >= 4)
+ let (pay, kek) = BS.splitAt (len - 4) bs
man = BS.take 4 (SHA256.hash (SHA256.hash pay))
guard (kek == man)
pure pay