From 006d1f0b7f36c25a91006fce24cbe76416fcee86 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sat, 13 Jul 2019 15:22:45 -0400 Subject: no cpp needed, since my love is unconditional --- lib/Base58.hs | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) (limited to 'lib/Base58.hs') diff --git a/lib/Base58.hs b/lib/Base58.hs index 2de841d..9af3eb5 100644 --- a/lib/Base58.hs +++ b/lib/Base58.hs @@ -1,12 +1,7 @@ -{-# LANGUAGE CPP #-} module Base58 where -#if !defined(VERSION_cryptonite) -import qualified Crypto.Hash.SHA256 as SHA256 -#else import Crypto.Hash import Data.ByteArray (convert) -#endif import qualified Data.ByteString as S import Data.Maybe import Data.List @@ -20,7 +15,7 @@ base58digits :: [Char] -> Maybe [Int] base58digits str = sequence mbs where mbs = map (flip elemIndex base58chars) str - + -- 5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ base58_decode :: [Char] -> Maybe (Word8,[Word8]) base58_decode str = do @@ -31,16 +26,12 @@ base58_decode str = do guard (d/=0) let (q,b) = d `divMod` 256 return (fromIntegral b,q) - + let (rcksum,rpayload) = splitAt 4 $ rbytes a_payload = reverse rpayload -#if !defined(VERSION_cryptonite) - hash_result = S.take 4 . SHA256.hash . SHA256.hash . S.pack $ a_payload -#else hash_result = S.take 4 . convert $ digest where digest = hash diges1 :: Digest SHA256 diges1 = hash (S.pack a_payload) :: Digest SHA256 -#endif expected_hash = S.pack $ reverse rcksum (network_id,payload) = splitAt 1 a_payload network_id <- listToMaybe network_id @@ -51,13 +42,9 @@ base58_encode :: S.ByteString -> String base58_encode hsh = replicate zcount '1' ++ map (base58chars !!) (reverse rdigits) where zcount = S.length . S.takeWhile (==0) $ hsh -#if !defined(VERSION_cryptonite) - cksum = S.take 4 . SHA256.hash . SHA256.hash $ hsh -#else cksum = S.take 4 (convert digest2 :: S.ByteString) where digest2 = hash ( convert digest1 :: S.ByteString) :: Digest SHA256 digest1 = hash hsh :: Digest SHA256 -#endif n = foldl' (\a b->a*256+b) 0 . map asInteger $ concatMap S.unpack [hsh, cksum] asInteger x = fromIntegral x :: Integer rdigits = unfoldr getdigit n -- cgit v1.2.3