crypto-conduit 0.5.0 → 0.5.1
raw patch · 2 files changed
+31/−43 lines, 2 filesdep +cryptohash-cryptoapidep −cryptohashdep ~crypto-apidep ~cryptocipherPVP ok
version bump matches the API change (PVP)
Dependencies added: cryptohash-cryptoapi
Dependencies removed: cryptohash
Dependency ranges changed: crypto-api, cryptocipher
API changes (from Hackage documentation)
Files
- crypto-conduit.cabal +6/−6
- tests/runtests.hs +25/−37
crypto-conduit.cabal view
@@ -1,6 +1,6 @@ Cabal-version: >= 1.8 Name: crypto-conduit-Version: 0.5.0+Version: 0.5.1 Synopsis: Conduit interface for cryptographic operations (from crypto-api). Homepage: https://github.com/meteficha/crypto-conduit License: BSD3@@ -50,14 +50,14 @@ base, bytestring, cereal,- crypto-api >= 0.9,+ crypto-api >= 0.11, conduit, transformers, - cryptocipher >= 0.3,- cryptohash >= 0.7,- skein >= 0.1,- hspec >= 1.3,+ cryptocipher >= 0.4,+ cryptohash-cryptoapi >= 0.1,+ skein >= 0.1,+ hspec >= 1.3, -- finally, our own package crypto-conduit
tests/runtests.hs view
@@ -13,7 +13,7 @@ import Crypto.Classes ((.::.)) import qualified Crypto.Classes as C import qualified Crypto.HMAC as C-import qualified Crypto.Modes as C+import qualified Crypto.Modes as CM --import qualified Crypto.Padding as C --import qualified Crypto.Random as C import qualified Crypto.Types as C@@ -23,19 +23,9 @@ import Data.Conduit.Binary (isolate) import Data.Conduit.List (sourceList, consume) --- from cryptohash-import Crypto.Hash.MD2 (MD2)-import Crypto.Hash.MD4 (MD4)-import Crypto.Hash.MD5 (MD5)-import Crypto.Hash.RIPEMD160 (RIPEMD160)-import Crypto.Hash.SHA1 (SHA1)-import Crypto.Hash.SHA224 (SHA224)-import Crypto.Hash.SHA256 (SHA256)-import Crypto.Hash.SHA384 (SHA384)-import Crypto.Hash.SHA512 (SHA512)-import Crypto.Hash.Skein256 (Skein256)-import Crypto.Hash.Skein512 (Skein512)-import Crypto.Hash.Tiger (Tiger)+-- from cryptohash-cryptoapi+import Crypto.Hash.CryptoAPI ( MD2, MD4, MD5, RIPEMD160, SHA1, SHA224+ , SHA256, SHA384, SHA512, Tiger ) -- from skein import qualified Crypto.Skein as Skein@@ -60,8 +50,6 @@ describe "cryptohash's SHA256" $ testHash (undefined :: SHA256) describe "cryptohash's SHA384" $ testHash (undefined :: SHA384) describe "cryptohash's SHA512" $ testHash (undefined :: SHA512)- describe "cryptohash's Skein256" $ testHash (undefined :: Skein256)- describe "cryptohash's Skein512" $ testHash (undefined :: Skein512) describe "cryptohash's Tiger" $ testHash (undefined :: Tiger) describe "skein's Skein_512_512" $ testHash (undefined :: Skein.Skein_512_512) describe "skein's Skein_1024_1024" $ testHash (undefined :: Skein.Skein_1024_1024)@@ -117,68 +105,68 @@ testBlockCipherConduit (Just blockSize) (conduitEncryptEcb k)- (C.ecb k)+ (CM.ecb k) prop "works with conduitDecryptEcb" $ testBlockCipherConduit (Just blockSize) (conduitDecryptEcb k)- (C.unEcb k)+ (CM.unEcb k) prop "works with conduitEncryptCbc" $ testBlockCipherConduit (Just blockSize)- (conduitEncryptCbc k C.zeroIV)- (fst . C.cbc k C.zeroIV)+ (conduitEncryptCbc k CM.zeroIV)+ (fst . CM.cbc k CM.zeroIV) prop "works with conduitDecryptCbc" $ testBlockCipherConduit (Just blockSize)- (conduitDecryptCbc k C.zeroIV)- (fst . C.unCbc k C.zeroIV)+ (conduitDecryptCbc k CM.zeroIV)+ (fst . CM.unCbc k CM.zeroIV) prop "works with conduitEncryptCfb" $ testBlockCipherConduit (Just blockSize)- (conduitEncryptCfb k C.zeroIV)- (fst . C.cfb k C.zeroIV)+ (conduitEncryptCfb k CM.zeroIV)+ (fst . CM.cfb k CM.zeroIV) prop "works with conduitDecryptCfb" $ testBlockCipherConduit (Just blockSize)- (conduitDecryptCfb k C.zeroIV)- (fst . C.unCfb k C.zeroIV)+ (conduitDecryptCfb k CM.zeroIV)+ (fst . CM.unCfb k CM.zeroIV) prop "works with conduitEncryptOfb" $ testBlockCipherConduit (Just blockSize)- (conduitEncryptOfb k C.zeroIV)- (fst . C.ofb k C.zeroIV)+ (conduitEncryptOfb k CM.zeroIV)+ (fst . CM.ofb k CM.zeroIV) prop "works with conduitDecryptOfb" $ testBlockCipherConduit (Just blockSize)- (conduitDecryptOfb k C.zeroIV)- (fst . C.unOfb k C.zeroIV)+ (conduitDecryptOfb k CM.zeroIV)+ (fst . CM.unOfb k CM.zeroIV) prop "works with conduitEncryptCtr" $ testBlockCipherConduit Nothing- (conduitEncryptCtr k C.zeroIV C.incIV)- (fst . C.ctr C.incIV k C.zeroIV)+ (conduitEncryptCtr k CM.zeroIV CM.incIV)+ (fst . CM.ctr CM.incIV k CM.zeroIV) prop "works with conduitDecryptCtr" $ testBlockCipherConduit Nothing- (conduitDecryptCtr k C.zeroIV C.incIV)- (fst . C.unCtr C.incIV k C.zeroIV)+ (conduitDecryptCtr k CM.zeroIV CM.incIV)+ (fst . CM.unCtr CM.incIV k CM.zeroIV) it "works with sourceCtr" $ let len :: Num a => a len = 1024 * 1024 -- 1 MiB- r1 = runPureResource $ sourceCtr k C.zeroIV $$ isolate len =$ consumeAsLazy- r2 = fst $ C.ctr C.incIV k C.zeroIV (L.replicate len 0)+ r1 = runPureResource $ sourceCtr k CM.zeroIV $$ isolate len =$ consumeAsLazy+ r2 = fst $ CM.ctr CM.incIV k CM.zeroIV (L.replicate len 0) in r1 == r2 prop "works with sinkCbcMac" $ \input -> let inputL = fixBlockedSize blockSize (L.pack input) r1 = runPureResource $ sourceList (L.toChunks inputL) $$ sinkCbcMac k- r2 = B.concat $ L.toChunks $ C.cbcMac k inputL+ r2 = C.encode $ snd $ CM.cbc k CM.zeroIV inputL in r1 == r2