]> git.immae.eu Git - github/fretlink/hmacaroons.git/commitdiff
Documentation
authorJulien Tanguy <julien.tanguy@jhome.fr>
Thu, 9 Apr 2015 16:04:05 +0000 (18:04 +0200)
committerJulien Tanguy <julien.tanguy@jhome.fr>
Thu, 9 Apr 2015 16:04:05 +0000 (18:04 +0200)
README.md
src/Crypto/Macaroon.hs
src/Crypto/Macaroon/Internal.hs

index 45b84e0d4f7aba6c7e15066fec67b940a5b50c0d..994cb4b3fcee6d48398965fd2239153ac87a9800 100644 (file)
--- a/README.md
+++ b/README.md
@@ -27,6 +27,7 @@ Implementations
 - [C](https://github.com/rescrv/libmacaroons)
 - [Java](https://github.com/nitram509/jmacaroons)
 - [Python](https://github.com/ecordell/pymacaroons)
+- [Node.js](https://github.com/nitram509/macaroons.js)
 
 TODO
 ====
index 42e4a0784d946e12e22c881455d4e073f859f348..07043f73f14c3a5bd89fc5d75693b89585d355c0 100644 (file)
@@ -25,6 +25,7 @@ module Crypto.Macaroon (
     , Caveat
     , Key
     , Location
+    , Sig
     -- * Accessing functions
     -- ** Macaroons
     , location
@@ -65,18 +66,23 @@ create secret ident loc = MkMacaroon loc ident [] (toBytes (hmac derivedKey iden
   where
     derivedKey = toBytes (hmac "macaroons-key-generator" secret :: HMAC SHA256)
 
+-- | Caveat target location
 caveatLoc :: Caveat -> Location
 caveatLoc = cl
 
+-- | Caveat identifier
 caveatId :: Caveat -> Key
 caveatId = cid
 
+-- | Caveat verification identifier
 caveatVId :: Caveat -> Key
 caveatVId = vid
 
+-- | Inspect a macaroon's contents. For debugging purposes.
 inspect :: Macaroon -> String
 inspect = show
 
+-- | Serialize a macaroon in an URL-safe Base64 encoding
 serialize :: Macaroon -> BS.ByteString
 serialize m = B8.filter (/= '=') . B64.encode $ packets
   where
index 82ce0b494b28d1d7ebcaa340fa828f53a4d66207..810591cc627aacdd7335bf62b5e5856d9ee9a4df 100644 (file)
@@ -27,9 +27,10 @@ import           Data.List
 -- |Type alias for Macaroons and Caveat keys and identifiers
 type Key = BS.ByteString
 
--- |Type alias For Macaroons and Caveat locations
+-- |Type alias for Macaroons and Caveat locations
 type Location = BS.ByteString
 
+-- |Type alias for Macaroons signatures
 type Sig = BS.ByteString
 
 -- | Main structure of a macaroon
@@ -43,6 +44,7 @@ data Macaroon = MkMacaroon { location   :: Location
                            -- ^ Macaroon HMAC signature
                            } deriving (Eq)
 
+-- | show instance conforming to the @inspect@ "specification"
 instance Show Macaroon where
     -- We use intercalate because unlines would add a trailing newline
     show (MkMacaroon l i c s) = intercalate "\n" [
@@ -52,6 +54,7 @@ instance Show Macaroon where
                     , "signature " ++ B8.unpack (hex s)
                     ]
 
+-- | NFData instance for use in the benchmark
 instance NFData Macaroon where
     rnf (MkMacaroon loc ident cavs sig) = rnf loc `seq` rnf ident `seq` rnf cavs `seq` rnf sig
 
@@ -66,6 +69,7 @@ data Caveat = MkCaveat { cid :: Key
 
                        } deriving (Eq)
 
+-- | show instance conforming to the @inspect@ "specification"
 instance Show Caveat where
     show (MkCaveat c v l) | v == BS.empty = "cid " ++ B8.unpack c
                           | otherwise = unlines [ "cid " ++ B8.unpack c
@@ -74,10 +78,12 @@ instance Show Caveat where
                                                 ]
 
 
+-- | NFData instance for use in the benchmark
 instance NFData Caveat where
     rnf (MkCaveat cid vid cl) = rnf cid `seq` rnf vid `seq` rnf cl
 
-
+-- | Primitive to add a First or Third party caveat to a macaroon
+-- For internal use only
 addCaveat :: Location
           -> Key
           -> Key