mirror of https://github.com/voidlizard/hbs2
what to do when unable to decrypt messages
This commit is contained in:
parent
43652343ab
commit
8944b5a1c0
|
@ -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
|
||||||
)) $
|
)) $
|
||||||
|
|
Loading…
Reference in New Issue