From a94ae7d77dce5a3d3c3440f8dfc3a2ce5a4c0d0e Mon Sep 17 00:00:00 2001 From: orignal Date: Sat, 6 Aug 2022 16:25:46 -0400 Subject: [PATCH] update keys for NTCP2 and SSU2 addreses --- libi2pd/RouterContext.cpp | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/libi2pd/RouterContext.cpp b/libi2pd/RouterContext.cpp index 0a7b8342..2c24fc65 100644 --- a/libi2pd/RouterContext.cpp +++ b/libi2pd/RouterContext.cpp @@ -338,18 +338,22 @@ namespace i2p { auto& addresses = m_RouterInfo.GetAddresses (); bool found = false, updated = false; - for (auto it = addresses.begin (); it != addresses.end (); ++it) + for (auto it = addresses.begin (); it != addresses.end ();) { if ((*it)->IsNTCP2 ()) { found = true; - if (!enable) + if (enable) { - addresses.erase (it); - updated= true; - } - break; + (*it)->s = m_NTCP2Keys->staticPublicKey; + memcpy ((*it)->i, m_NTCP2Keys->iv, 16); + } + else + it = addresses.erase (it); + updated = true;; } + else + it++; } if (enable && !found) { @@ -386,18 +390,22 @@ namespace i2p { auto& addresses = m_RouterInfo.GetAddresses (); bool found = false, updated = false; - for (auto it = addresses.begin (); it != addresses.end (); ++it) + for (auto it = addresses.begin (); it != addresses.end ();) { if ((*it)->IsSSU2 ()) { found = true; - if (!enable) + if (enable) { - addresses.erase (it); - updated= true; - } - break; + (*it)->s = m_SSU2Keys->staticPublicKey; + (*it)->i = m_SSU2Keys->intro; + } + else + it = addresses.erase (it); + updated = true; } + else + it++; } if (enable && !found) {