diff --git a/hbs2-core/lib/HBS2/Net/Proto/EncryptionHandshake.hs b/hbs2-core/lib/HBS2/Net/Proto/EncryptionHandshake.hs index 05763e23..f6060e60 100644 --- a/hbs2-core/lib/HBS2/Net/Proto/EncryptionHandshake.hs +++ b/hbs2-core/lib/HBS2/Net/Proto/EncryptionHandshake.hs @@ -117,6 +117,8 @@ encryptionHandshakeProto EncryptionHandshakeAdapter{..} penv = \case mpeerData <- find (KnownPeerKey peer) id -- TODO: check theirsign trace $ "EHSP ResetEncryptionKeys from" <+> viaShow (peer, mpeerData) + + -- сначала удалим у себя его прошлый ключ encHandshake_considerPeerAsymmKey peer mpeerData Nothing creds <- getCredentials @s @@ -138,7 +140,10 @@ encryptionHandshakeProto EncryptionHandshakeAdapter{..} penv = \case -- подписать нонс let sign = makeSign @s (view peerSignSk creds) (unEENonce nonce0 <> (cs . serialise) ourpubkey) - -- отправить обратно вместе с публичным ключом + -- сначала удалим у себя его прошлый ключ + encHandshake_considerPeerAsymmKey peer mpeerData Nothing + + -- отправить обратно свой публичный ключ -- отправится пока ещё в плоском виде response (AckEncryptionExchange @e nonce0 sign ourpubkey) @@ -152,6 +157,7 @@ encryptionHandshakeProto EncryptionHandshakeAdapter{..} penv = \case trace $ "EHSP AckEncryptionExchange from" <+> viaShow (peer, mpeerData) + -- Он уже прописал у себя наш публичный ключ и готов общаться шифрованными сообщениями -- Прописываем его ключ у себя encHandshake_considerPeerAsymmKey peer mpeerData (Just theirpubkey) diff --git a/hbs2-peer/app/PeerMain.hs b/hbs2-peer/app/PeerMain.hs index d9293c93..0aca3331 100644 --- a/hbs2-peer/app/PeerMain.hs +++ b/hbs2-peer/app/PeerMain.hs @@ -656,7 +656,7 @@ runPeer opts = U.handle (\e -> myException e deletePeerAsymmKey brains peer deletePeerSymmKey brains peer Just pk -> do - emit PeerAsymmInfoKey (PeerAsymmPubKey peer pk) + -- emit PeerAsymmInfoKey (PeerAsymmPubKey peer pk) insertPeerAsymmKey brains peer pk insertPeerSymmKey brains peer $ genCommonSecret @s