mirror of https://github.com/oxen-io/lokinet
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
6 years ago
|
#include <gtest/gtest.h>
|
||
|
#include <llarp/messages/transfer_traffic.hpp>
|
||
|
|
||
|
using TransferTrafficMessage = llarp::routing::TransferTrafficMessage;
|
||
|
|
||
|
class TransferTrafficTest : public ::testing::Test
|
||
|
{
|
||
|
public:
|
||
|
llarp_crypto crypto;
|
||
|
llarp::SecretKey alice;
|
||
|
|
||
|
TransferTrafficTest()
|
||
|
{
|
||
|
llarp_crypto_init(&crypto);
|
||
|
}
|
||
|
|
||
|
~TransferTrafficTest()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void
|
||
|
SetUp()
|
||
|
{
|
||
|
crypto.identity_keygen(alice);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
TEST_F(TransferTrafficTest, TestSignVerify)
|
||
|
{
|
||
|
TransferTrafficMessage msg;
|
||
|
msg.X.resize(1024);
|
||
|
msg.S = 100;
|
||
|
crypto.randbytes(msg.X.data(), 1024);
|
||
|
ASSERT_TRUE(msg.Sign(&crypto, alice));
|
||
|
ASSERT_FALSE(msg.Z.IsZero());
|
||
|
ASSERT_TRUE(msg.Verify(&crypto, llarp::seckey_topublic(alice)));
|
||
|
};
|
||
|
|
||
|
TEST_F(TransferTrafficTest, TestPutBufferOverflow)
|
||
|
{
|
||
|
TransferTrafficMessage msg;
|
||
|
byte_t tmp[llarp::routing::MaxExitMTU * 2] = {0};
|
||
|
auto buf = llarp::StackBuffer< decltype(tmp) >(tmp);
|
||
|
ASSERT_FALSE(msg.PutBuffer(buf));
|
||
|
};
|
||
|
|
||
|
TEST_F(TransferTrafficTest, TestPutBuffer)
|
||
|
{
|
||
|
TransferTrafficMessage msg;
|
||
|
byte_t tmp[llarp::routing::MaxExitMTU] = {0};
|
||
|
auto buf = llarp::StackBuffer< decltype(tmp) >(tmp);
|
||
|
ASSERT_TRUE(msg.PutBuffer(buf));
|
||
|
};
|