diff options
Diffstat (limited to 'ProtocolBuffers.hs')
-rw-r--r-- | ProtocolBuffers.hs | 55 |
1 files changed, 30 insertions, 25 deletions
diff --git a/ProtocolBuffers.hs b/ProtocolBuffers.hs index 42d3e0b..e87a156 100644 --- a/ProtocolBuffers.hs +++ b/ProtocolBuffers.hs @@ -65,65 +65,67 @@ data ControlActionP , enteredLastAcceptedP :: Optional 12 (Message HashP) } | SessionKeyP - { sessionKeyP :: Required 13 (Message (PerhapsSignedP PublicKeyP)) } + { sessionKeyP :: Required 13 (Message (PerhapsSignedP PublicKeyP)) + , protocolVersionP :: Required 14 (Value B.ByteString) + } | SessionKeyAcceptedP - { sessionKeyAcceptedP :: Required 14 (Message PublicKeyP) } + { sessionKeyAcceptedP :: Required 15 (Message PublicKeyP) } | SessionKeyRejectedP - { sessionKeyRejectedP :: Required 15 (Message PublicKeyP) } + { sessionKeyRejectedP :: Required 16 (Message PublicKeyP) } | ChatMessageP - { chatMessageSenderName :: Required 16 (Value B.ByteString) - , chatMessage :: Required 17 (Value B.ByteString) + { chatMessageSenderName :: Required 17 (Value B.ByteString) + , chatMessage :: Required 18 (Value B.ByteString) } deriving (Generic) data SignatureP = Ed25519SignatureP - { ed25519SignatureP :: Required 18 (Value B.ByteString) } + { ed25519SignatureP :: Required 19 (Value B.ByteString) } | OtherSignatureP - { otherSignatureP :: Required 19 (Value B.ByteString) } + { otherSignatureP :: Required 20 (Value B.ByteString) } deriving (Generic) data PublicKeyP = PublicKeyP - { mkPublicKeyP :: Required 20 (Value B.ByteString) } + { mkPublicKeyP :: Required 21 (Value B.ByteString) } deriving (Generic) data PerhapsSignedP a = GpgSignedP - { gpgSignedValP :: Required 21 (Message a) - , gpgSigP :: Required 22 (Message GpgSigP) - , gpgKeyExportP :: Required 23 (Message GpgKeyExportP) + { gpgSignedValP :: Required 22 (Message a) + , gpgSigP :: Required 23 (Message GpgSigP) + , gpgKeyExportP :: Required 24 (Message GpgKeyExportP) } | UnSignedP - { mkUnSignedP :: Required 24 (Message a ) + { mkUnSignedP :: Required 25 (Message a ) } deriving (Generic) data GpgSigP = GpgSigP - { mkGpgSigP :: Required 25 (Value B.ByteString) } + { mkGpgSigP :: Required 26 (Value B.ByteString) } deriving (Generic) data GpgKeyExportP = GpgKeyExportP - { mkGpgKeyExportP :: Required 26 (Value B.ByteString) } + { mkGpgKeyExportP :: Required 27 (Value B.ByteString) } deriving (Generic) data ElapsedTimeP = ElapsedTimeP - { mkElapsedTimeP :: Required 27 (Value Double) } + { mkElapsedTimeP :: Required 28 (Value Double) } deriving (Generic) data AnyMessageP - = UserP { mkUserP :: Required 28 (Message (MessageP SeenP)) } - | DeveloperP { mkDeveloperP :: Required 29 (Message (MessageP EnteredP)) } + = UserP { mkUserP :: Required 29 (Message (MessageP SeenP)) } + | DeveloperP { mkDeveloperP :: Required 30 (Message (MessageP EnteredP)) } deriving (Generic) data HashP = HashP - { hashMethodP :: Required 30 (Message HashMethodP) - , hashValueP :: Required 31 (Value B.ByteString) + { hashMethodP :: Required 31 (Message HashMethodP) + , hashValueP :: Required 32 (Value B.ByteString) } deriving (Generic) data HashMethodP - = SHA512P { mkSHA512P :: Required 32 (Value Bool) } - | SHA3P { mkSHA3P :: Required 33 (Value Bool) } + = SHA512P { mkSHA512P :: Required 33 (Value Bool) } + | SHA3P { mkSHA3P :: Required 34 (Value Bool) } deriving (Generic) -- | Conversion between protocol buffer messages and debug-me's main Types. @@ -190,8 +192,10 @@ instance ProtocolBuffer ControlActionP T.ControlAction where { enteredRejectedP = putField $ toProtocolBuffer $ T.enteredRejected t , enteredLastAcceptedP = putField $ toProtocolBuffer <$> T.enteredLastAccepted t } - toProtocolBuffer (T.SessionKey t) = SessionKeyP - { sessionKeyP = putField $ toProtocolBuffer t } + toProtocolBuffer (T.SessionKey t v) = SessionKeyP + { sessionKeyP = putField $ toProtocolBuffer t + , protocolVersionP = putField $ val v + } toProtocolBuffer (T.SessionKeyAccepted t) = SessionKeyAcceptedP { sessionKeyAcceptedP = putField $ toProtocolBuffer t } toProtocolBuffer (T.SessionKeyRejected t) = SessionKeyRejectedP @@ -204,8 +208,9 @@ instance ProtocolBuffer ControlActionP T.ControlAction where { T.enteredRejected = fromProtocolBuffer $ getField $ enteredRejectedP p , T.enteredLastAccepted = fromProtocolBuffer <$> getField (enteredLastAcceptedP p) } - fromProtocolBuffer p@(SessionKeyP {}) = T.SessionKey $ - fromProtocolBuffer $ getField $ sessionKeyP p + fromProtocolBuffer p@(SessionKeyP {}) = T.SessionKey + (fromProtocolBuffer $ getField $ sessionKeyP p) + (Val $ getField $ protocolVersionP p) fromProtocolBuffer p@(SessionKeyAcceptedP {}) = T.SessionKeyAccepted $ fromProtocolBuffer $ getField $ sessionKeyAcceptedP p fromProtocolBuffer p@(SessionKeyRejectedP {}) = T.SessionKeyRejected $ |