export getInteger16/putInteger16 to serialize Integer in opaque16.
This commit is contained in:
parent
dea7eb32cf
commit
a03b22024b
1 changed files with 9 additions and 0 deletions
|
@ -23,6 +23,7 @@ module Network.TLS.Wire
|
||||||
, getOpaque8
|
, getOpaque8
|
||||||
, getOpaque16
|
, getOpaque16
|
||||||
, getOpaque24
|
, getOpaque24
|
||||||
|
, getInteger16
|
||||||
, getList
|
, getList
|
||||||
, processBytes
|
, processBytes
|
||||||
, isEmpty
|
, isEmpty
|
||||||
|
@ -37,6 +38,7 @@ module Network.TLS.Wire
|
||||||
, putOpaque8
|
, putOpaque8
|
||||||
, putOpaque16
|
, putOpaque16
|
||||||
, putOpaque24
|
, putOpaque24
|
||||||
|
, putInteger16
|
||||||
, encodeWord16
|
, encodeWord16
|
||||||
, encodeWord64
|
, encodeWord64
|
||||||
) where
|
) where
|
||||||
|
@ -50,6 +52,7 @@ import qualified Data.ByteString as B
|
||||||
import Data.Word
|
import Data.Word
|
||||||
import Data.Bits
|
import Data.Bits
|
||||||
import Network.TLS.Struct
|
import Network.TLS.Struct
|
||||||
|
import Network.TLS.Util.Serialization
|
||||||
|
|
||||||
runGet :: String -> Get a -> Bytes -> Either String a
|
runGet :: String -> Get a -> Bytes -> Either String a
|
||||||
runGet lbl f = G.runGet (label lbl f)
|
runGet lbl f = G.runGet (label lbl f)
|
||||||
|
@ -85,6 +88,9 @@ getOpaque16 = getWord16 >>= getBytes . fromIntegral
|
||||||
getOpaque24 :: Get Bytes
|
getOpaque24 :: Get Bytes
|
||||||
getOpaque24 = getWord24 >>= getBytes
|
getOpaque24 = getWord24 >>= getBytes
|
||||||
|
|
||||||
|
getInteger16 :: Get Integer
|
||||||
|
getInteger16 = os2ip <$> getOpaque16
|
||||||
|
|
||||||
getList :: Int -> (Get (Int, a)) -> Get [a]
|
getList :: Int -> (Get (Int, a)) -> Get [a]
|
||||||
getList totalLen getElement = isolate totalLen (getElements totalLen)
|
getList totalLen getElement = isolate totalLen (getElements totalLen)
|
||||||
where getElements len
|
where getElements len
|
||||||
|
@ -127,6 +133,9 @@ putOpaque16 b = putWord16 (fromIntegral $ B.length b) >> putBytes b
|
||||||
putOpaque24 :: Bytes -> Put
|
putOpaque24 :: Bytes -> Put
|
||||||
putOpaque24 b = putWord24 (B.length b) >> putBytes b
|
putOpaque24 b = putWord24 (B.length b) >> putBytes b
|
||||||
|
|
||||||
|
putInteger16 :: Integer -> Put
|
||||||
|
putInteger16 = putOpaque16 . i2osp
|
||||||
|
|
||||||
encodeWord16 :: Word16 -> Bytes
|
encodeWord16 :: Word16 -> Bytes
|
||||||
encodeWord16 = runPut . putWord16
|
encodeWord16 = runPut . putWord16
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue