dclabel-eci11-0.1: Dynamic labels to assign confidentiality and integrity levels in scenarios of mutual distrust

DCLabel.Untrustworthy

Description

This module implements Disjunction Category labels. It is designed to be used by untrustworthy code. Technically, the module exports the same interface as DCLabel.Trustworthy except for the function createPriv.

Synopsis

Documentation

class Ord a => Lattice a whereSource

Methods

top :: aSource

bottom :: aSource

canflowto :: a -> a -> BoolSource

join :: a -> a -> aSource

meet :: a -> a -> aSource

Instances

Ord a => Lattice (DCLabel a)

It defines that DCLabel are elements of a lattice.

principal :: String -> PrincipalSource

It generates a principal from an string.

isPrincipal :: Principal -> Label Principal -> BoolSource

It checks that a principal appears in a label.

labelToList :: Label Principal -> [[Principal]]Source

It converts a label into a list.

singleton :: Singleton a b => a -> Label bSource

It creates a singleton label, i.e. a label with only one principal.

data DCLabel a Source

It represents disjunction category labels

Instances

Ord a => Eq (DCLabel a) 
Ord a => Ord (DCLabel a) 
Show a => Show (DCLabel a) 
Arbitrary a => Arbitrary (DCLabel a) 
Ord a => Lattice (DCLabel a)

It defines that DCLabel are elements of a lattice.

integrityDC :: DCLabel Principal -> Label PrincipalSource

It extracts the label corresponding to the integrity component of a DCLabel

secrecyDC :: DCLabel Principal -> Label PrincipalSource

It extracts the label corresponding to the secrecy component of a DCLabel

data Priv a Source

It represents privilege.

Instances

Ord a => Eq (Priv a) 
Show a => Show (Priv a) 

canflowto_p :: Lattice (DCLabel a) => Priv a -> DCLabel a -> DCLabel a -> BoolSource

It checks if a DCLabel can flow to another DCLabel given some privilege.

own :: Ord a => Priv a -> DCLabel a -> BoolSource

It creates a DCLabel based on two labels.

It checks if a privilege is owned

privToLabel :: Priv a -> DCLabel aSource

It returns the privilege in the form of a label.