From d291036c93d0258dcd8a2172004c9b8449a8a824 Mon Sep 17 00:00:00 2001 From: Hexirp Date: Wed, 26 Feb 2020 20:19:39 +0900 Subject: Use 'cryptonite' instead of 'cryptohash' 'cryptohash' is deprecated. The package description says, "please use cryptonite for new projects and convert old one to use cryptonite." --- hakyll.cabal | 3 ++- lib/Hakyll/Core/Store.hs | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/hakyll.cabal b/hakyll.cabal index 90ba220..288a616 100644 --- a/hakyll.cabal +++ b/hakyll.cabal @@ -170,13 +170,14 @@ Library blaze-markup >= 0.5.1 && < 0.9, bytestring >= 0.9 && < 0.11, containers >= 0.3 && < 0.7, - cryptohash >= 0.7 && < 0.12, + cryptonite >= 0.25 && < 0.26, data-default >= 0.4 && < 0.8, deepseq >= 1.3 && < 1.5, directory >= 1.0 && < 1.4, file-embed >= 0.0.10.1 && < 0.0.12, filepath >= 1.0 && < 1.5, lrucache >= 1.1.1 && < 1.3, + memory >= 0.14.18 && < 0.15, mtl >= 1 && < 2.3, network-uri >= 2.6 && < 2.7, optparse-applicative >= 0.12 && < 0.16, diff --git a/lib/Hakyll/Core/Store.hs b/lib/Hakyll/Core/Store.hs index f65a00b..bfcd191 100644 --- a/lib/Hakyll/Core/Store.hs +++ b/lib/Hakyll/Core/Store.hs @@ -16,7 +16,8 @@ module Hakyll.Core.Store -------------------------------------------------------------------------------- -import qualified Crypto.Hash.MD5 as MD5 +import qualified Data.ByteArray as BA +import qualified Crypto.Hash as CH import Data.Binary (Binary, decode, encodeFile) import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as BL @@ -193,8 +194,21 @@ deleteFile = (`catchIOError` \_ -> return ()) . removeFile -------------------------------------------------------------------------------- -- | Mostly meant for internal usage hash :: [String] -> String -hash = toHex . B.unpack . MD5.hash . T.encodeUtf8 . T.pack . intercalate "/" +hash = toHex . B.unpack . hashMD5 . T.encodeUtf8 . T.pack . intercalate "/" where toHex [] = "" toHex (x : xs) | x < 16 = '0' : showHex x (toHex xs) | otherwise = showHex x (toHex xs) + + +-------------------------------------------------------------------------------- +-- | Hash by MD5 +hashMD5 :: B.ByteString -> B.ByteString +hashMD5 x = + let + digest :: CH.Digest CH.MD5 + digest = CH.hash x + bytes :: B.ByteString + bytes = BA.convert digest + in + bytes -- cgit v1.2.3