packages feed

clientsession 0.4.1 → 0.5.0

raw patch · 3 files changed

+15/−14 lines, 3 filesdep +asciiPVP ok

version bump matches the API change (PVP)

Dependencies added: ascii

API changes (from Hackage documentation)

- Web.ClientSession: decrypt :: ByteString -> ByteString -> Maybe ByteString
+ Web.ClientSession: decrypt :: ByteString -> Ascii -> Maybe ByteString
- Web.ClientSession: encrypt :: ByteString -> ByteString -> ByteString
+ Web.ClientSession: encrypt :: ByteString -> ByteString -> Ascii

Files

Web/ClientSession.hs view
@@ -41,6 +41,7 @@ import Foreign.Storable import System.IO.Unsafe import Language.Haskell.TH+import qualified Data.Ascii as A  type Key = S.ByteString @@ -101,8 +102,8 @@  encrypt :: S.ByteString -- ^ key         -> S.ByteString -- ^ data-        -> S.ByteString-encrypt keyBS dataBS = unsafePerformIO $+        -> A.Ascii+encrypt keyBS dataBS = A.unsafeFromByteString $ unsafePerformIO $     unsafeUseAsCString keyBS $ \keyPtr ->         unsafeUseAsCStringLen dataBS $ \(dataPtr, dataLen) -> do             let keyPtr' = castPtr keyPtr@@ -116,9 +117,9 @@                 unsafePackCStringFinalizer newPtr' len' $ free newPtr'  decrypt :: S.ByteString -- ^ key-        -> S.ByteString -- ^ data+        -> A.Ascii -- ^ data         -> Maybe S.ByteString-decrypt keyBS dataBS = unsafePerformIO $+decrypt keyBS dataA = unsafePerformIO $     unsafeUseAsCString keyBS $ \keyPtr ->         unsafeUseAsCStringLen dataBS $ \(dataPtr, dataLen) -> do             let keyPtr' = castPtr keyPtr@@ -135,6 +136,8 @@                         bs <- unsafePackCStringFinalizer newPtr' len'                             $ free newPtr'                         return $ Just bs+  where+    dataBS = A.toByteString dataA  foreign import ccall unsafe "encrypt"     c_encrypt :: CUInt -> Ptr CUChar -> Ptr CUChar -> Ptr CUInt
clientsession.cabal view
@@ -1,5 +1,5 @@ name:            clientsession-version:         0.4.1+version:         0.5.0 license:         BSD3 license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>@@ -13,7 +13,7 @@ build-type:      Simple homepage:        http://github.com/snoyberg/clientsession/tree/master -flag buildtests+flag test   description: Build the executable to run unit tests   default: False @@ -22,13 +22,14 @@                      bytestring >= 0.9 && < 0.10,                      directory >= 1 && < 1.2,                      random >= 1.0.0.2 && < 1.1,+                     ascii >= 0.0.2 && < 0.1,                      template-haskell     exposed-modules: Web.ClientSession     ghc-options:     -Wall     c-sources:       c/aestable.c c/helper.c  executable             runtests-    if flag(buildtests)+    if flag(test)         Buildable: True         cpp-options:   -DTEST         build-depends: test-framework,
runtests.hs view
@@ -12,7 +12,7 @@  import Web.ClientSession import System.IO.Unsafe-import Data.Word+import qualified Data.Ascii as A  main :: IO () main = defaultMain@@ -33,15 +33,15 @@ propEncDecFailure :: S.ByteString -> Bool propEncDecFailure bs = unsafePerformIO $ do     key <- getDefaultKey-    let s = encrypt key bs-    let bs' = decrypt key $ (S.head s + 1) `S.cons` S.drop 1 s+    let s = A.toByteString $ encrypt key bs+    let bs' = decrypt key $ A.unsafeFromByteString $ (S.head s + 1) `S.cons` S.drop 1 s     return $ Just bs /= bs'  propAES :: S.ByteString -> S.ByteString -> Bool propAES key bs = decrypt key (encrypt key bs) == Just bs  propAESChanges :: S.ByteString -> S.ByteString -> Bool-propAESChanges key bs = encrypt key bs /= bs+propAESChanges key bs = A.toByteString (encrypt key bs) /= bs  caseSpecific :: Assertion caseSpecific = do@@ -53,6 +53,3 @@  instance Arbitrary S.ByteString where     arbitrary = S.pack `fmap` arbitrary--instance Arbitrary Word8 where-    arbitrary = arbitraryBoundedIntegral