what to do when unable to decrypt messages

This commit is contained in:
Sergey Ivanov 2023-07-13 01:39:27 +04:00
parent 43652343ab
commit 8944b5a1c0
1 changed files with 10 additions and 10 deletions

View File

@ -154,31 +154,31 @@ receiveFromProxyMessaging bus _ = liftIO do
-- Здесь: -- Здесь:
-- 1. У нас есть ключ сессии и мы не смогли расшифровать -> do -- 1. У нас есть ключ сессии и мы не смогли расшифровать -> do
-- удаляем у себя ключ -- удаляем у себя ключ
-- отправляем sendResetEncryptionKeys -- отправляем sendBeginEncryptionExchange
-- 2. У нас нет ключа сессии -> do -- 2. У нас (до сих пор, даже если мы давно стартовали) нет ключа сессии -> do
-- sendResetEncryptionKeys
-- просто передаём сообщение как есть -- просто передаём сообщение как есть
-- В протоколе пингов: -- В протоколе пингов:
-- 1. Если слишком долго нет ответа на ping, то удаляем у себя ключ, отправляем sendResetEncryptionKeys -- 1. Если слишком долго нет ответа на ping, то удаляем у себя ключ, отправляем sendResetEncryptionKeys
-- TODO:
-- Если мы не смогли, по любой причине, расшифровать сообщение,
-- то нужно стереть у себя ключ
-- Если мы не смогли, по любой причине, расшифровать сообщение,
-- но уверены что оно зашифровано, то нужно отправить
-- sendResetEncryptionKeys
where where
dfm :: Peer L4Proto -> Maybe Encrypt.CombinedKey -> LBS.ByteString -> IO (Maybe LBS.ByteString) dfm :: Peer L4Proto -> Maybe Encrypt.CombinedKey -> LBS.ByteString -> IO (Maybe LBS.ByteString)
dfm = \whom mk msg -> case mk of dfm = \whom mk msg -> case mk of
Nothing -> do Nothing -> do
trace $ "ENCRYPTION RECEIVE: we do not have a key to decode" <+> pretty whom trace $ "ENCRYPTION RECEIVE: we do not have a key to decode" <+> pretty whom
-- TODO: run sendResetEncryptionKeys
pure (Just msg) pure (Just msg)
Just k -> runMaybeT $ Just k -> runMaybeT $
-- А будем-ка мы просто передавать сообщение дальше как есть, если не смогли расшифровать -- А будем-ка мы просто передавать сообщение дальше как есть, если не смогли расшифровать
(<|> (do (<|> (do
-- И сотрём ключ из памяти
-- сотрём ключ из памяти
-- liftIO $ atomically $ modifyTVar' (view proxyEncryptionKeys bus) $ Lens.at whom .~ Nothing -- liftIO $ atomically $ modifyTVar' (view proxyEncryptionKeys bus) $ Lens.at whom .~ Nothing
-- TODO: удаляем у себя ключ
-- TODO: run sendBeginEncryptionExchange
trace $ "ENCRYPTION RECEIVE: got plain message. clearing key of" <+> pretty whom trace $ "ENCRYPTION RECEIVE: got plain message. clearing key of" <+> pretty whom
pure msg pure msg
)) $ )) $