packages feed

trust-chain 0.1.0.0 → 0.1.1.0

raw patch · 2 files changed

+15/−1 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.TrustChain: Whitelist :: Set PublicKey -> Whitelist
+ Data.TrustChain: [unWhitelist] :: Whitelist -> Set PublicKey
+ Data.TrustChain: filterByWhitelist :: Foldable f => Whitelist -> TrustChain f a -> [TrustChain f a]
+ Data.TrustChain: instance Data.Binary.Class.Binary Data.TrustChain.Whitelist
+ Data.TrustChain: instance GHC.Classes.Eq Data.TrustChain.Whitelist
+ Data.TrustChain: instance GHC.Classes.Ord Data.TrustChain.Whitelist
+ Data.TrustChain: instance GHC.Generics.Generic Data.TrustChain.Whitelist
+ Data.TrustChain: instance GHC.Read.Read Data.TrustChain.Whitelist
+ Data.TrustChain: instance GHC.Show.Show Data.TrustChain.Whitelist
+ Data.TrustChain: newtype Whitelist

Files

src/Data/TrustChain.hs view
@@ -13,6 +13,9 @@   , validTrustChain   , mkTrustProxy   , mkTrustless+    -- * White Lists+  , Whitelist (..)+  , filterByWhitelist     -- * Claims   , Claim (..)   , claims@@ -33,6 +36,7 @@ import Data.Typeable (Typeable) import qualified Data.Set as Set import Data.Map (Map)+import Data.Foldable (toList) import qualified Data.Map.Strict as Map import Data.ByteString (ByteString) import qualified Data.ByteString.Lazy as LBS@@ -64,6 +68,16 @@ deriving instance (Read a, forall a. Read a => Read (f a)) => Read (TrustChain f a) deriving instance (Eq a, forall a. Eq a => Eq (f a)) => Eq (TrustChain f a) deriving instance (Binary a, forall a. Binary a => Binary (f a)) => Binary (TrustChain f a)++-- | A set of 'PublicKey's we accept information from.+newtype Whitelist = Whitelist { unWhitelist :: Set PublicKey }+  deriving (Eq, Ord, Show, Read, Generic, Typeable, Binary)++-- | Strips out all elements of the chain which aren't rooted by someone in+-- our whitelist, creating a forest of 'TrustChain's instead of a single one.+filterByWhitelist :: Foldable f => Whitelist -> TrustChain f a -> [TrustChain f a]+filterByWhitelist w@(Whitelist ws) (Trustless a) = []+filterByWhitelist w@(Whitelist ws) (TrustProxy s) = if signedBy s `Set.member` ws then [TrustProxy s] else toList (signed s) >>= filterByWhitelist w  -- | Check that the trust chain has been legitimately signed. Once you receive -- 'True' from this function, you can be certain that all of the 'Signed'
trust-chain.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.4 name:               trust-chain-version:            0.1.0.0+version:            0.1.1.0 category:           Cryptography, Crypto synopsis:           An implementation of a trust chain license:            MIT