]> git.immae.eu Git - github/fretlink/hmacaroons.git/commitdiff
ghc<7.10.1 compat
authorJulien Tanguy <julien.tanguy@jhome.fr>
Mon, 17 Aug 2015 16:56:12 +0000 (18:56 +0200)
committerJulien Tanguy <julien.tanguy@jhome.fr>
Mon, 17 Aug 2015 16:56:12 +0000 (18:56 +0200)
default.nix
hmacaroons.cabal
src/Crypto/Macaroon/Verifier.hs
src/Crypto/Macaroon/Verifier/Internal.hs
test/Crypto/Macaroon/Instances.hs

index b1404efc9a30246933a65c36f8f3a1d965500066..a3925831c6f38300644e9d689c3deda21aac5ec6 100644 (file)
@@ -4,7 +4,7 @@
 }:
 mkDerivation {
   pname = "hmacaroons";
-  version = "0.2.0.0";
+  version = "0.4.0.0";
   src = ./.;
   buildDepends = [
     attoparsec base base64-bytestring byteable bytestring cereal
@@ -12,7 +12,8 @@ mkDerivation {
   ];
   testDepends = [
     attoparsec base base64-bytestring byteable bytestring cereal
-    cryptohash either hex QuickCheck tasty tasty-hunit tasty-quickcheck
+    cryptohash deepseq either hex QuickCheck tasty tasty-hunit
+    tasty-quickcheck transformers
   ];
   homepage = "https://github.com/jtanguy/hmacaroons";
   description = "Haskell implementation of macaroons";
index 83b2cd75fc5b4c5fe0f7713aaea3febed5a68c06..85958b95cdd311754af4be5f401023208e163f43 100644 (file)
@@ -1,5 +1,5 @@
 name:                hmacaroons
-version:             0.3.0.0
+version:             0.4.0.0
 synopsis:            Haskell implementation of macaroons
 description:
   Hmacaroons is a pure haskell implementation of macaroons. It aims to
@@ -58,7 +58,7 @@ library
                        Crypto.Macaroon.Verifier.Internal
   build-depends:  base >=4 && < 5,
                   attoparsec >=0.12,
-                  transformers >= 0.4,
+                  transformers >= 0.3,
                   bytestring >=0.10,
                   base64-bytestring >= 1.0,
                   byteable >= 0.1 && <0.2,
@@ -110,4 +110,4 @@ test-suite test
                   tasty-quickcheck >= 0.8,
                   QuickCheck >= 2.8,
                   deepseq >= 1.1,
-                  transformers >= 0.4
+                  transformers >= 0.3
index a739437222b6cc29b2d722e3507f3b96625c999d..4fc6aff14bcc08f8c7e1f6001439aa5206845091 100644 (file)
@@ -23,11 +23,13 @@ module Crypto.Macaroon.Verifier (
 ) where
 
 
-import           Control.Monad
+import           Control.Applicative
+import           Control.Monad hiding (forM)
 import           Control.Monad.IO.Class
 import           Data.Attoparsec.ByteString
 import           Data.Attoparsec.ByteString.Char8
 import           Data.Bool
+import           Data.Traversable
 import qualified Data.ByteString                  as BS
 import           Data.Either.Combinators
 
@@ -68,7 +70,7 @@ import           Crypto.Macaroon.Verifier.Internal
 -- caveat, parsed it and invalidated it;
 -- * 'Just' ('Right' '()') if the verifier has successfully verified the
 -- given caveat
-verify :: MonadIO m => Secret -> [Caveat -> m (Maybe (Either ValidationError ()))] -> Macaroon -> m (Either ValidationError Macaroon)
+verify :: (Functor m, MonadIO m) => Secret -> [Caveat -> m (Maybe (Either ValidationError ()))] -> Macaroon -> m (Either ValidationError Macaroon)
 verify secret verifiers m = join <$> forM (verifySig secret m) (verifyCavs verifiers)
 
 
index 73eb66ae67c4cbc4c6ac985d80f6a2422767c75a..5126b2ebb3a4664028a5b38c2e9b0d00557bd99a 100644 (file)
@@ -58,7 +58,7 @@ verifySig k m = bool (Left SigMismatch) (Right m) $
     derivedKey = toBytes (hmac "macaroons-key-generator" k :: HMAC SHA256)
 
 -- | Given a list of verifiers, verify each caveat of the given macaroon
-verifyCavs :: MonadIO m
+verifyCavs :: (Functor m, MonadIO m)
            => [Caveat -> m (Maybe (Either ValidationError ()))]
            -> Macaroon
            -> m (Either ValidationError Macaroon)
index 6348c56cb49947cfb81382277a240f82ee2d8a6e..019c094c26bcbd8ee09d3c1a9c5a74a0218c8d0f 100644 (file)
@@ -11,6 +11,7 @@ This test suite is based on the pymacaroons test suite:
 -}
 module Crypto.Macaroon.Instances where
 
+import           Control.Applicative
 import           Control.Monad
 import           Data.Byteable
 import qualified Data.ByteString       as BS