convert serializeKey' to strict ByteString

The builder produces a lazy ByteString, and L.toStrict has to copy it,
but needing to use the builder is no longer to common case; the
serialization will normally be cached already as a strict ByteString,
and this avoids keyFile' needing to use L.toStrict . serializeKey'
This commit is contained in:
Joey Hess 2019-01-14 16:59:27 -04:00
parent 4536c93bb2
commit e0c4ac99b5
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
5 changed files with 23 additions and 15 deletions

View file

@ -27,12 +27,14 @@ module Utility.Hash (
blake2b_512,
#endif
md5,
md5s,
prop_hashes_stable,
Mac(..),
calcMac,
prop_mac_stable,
) where
import qualified Data.ByteString as S
import qualified Data.ByteString.Lazy as L
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
@ -112,6 +114,9 @@ blake2b_512 = hashlazy
md5 :: L.ByteString -> Digest MD5
md5 = hashlazy
md5s :: S.ByteString -> Digest MD5
md5s = hash
{- Check that all the hashes continue to hash the same. -}
prop_hashes_stable :: Bool
prop_hashes_stable = all (\(hasher, result) -> hasher foo == result)