import qualified Data.ByteString.Lazy as Lazy (ByteString)
import qualified Data.ByteString.Lazy as L hiding (ByteString)
import Data.Char
-import Data.Digest.SHA1
+import Data.Digest.SHA2
import Data.Int
import Data.Maybe
import Data.Time
getLastModified :: FilePath -> IO UTCTime
getLastModified "-" = getCurrentTime
getLastModified fpath = getFileStatus fpath
- >>= return . posixSecondsToUTCTime . toEnum . fromEnum . modificationTime
+ >>= return . posixSecondsToUTCTime . fromRational . toRational . modificationTime
getETag :: [CmdOpt] -> Lazy.ByteString -> IO String
_ -> error "too many --etag options."
where
mkETagFromInput :: String
- mkETagFromInput = "SHA-1:" ++ (toHex $ hash $ L.unpack input)
+ mkETagFromInput = "SHA-1:" ++ (toHex $ toOctets $ sha256 $ L.unpack input)
toHex :: [Word8] -> String
toHex [] = ""