1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
module Network.TLS.Types (
module Network.TLS.Types.Cipher,
module Network.TLS.Types.Secret,
module Network.TLS.Types.Session,
module Network.TLS.Types.Version,
HostName,
Role (..),
invertRole,
Direction (..),
BigNum (..),
bigNumToInteger,
bigNumFromInteger,
defaultRecordSizeLimit,
) where
import Network.Socket (HostName)
import Network.TLS.Imports
import Network.TLS.Types.Cipher
import Network.TLS.Types.Secret
import Network.TLS.Types.Session
import Network.TLS.Types.Version
import Network.TLS.Util.Serialization
----------------------------------------------------------------
-- | Role
data Role = ClientRole | ServerRole
deriving (Show, Eq)
invertRole :: Role -> Role
invertRole ClientRole = ServerRole
invertRole ServerRole = ClientRole
----------------------------------------------------------------
-- | Direction
data Direction = Tx | Rx
deriving (Show, Eq)
----------------------------------------------------------------
newtype BigNum = BigNum ByteString
deriving (Show, Eq)
bigNumToInteger :: BigNum -> Integer
bigNumToInteger (BigNum b) = os2ip b
bigNumFromInteger :: Integer -> BigNum
bigNumFromInteger i = BigNum $ i2osp i
----------------------------------------------------------------
-- For plaintext
-- 2^14 for TLS 1.2
-- 2^14 + 1 for TLS 1.3
defaultRecordSizeLimit :: Int
defaultRecordSizeLimit = 16384
|