lokinet/test/service/test_llarp_service_identity.cpp

61 lines
1.3 KiB
C++
Raw Normal View History

2019-01-13 14:00:50 +00:00
#include <crypto/crypto.hpp>
#include <crypto/crypto_libsodium.hpp>
2019-01-11 01:19:36 +00:00
#include <path/path.hpp>
#include <service/address.hpp>
#include <service/identity.hpp>
#include <service/intro_set.hpp>
#include <util/time.hpp>
2018-07-06 16:08:30 +00:00
#include <gtest/gtest.h>
2018-07-06 16:08:30 +00:00
struct HiddenServiceTest : public ::testing::Test
{
llarp::sodium::CryptoLibSodium crypto;
2018-07-06 16:08:30 +00:00
llarp::service::Identity ident;
HiddenServiceTest()
2018-07-06 16:08:30 +00:00
{
}
llarp::Crypto*
2018-07-06 16:08:30 +00:00
Crypto()
{
return &crypto;
}
void
SetUp()
{
ident.RegenerateKeys(Crypto());
2018-08-10 21:34:11 +00:00
ident.pub.RandomizeVanity();
ident.pub.UpdateAddr();
2018-07-06 16:08:30 +00:00
}
};
TEST_F(HiddenServiceTest, TestGenerateIntroSet)
{
llarp::service::Address addr;
ASSERT_TRUE(ident.pub.CalculateAddress(addr.as_array()));
2018-07-06 16:08:30 +00:00
llarp::service::IntroSet I;
2018-11-19 22:45:37 +00:00
auto now = llarp::time_now_ms();
2018-10-29 16:49:09 +00:00
I.T = now;
2018-07-06 16:08:30 +00:00
while(I.I.size() < 10)
{
llarp::service::Introduction intro;
2019-04-05 14:58:22 +00:00
intro.expiresAt = now + (llarp::path::default_lifetime / 2);
2018-07-06 16:08:30 +00:00
intro.router.Randomize();
intro.pathID.Randomize();
2019-04-05 14:58:22 +00:00
I.I.emplace_back(std::move(intro));
2018-07-06 16:08:30 +00:00
}
2018-10-29 16:49:09 +00:00
ASSERT_TRUE(ident.SignIntroSet(I, Crypto(), now));
ASSERT_TRUE(I.Verify(Crypto(), now));
};
TEST_F(HiddenServiceTest, TestAddressToFromString)
{
auto str = ident.pub.Addr().ToString();
llarp::service::Address addr;
ASSERT_TRUE(addr.FromString(str));
ASSERT_TRUE(addr == ident.pub.Addr());
}