From 13d617b0b8389d702cb0a615fc359f4be27402f7 Mon Sep 17 00:00:00 2001 From: joe Date: Mon, 30 Oct 2017 23:53:11 -0400 Subject: Serialize instance for HandshakeData. --- src/Network/Tox/Crypto/Transport.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/Network/Tox') diff --git a/src/Network/Tox/Crypto/Transport.hs b/src/Network/Tox/Crypto/Transport.hs index 5b9a0661..d89ac80d 100644 --- a/src/Network/Tox/Crypto/Transport.hs +++ b/src/Network/Tox/Crypto/Transport.hs @@ -50,7 +50,10 @@ import Network.Tox.DHT.Transport (Cookie) import Network.Tox.NodeId import Network.Socket +import Data.ByteArray + import Data.ByteString as B +import Data.Maybe import Data.Monoid import Data.Word import Crypto.Hash @@ -106,6 +109,17 @@ instance Sized HandshakeData where <> ConstSize 64 -- contramap cookieHash size -- missing instance Sized (Digest SHA512) <> contramap otherCookie size +instance Serialize HandshakeData where + get = HandshakeData <$> get + <*> (id2key <$> get) + <*> (fromJust . digestFromByteString <$> getBytes 64) + <*> get + put (HandshakeData n k h c) = do + put n + put $ key2id k + putByteString (convert h) + put c + data CryptoPacket (f :: * -> *) = CryptoPacket { -- | The last 2 bytes of the nonce used to encrypt 'pktData' pktNonce :: Word16 -- cgit v1.2.3