Skip to content

Commit

Permalink
Do not fix input length for CTR mode.
Browse files Browse the repository at this point in the history
  • Loading branch information
meteficha committed Jan 7, 2012
1 parent f46f8fb commit ba2a14b
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions tests/runtests.hs
Expand Up @@ -121,29 +121,29 @@ testBlockCipher undefinedKey = do
blockSize = (C.blockSize .::. k) `div` 8

prop "works with conduitEncryptEcb" $
testBlockCipherConduit blockSize (conduitEncryptEcb k) (C.ecb k)
testBlockCipherConduit (Just blockSize) (conduitEncryptEcb k) (C.ecb k)
prop "works with conduitDecryptEcb" $
testBlockCipherConduit blockSize (conduitDecryptEcb k) (C.unEcb k)
testBlockCipherConduit (Just blockSize) (conduitDecryptEcb k) (C.unEcb k)

prop "works with conduitEncryptCbc" $
testBlockCipherConduit blockSize (conduitEncryptCbc k C.zeroIV) (fst . C.cbc k C.zeroIV)
testBlockCipherConduit (Just blockSize) (conduitEncryptCbc k C.zeroIV) (fst . C.cbc k C.zeroIV)
prop "works with conduitDecryptCbc" $
testBlockCipherConduit blockSize (conduitDecryptCbc k C.zeroIV) (fst . C.unCbc k C.zeroIV)
testBlockCipherConduit (Just blockSize) (conduitDecryptCbc k C.zeroIV) (fst . C.unCbc k C.zeroIV)

prop "works with conduitEncryptCfb" $
testBlockCipherConduit blockSize (conduitEncryptCfb k C.zeroIV) (fst . C.cfb k C.zeroIV)
testBlockCipherConduit (Just blockSize) (conduitEncryptCfb k C.zeroIV) (fst . C.cfb k C.zeroIV)
prop "works with conduitDecryptCfb" $
testBlockCipherConduit blockSize (conduitDecryptCfb k C.zeroIV) (fst . C.unCfb k C.zeroIV)
testBlockCipherConduit (Just blockSize) (conduitDecryptCfb k C.zeroIV) (fst . C.unCfb k C.zeroIV)

prop "works with conduitEncryptOfb" $
testBlockCipherConduit blockSize (conduitEncryptOfb k C.zeroIV) (fst . C.ofb k C.zeroIV)
testBlockCipherConduit (Just blockSize) (conduitEncryptOfb k C.zeroIV) (fst . C.ofb k C.zeroIV)
prop "works with conduitDecryptOfb" $
testBlockCipherConduit blockSize (conduitDecryptOfb k C.zeroIV) (fst . C.unOfb k C.zeroIV)
testBlockCipherConduit (Just blockSize) (conduitDecryptOfb k C.zeroIV) (fst . C.unOfb k C.zeroIV)

prop "works with conduitEncryptCtr" $
testBlockCipherConduit blockSize (conduitEncryptCtr k C.zeroIV C.incIV) (fst . C.ctr C.incIV k C.zeroIV)
testBlockCipherConduit Nothing (conduitEncryptCtr k C.zeroIV C.incIV) (fst . C.ctr C.incIV k C.zeroIV)
prop "works with conduitDecryptCtr" $
testBlockCipherConduit blockSize (conduitDecryptCtr k C.zeroIV C.incIV) (fst . C.unCtr C.incIV k C.zeroIV)
testBlockCipherConduit Nothing (conduitDecryptCtr k C.zeroIV C.incIV) (fst . C.unCtr C.incIV k C.zeroIV)

it "works with sourceCtr" $
let len :: Num a => a
Expand All @@ -160,13 +160,13 @@ testBlockCipher undefinedKey = do


testBlockCipherConduit ::
C.ByteLength
Maybe C.ByteLength -- ^ Fix input length to be a multiple of the block size?
-> (forall m. Resource m => Conduit B.ByteString m B.ByteString)
-> (L.ByteString -> L.ByteString)
-> [Word8]
-> Bool
testBlockCipherConduit blockSize conduit lazyfun input =
let inputL = fixBlockedSize blockSize (L.pack input)
testBlockCipherConduit mblockSize conduit lazyfun input =
let inputL = maybe id fixBlockedSize mblockSize (L.pack input)
r1 = runPureResource $ sourceList (L.toChunks inputL) $$ conduit =$ consumeAsLazy
r2 = lazyfun inputL
in r1 == r2
Expand Down

0 comments on commit ba2a14b

Please sign in to comment.