From be2354663dad6c0232f15742894acf371fe1d42a Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 2 Jan 2019 22:21:29 +0000 Subject: [PATCH] Fix RCTest.TestSignVerify --- llarp/router.cpp | 2 +- llarp/router_contact.cpp | 9 ++++++--- llarp/router_contact.hpp | 3 +-- llarp/version.cpp | 2 ++ llarp/version.hpp | 7 ++++--- test/test_router_contact.cpp | 18 +++++++++--------- 6 files changed, 23 insertions(+), 18 deletions(-) diff --git a/llarp/router.cpp b/llarp/router.cpp index 3e0897d15..001393a2b 100644 --- a/llarp/router.cpp +++ b/llarp/router.cpp @@ -1542,7 +1542,7 @@ namespace llarp if(strlen(val) <= self->_rc.netID.size()) { llarp::LogWarn("!!!! you have manually set netid to be '", val, - "' which does not equal '", LLARP_NET_ID, + "' which does not equal '", Version::LLARP_NET_ID, "' you will run as a different network, good luck and " "don't forget: something something MUH traffic shape " "correlation !!!!"); diff --git a/llarp/router_contact.cpp b/llarp/router_contact.cpp index 4f517a958..5a25c0d3c 100644 --- a/llarp/router_contact.cpp +++ b/llarp/router_contact.cpp @@ -12,7 +12,8 @@ namespace llarp { - const byte_t *NetID::DefaultValue = (const byte_t *)LLARP_NET_ID; + const byte_t *NetID::DefaultValue = + reinterpret_cast< const byte_t * >(Version::LLARP_NET_ID); bool RouterContact::IgnoreBogons = false; @@ -23,6 +24,7 @@ namespace llarp /// 1 day for real network llarp_time_t RouterContact::Lifetime = 24 * 60 * 60 * 1000; #endif + NetID::NetID() : AlignedBuffer< 8 >() { size_t len = @@ -161,8 +163,7 @@ namespace llarp if(strbuf.sz > nickname.size()) return false; nickname.Zero(); - std::copy(strbuf.base, strbuf.base + strbuf.sz, - nickname.begin()); + std::copy(strbuf.base, strbuf.base + strbuf.sz, nickname.begin()); return true; } @@ -216,7 +217,9 @@ namespace llarp RouterContact::ExpiresSoon(llarp_time_t now, llarp_time_t dlt) const { if(IsExpired(now)) + { return true; + } auto expiresAt = last_updated + Lifetime; return expiresAt - now <= dlt; } diff --git a/llarp/router_contact.hpp b/llarp/router_contact.hpp index 186eb73d7..db03111e3 100644 --- a/llarp/router_contact.hpp +++ b/llarp/router_contact.hpp @@ -60,7 +60,7 @@ namespace llarp } RouterContact(const RouterContact &other) - : IBEncodeMessage() + : IBEncodeMessage(other.version) , addrs(other.addrs) , netID(other.netID) , enckey(other.enckey) @@ -70,7 +70,6 @@ namespace llarp , nickname(other.nickname) , last_updated(other.last_updated) { - version = other.version; } // advertised addresses diff --git a/llarp/version.cpp b/llarp/version.cpp index 91c2f8a1f..9401a2511 100644 --- a/llarp/version.cpp +++ b/llarp/version.cpp @@ -1 +1,3 @@ #include + +const char Version::LLARP_NET_ID[] = "testnet"; diff --git a/llarp/version.hpp b/llarp/version.hpp index 9bb415049..264575e03 100644 --- a/llarp/version.hpp +++ b/llarp/version.hpp @@ -29,8 +29,9 @@ #define LLARP_RELEASE_MOTTO "(dev build)" #endif -#ifndef LLARP_NET_ID -#define LLARP_NET_ID "testnet" -#endif +struct Version +{ + static const char LLARP_NET_ID[]; +}; #endif diff --git a/test/test_router_contact.cpp b/test/test_router_contact.cpp index dfbf53744..ffce6f4e5 100644 --- a/test/test_router_contact.cpp +++ b/test/test_router_contact.cpp @@ -3,32 +3,32 @@ #include #include +static const byte_t DEF_VALUE[] = "unittest"; + struct RCTest : public ::testing::Test { using RC_t = llarp::RouterContact; using SecKey_t = llarp::SecretKey; - RCTest() : crypto(llarp::Crypto::sodium{}) + static void + SetUpTestCase() { + llarp::NetID::DefaultValue = DEF_VALUE; } - void - SetUp() + RCTest() : crypto(llarp::Crypto::sodium{}), oldval(llarp::NetID::DefaultValue) { - oldval = llarp::NetID::DefaultValue; - llarp::NetID::DefaultValue = (const byte_t*)"unittest"; rc.Clear(); } - void - TearDown() + ~RCTest() { llarp::NetID::DefaultValue = oldval; } RC_t rc; llarp::Crypto crypto; - const byte_t* oldval = nullptr; + const byte_t* oldval; }; TEST_F(RCTest, TestSignVerify) @@ -37,7 +37,7 @@ TEST_F(RCTest, TestSignVerify) SecKey_t sign; crypto.encryption_keygen(encr); crypto.identity_keygen(sign); - rc.enckey = llarp::seckey_topublic(encr); + rc.enckey = encr.toPublic(); ASSERT_TRUE(rc.Sign(&crypto, sign)); ASSERT_TRUE(rc.Verify(&crypto, llarp::time_now_ms())); }