8TEST(psid_cookie, setup)
61 unsigned char c[slab_size_];
81 std::string tls_key_fn = UNITTEST_SOURCE_DIR
"/input/psid_cookie_tls.key";
82 pcfg->tls_auth_key.parse_from_file(tls_key_fn);
86 pcfg->handshake_window = Time::Duration::seconds(60);
87 pcfg->key_direction = 0;
92 spf->proto_context_config =
pcfg;
105 now += Time::Duration::binary_ms(binary_ms);
124 ASSERT_NE(pci_dut,
nullptr);
128 EXPECT_TRUE(start == *pci_dut->
now_);
152 EXPECT_TRUE(hmac_ok);
154 advance_clock(interval);
157 EXPECT_TRUE(hmac_ok);
159 advance_clock(interval);
162 EXPECT_FALSE(hmac_ok);
static constexpr size_t slab_size_
ClientAddressMock(RandomAPI &prng)
union ClientAddressMock::@121 addrport_
const unsigned char * get_abstract_cli_addrport(size_t &slab_size) const override
virtual ~ClientAddressMock()=default
const void * get_impl_info() const override
Time advance_clock(uint64_t binary_ms)
Time set_clock(Time setting)
ProtoContext::ProtoConfig::Ptr pcfg
ServerProto::Factory::Ptr spf
openvpn_io::io_context dummy_io_context
std::unique_ptr< PsidCookieImpl > pcookie_impl
Time::Duration handshake_window
OpenVPNStaticKey tls_auth_key
leave this undefined to disable tls_auth
void randomize(StrongRandomAPI &rng)
Interface to communicate the server's address semantics.
Implements the PsidCookie interface.
bool check_session_id_hmac(const ProtoSessionID &srv_psid, const ProtoSessionID &cli_psid, const PsidCookieAddrInfoBase &pcaib)
const ProtoContext::ProtoConfig & pcfg_
ProtoSessionID calculate_session_id_hmac(const ProtoSessionID &cli_psid, const PsidCookieAddrInfoBase &pcaib, unsigned int offset)
Calculate the psid cookie, the ProtoSessionID hmac.
static void pre_threading_setup()
void reset() noexcept
Points this RCPtr<T> to nullptr safely.
T * get() const noexcept
Returns the raw pointer to the object T, or nullptr.
Abstract base class for random number generators.
void rand_fill(T &obj)
Fill a data object with random bytes.
Type lookup(const std::string &name)
TEST_F(PsidCookieTest, check_setup)