#include #include #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() : oldval(llarp::NetID::DefaultValue()) { llarp::NetID::DefaultValue() = llarp::NetID(DEF_VALUE); } ~RCTest() { llarp::NetID::DefaultValue() = oldval; } llarp::sodium::CryptoLibSodium crypto; const llarp::NetID oldval; }; TEST_F(RCTest, TestSignVerify) { llarp::NetID netid(DEF_VALUE); RC_t rc; SecKey_t encr; SecKey_t sign; crypto.encryption_keygen(encr); crypto.identity_keygen(sign); rc.enckey = encr.toPublic(); rc.pubkey = sign.toPublic(); ASSERT_TRUE(rc.netID == netid); ASSERT_TRUE(rc.netID == llarp::NetID::DefaultValue()); ASSERT_TRUE(rc.Sign(&crypto, sign)); ASSERT_TRUE(rc.Verify(&crypto, llarp::time_now_ms())); }