core: disable creation of decryption errors chat items (#2365)

This commit is contained in:
spaced4ndy 2023-05-02 19:38:58 +04:00 committed by GitHub
parent 7ff8dcfb78
commit e3011a1cb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 12 deletions

View File

@ -2882,17 +2882,21 @@ processAgentMessageConn user@User {userId} corrId agentConnId agentMessage = do
-- TODO add debugging output -- TODO add debugging output
_ -> pure () _ -> pure ()
-- TODO revert to commented function to enable creation of decryption errors chat items
agentMsgDecryptError :: AgentErrorType -> Maybe (MsgDecryptError, Word32) agentMsgDecryptError :: AgentErrorType -> Maybe (MsgDecryptError, Word32)
agentMsgDecryptError = \case agentMsgDecryptError _ = Nothing
AGENT (A_CRYPTO RATCHET_HEADER) -> Just (MDERatchetHeader, 1)
AGENT (A_CRYPTO (RATCHET_SKIPPED n)) -> Just (MDETooManySkipped, n) -- agentMsgDecryptError :: AgentErrorType -> Maybe (MsgDecryptError, Word32)
-- we are not treating this as decryption error, as in many cases it happens as the result of duplicate or redundant delivery, -- agentMsgDecryptError = \case
-- and we don't have a way to differentiate. -- AGENT (A_CRYPTO RATCHET_HEADER) -> Just (MDERatchetHeader, 1)
-- we could store the hashes of past messages in the agent, or delaying message deletion after ACK -- AGENT (A_CRYPTO (RATCHET_SKIPPED n)) -> Just (MDETooManySkipped, n)
-- A_DUPLICATE -> Nothing -- -- we are not treating this as decryption error, as in many cases it happens as the result of duplicate or redundant delivery,
-- earlier messages may be received in case of redundant delivery, and do not necessarily indicate an error -- -- and we don't have a way to differentiate.
-- AGENT (A_CRYPTO (RATCHET_EARLIER n)) -> Nothing -- -- we could store the hashes of past messages in the agent, or delaying message deletion after ACK
_ -> Nothing -- -- A_DUPLICATE -> Nothing
-- -- earlier messages may be received in case of redundant delivery, and do not necessarily indicate an error
-- -- AGENT (A_CRYPTO (RATCHET_EARLIER n)) -> Nothing
-- _ -> Nothing
mdeUpdatedCI :: (MsgDecryptError, Word32) -> CChatItem c -> Maybe (ChatItem c 'MDRcv, CIContent 'MDRcv) mdeUpdatedCI :: (MsgDecryptError, Word32) -> CChatItem c -> Maybe (ChatItem c 'MDRcv, CIContent 'MDRcv)
mdeUpdatedCI (mde', n') (CChatItem _ ci@ChatItem {content = CIRcvDecryptionError mde n}) mdeUpdatedCI (mde', n') (CChatItem _ ci@ChatItem {content = CIRcvDecryptionError mde n})

View File

@ -82,7 +82,7 @@ chatDirectTests = do
it "mark contact verified" testMarkContactVerified it "mark contact verified" testMarkContactVerified
it "mark group member verified" testMarkGroupMemberVerified it "mark group member verified" testMarkGroupMemberVerified
describe "message errors" $ do describe "message errors" $ do
it "show message decryption error and update count" testMsgDecryptError xit "show message decryption error and update count" testMsgDecryptError
testAddContact :: HasCallStack => SpecWith FilePath testAddContact :: HasCallStack => SpecWith FilePath
testAddContact = versionTestMatrix2 runTestAddContact testAddContact = versionTestMatrix2 runTestAddContact

View File

@ -52,7 +52,7 @@ chatGroupTests = do
it "group link member role" testGroupLinkMemberRole it "group link member role" testGroupLinkMemberRole
it "leaving and deleting the group joined via link should NOT delete previously existing direct contacts" testGroupLinkLeaveDelete it "leaving and deleting the group joined via link should NOT delete previously existing direct contacts" testGroupLinkLeaveDelete
describe "group message errors" $ do describe "group message errors" $ do
it "show message decryption error and update count" testGroupMsgDecryptError xit "show message decryption error and update count" testGroupMsgDecryptError
testGroup :: HasCallStack => SpecWith FilePath testGroup :: HasCallStack => SpecWith FilePath
testGroup = versionTestMatrix3 runTestGroup testGroup = versionTestMatrix3 runTestGroup