-- | The security library.  This is the /only/ module of the library to be imported by untrustworthy code.

{-# LANGUAGE Trustworthy #-}

module SecLib.Untrustworthy
 (
  -- Sec
    Sec
  , up
  , public
  -- SecIO
  , SecIO
  , value
  , plug
  , run
  -- Files
  , File
  , readFileSecIO
  , writeFileSecIO
  -- References
  , Ref
  , readRefSecIO
  , writeRefSecIO
  , newIORefSecIO
  -- Screen/Keyword
  , Screen
  , getLineSecIO
  , putStrSecIO
  , putStrLnSecIO
  -- Legacy code
  , s_read
  , s_write
  -- Sockets
  , SecSocket
  , SecSockAddr
  , inet_addrSecIO
  , portInet
  , socketSecIO
  , bindSocketSecIO
  , sIsBoundSecIO
  , acceptSecIO
  , recvSecIO
  , sendSecIO
  , connectSecIO
  , sIsConnectedSecIO
  -- Declassification
  , Authority
  , certify
  ------------------------------------
  , Less
  , Attacker
  )
where

import SecLib.Trustworthy hiding (
                           -- Security lattice
                           less,
                           observe,
                           -- Pure computations
                           reveal,
                           -- Side-effects
                           revealIO,
                           -- Locations
                           Loc,
                           -- Screen
                           mkScreen,
                           -- Declassification
                           hatch,
                           ntimes,
                           flock,
                           dlm
                           )