From d2c0ae35b818ed19af44991c200316ebb5b0488d Mon Sep 17 00:00:00 2001 From: Stefan Berthold Date: Wed, 14 Jun 2023 14:07:43 +0000 Subject: [PATCH] alter group ID serialisation - 16 bit version - 16 bit conversation type --- changelog.d/5-internal/group-id-subconv-2 | 1 + libs/wire-api/src/Wire/API/MLS/Group/Serialisation.hs | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) create mode 100644 changelog.d/5-internal/group-id-subconv-2 diff --git a/changelog.d/5-internal/group-id-subconv-2 b/changelog.d/5-internal/group-id-subconv-2 new file mode 100644 index 0000000000..75eb794702 --- /dev/null +++ b/changelog.d/5-internal/group-id-subconv-2 @@ -0,0 +1 @@ +change version and conversation type to 16 bit in group ID serialisation diff --git a/libs/wire-api/src/Wire/API/MLS/Group/Serialisation.hs b/libs/wire-api/src/Wire/API/MLS/Group/Serialisation.hs index 061a72abd8..3fb9a7dd3d 100644 --- a/libs/wire-api/src/Wire/API/MLS/Group/Serialisation.hs +++ b/libs/wire-api/src/Wire/API/MLS/Group/Serialisation.hs @@ -62,8 +62,8 @@ convToGroupId :: GroupIdParts -> GroupId convToGroupId parts = GroupId . L.toStrict . runPut $ do let cs = qUnqualified parts.qConvId subId = foldMap unSubConvId cs.subconv - putWord64be 1 -- Version 1 of the GroupId format - putWord32be (fromIntegral $ fromEnum parts.convType) + putWord16be 1 -- Version 1 of the GroupId format + putWord16be (fromIntegral $ fromEnum parts.convType) putLazyByteString . UUID.toByteString . toUUID $ cs.conv putWord8 $ fromIntegral (T.length subId) putByteString $ T.encodeUtf8 subId @@ -82,8 +82,8 @@ groupIdToConv gid = do } where readConv = do - version <- getWord64be - ct <- getWord32be + version <- getWord16be + ct <- getWord16be unless (version == 1) $ fail "unsupported groupId version" mUUID <- UUID.fromByteString . L.fromStrict <$> getByteString 16 uuid <- maybe (fail "invalid conversation UUID in groupId") pure mUUID