0
0
mirror of https://github.com/OpenVPN/openvpn3.git synced 2024-09-20 12:12:15 +02:00
openvpn3/test/unittests/test_tokenencrypt.cpp
Arne Schwabe 775f1313a2 [test/misc] Convert token encrypt test to unittest
Signed-off-by: Arne Schwabe <arne@openvpn.net>
2022-07-01 15:57:30 +02:00

36 lines
855 B
C++

#include "test_common.h"
#include <iostream>
#include <cstring>
#include <openvpn/random/devurand.hpp>
#include <openvpn/openssl/util/tokenencrypt.hpp>
using namespace openvpn;
#ifndef ITER
#define ITER 1000
#endif
static void tryit(RandomAPI& rng, TokenEncryptDecrypt& encdec)
{
std::uint8_t data1[TokenEncrypt::Key::SIZE];
std::uint8_t data2[TokenEncrypt::Key::SIZE];
std::uint8_t data3[TokenEncrypt::Key::SIZE];
rng.rand_bytes(data1, sizeof(data1));
encdec.encrypt(data2, data1, TokenEncrypt::Key::SIZE);
encdec.decrypt(data3, data2, TokenEncrypt::Key::SIZE);
ASSERT_TRUE( ::memcmp(data1, data3, TokenEncrypt::Key::SIZE)== 0);
}
TEST(misc, tokenEncrypt)
{
RandomAPI::Ptr rng(new DevURand());
const TokenEncrypt::Key key(*rng);
TokenEncryptDecrypt encdec(key);
for (size_t i = 0; i < ITER; ++i)
tryit(*rng, encdec);
}