From 686ac2523dd1041cc89e29e8ddee0a128c5c3365 Mon Sep 17 00:00:00 2001 From: Sergey Ivanov Date: Wed, 12 Jul 2023 23:41:08 +0400 Subject: [PATCH] wip --- hbs2-core/lib/HBS2/Net/Proto/EncryptionHandshake.hs | 8 +++++++- hbs2-peer/app/PeerMain.hs | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) 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