export getInteger16/putInteger16 to serialize Integer in opaque16.

This commit is contained in:
Vincent Hanquez 2013-12-07 12:05:41 +08:00
parent dea7eb32cf
commit a03b22024b

View file

@ -23,6 +23,7 @@ module Network.TLS.Wire
, getOpaque8
, getOpaque16
, getOpaque24
, getInteger16
, getList
, processBytes
, isEmpty
@ -37,6 +38,7 @@ module Network.TLS.Wire
, putOpaque8
, putOpaque16
, putOpaque24
, putInteger16
, encodeWord16
, encodeWord64
) where
@ -50,6 +52,7 @@ import qualified Data.ByteString as B
import Data.Word
import Data.Bits
import Network.TLS.Struct
import Network.TLS.Util.Serialization
runGet :: String -> Get a -> Bytes -> Either String a
runGet lbl f = G.runGet (label lbl f)
@ -85,6 +88,9 @@ getOpaque16 = getWord16 >>= getBytes . fromIntegral
getOpaque24 :: Get Bytes
getOpaque24 = getWord24 >>= getBytes
getInteger16 :: Get Integer
getInteger16 = os2ip <$> getOpaque16
getList :: Int -> (Get (Int, a)) -> Get [a]
getList totalLen getElement = isolate totalLen (getElements totalLen)
where getElements len
@ -127,6 +133,9 @@ putOpaque16 b = putWord16 (fromIntegral $ B.length b) >> putBytes b
putOpaque24 :: Bytes -> Put
putOpaque24 b = putWord24 (B.length b) >> putBytes b
putInteger16 :: Integer -> Put
putInteger16 = putOpaque16 . i2osp
encodeWord16 :: Word16 -> Bytes
encodeWord16 = runPut . putWord16