-- | The security library.  This is the /only/ module of the library to be imported by untrustworthy code.
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 
                           )