lio-0.1.3: Labeled IO Information Flow Control Library

Safe HaskellTrustworthy




This module provides bindings for the DCLabel module, with some renaming to resolve name clashes. The delegation of privilege and other trusted code is not exported by this module and code wishing to use this should import DCLabel.TCB.


DCLabel export

type DCCatSet = ComponentSource

A DCLabel category set.

Renamed privileges

type DCPriv = PrivSource

A DCLabel (untrusted) privilege.

type DCPrivTCB = TCBPrivSource

A DCLabel privilege.

Useful aliases for the LIO Monad

type DCLabeled a = Labeled DCLabel aSource

The type for Labeled values uinsg DCLabel as the label.

type DC = LIO DCLabel DCPrivTCB ()Source

The monad for LIO computations using DCLabel as the label.

evalDC :: DC a -> IO (a, DCLabel)Source

Runs a computation in the LIO Monad, returning both the computation's result and the label of the result.

evalDCWithRoot :: FilePath -> Maybe DCLabel -> DC a -> IO (a, DCLabel)Source

Same as evalDC, but with support for filesystem.

type DCGate = Gate DCLabel DCPrivSource

A DC Label gate

Public label

lpub :: DCLabelSource

Label corresponding to public data.