OpenVPN 3 Core Library
Loading...
Searching...
No Matches
test_psid_cookie.cpp File Reference
#include "test_common.hpp"
#include <cstring>
#include <openvpn/buffer/bufstr.hpp>
#include <openvpn/frame/frame_init.hpp>
#include <openvpn/ssl/psid_cookie_impl.hpp>
Include dependency graph for test_psid_cookie.cpp:

Go to the source code of this file.

Classes

union  uland_addr46
 
class  ClientAddressMock
 
class  PsidCookieTest
 
class  PsidCookieInterceptTest
 
struct  PsidCookieInterceptTest::Fixture
 
class  MetadataRecorder
 Records what unwrap_tls_crypt_wkc() handed the hook, and answers with accept. More...
 
class  MetadataRecorderFactory
 The hook an embedder installs, standing in for PG's. More...
 
class  PsidCookieTlsCryptV2Test
 Tests for the tls-crypt-v2 arm of intercept() More...
 
class  RecordingTransport
 Stands in for the transport the cookie layer answers a first packet through. More...
 
class  NullProtoCallback
 A ProtoContext needs one of these; it counts what the session puts on the wire. More...
 
class  RecordingStats
 Names every error the session reports, so a test can say why a packet was dropped. More...
 
struct  CookieSession
 The session kotun.hpp creates once intercept() has returned HANDLE_2ND. More...
 
class  PsidCookieSingleServerKeyTest
 A server with one tls-crypt-v2 key in its config for every client. More...
 
class  PsidCookieTlsCryptV2OnlyTest
 A server holding a tls-crypt-v2 key and no tls-auth one. More...
 
class  TlsCryptV1SessionTest
 A tls-crypt v1 server: one key shared with every client, no tls-auth, no WKc. More...
 
class  TlsAuthSessionTest
 A plain tls-auth server: no tls-crypt of either version. More...
 

Functions

 TEST (PsidCookie, Setup)
 
 TEST_F (PsidCookieTest, CheckSetup)
 
 TEST_F (PsidCookieTest, ValidTime)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketValid)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketAcceptsAckedPktidOne)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketRejectsAckedPktidAboveOne)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketAcceptsOwnPktidOne)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketRejectsOwnPktidAboveOne)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketRejectsAckCountNotOne)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketAcceptsAckV1)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketRejectsNonZeroKeyId)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketRejectsBadCookie)
 
 TEST_F (PsidCookieInterceptTest, ThirdPacketRejectsBadHmac)
 
 TEST_F (PsidCookieTlsCryptV2Test, ThirdPacketIsForwardedIntact)
 
 TEST_F (PsidCookieTlsCryptV2Test, NothingIsLeftOnTheSharedConfig)
 
 TEST_F (PsidCookieTlsCryptV2Test, SessionDerivesItsKeyFromTheWkcOnItsFirstPacket)
 
 TEST_F (PsidCookieTlsCryptV2Test, ThirdPacketParsesWKcMetadata)
 
 TEST_F (PsidCookieTlsCryptV2Test, SessionDropsAPacketWhoseWkcDoesNotUnwrap)
 
 TEST_F (PsidCookieSingleServerKeyTest, ThirdPacketUnwrapsWithNoServerKeyIdOnTheWire)
 
 TEST_F (PsidCookieSingleServerKeyTest, SessionDerivesItsKeyWithNoServerKeyId)
 
 TEST_F (PsidCookieTlsCryptV2Test, WkcWrappingTooLittleKeyIsRejectedRatherThanThrown)
 
 TEST_F (PsidCookieTlsCryptV2Test, FirstPacketIsLeftAsItArrived)
 
 TEST_F (PsidCookieTlsCryptV2OnlyTest, ControlNetValidateAcceptsTheWkcBearingPacket)
 
 TEST_F (PsidCookieTlsCryptV2Test, ControlNetValidateAcceptsTheWkcBearingPacketOnATlsAuthServer)
 
 TEST_F (PsidCookieTlsCryptV2Test, ControlNetValidateStillJudgesNonWkcOpcodesOnATlsAuthServer)
 
 TEST_F (TlsCryptV1SessionTest, ControlNetValidateDoesNotPinThePeer)
 
 TEST_F (TlsAuthSessionTest, ControlNetValidateAcceptsAPacketBeforeAPeerIsPinned)
 
 TEST_F (PsidCookieTlsCryptV2Test, ShortInitialResetIsDroppedRatherThanThrown)
 
 TEST_F (PsidCookieTlsCryptV2Test, SessionKeepsNoKeyFromAPacketThatFailedToAuthenticate)
 
 TEST_F (PsidCookieTlsCryptV2Test, SessionKeepsNoPeerPsidFromAPacketThatFailedToAuthenticate)
 
 TEST_F (PsidCookieTlsCryptV2Test, SessionKeepsTheKeyOfItsPeersPacketThatYieldedNoMessage)
 
 TEST_F (PsidCookieTlsCryptV2Test, SessionWithoutACookieLayerJudgesTheRecordItself)
 
 TEST_F (PsidCookieTlsCryptV2Test, UnauthenticatedWkcRunsNoMetadataHook)
 
 TEST_F (PsidCookieTlsCryptV2Test, SessionWithoutMetadataFactoryMakesNoHandler)
 
 TEST_F (PsidCookieTlsCryptV2Test, TimestampMetadataIsNotUserMetadata)
 
 TEST_F (PsidCookieTlsCryptV2Test, WkcWithoutMetadataReportsNoMetadata)
 
 TEST_F (PsidCookieTlsCryptV2Test, DroppedThirdPacketRunsNoMetadataHook)
 
 TEST_F (PsidCookieTlsCryptV2Test, PacketRejectedByMetadataHookIsDroppedAndCounted)
 

Function Documentation

◆ TEST()

TEST ( PsidCookie  ,
Setup   
)

Definition at line 12 of file test_psid_cookie.cpp.

◆ TEST_F() [1/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketAcceptsAckedPktidOne   
)

Definition at line 253 of file test_psid_cookie.cpp.

◆ TEST_F() [2/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketAcceptsAckV1   
)

Definition at line 320 of file test_psid_cookie.cpp.

◆ TEST_F() [3/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketAcceptsOwnPktidOne   
)

Definition at line 281 of file test_psid_cookie.cpp.

◆ TEST_F() [4/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketRejectsAckCountNotOne   
)

Definition at line 307 of file test_psid_cookie.cpp.

◆ TEST_F() [5/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketRejectsAckedPktidAboveOne   
)

Definition at line 268 of file test_psid_cookie.cpp.

◆ TEST_F() [6/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketRejectsBadCookie   
)

Definition at line 350 of file test_psid_cookie.cpp.

◆ TEST_F() [7/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketRejectsBadHmac   
)

Definition at line 369 of file test_psid_cookie.cpp.

◆ TEST_F() [8/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketRejectsNonZeroKeyId   
)

Definition at line 337 of file test_psid_cookie.cpp.

◆ TEST_F() [9/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketRejectsOwnPktidAboveOne   
)

Definition at line 294 of file test_psid_cookie.cpp.

◆ TEST_F() [10/37]

TEST_F ( PsidCookieInterceptTest  ,
ThirdPacketValid   
)

Definition at line 239 of file test_psid_cookie.cpp.

◆ TEST_F() [11/37]

TEST_F ( PsidCookieSingleServerKeyTest  ,
SessionDerivesItsKeyWithNoServerKeyId   
)

Definition at line 944 of file test_psid_cookie.cpp.

◆ TEST_F() [12/37]

TEST_F ( PsidCookieSingleServerKeyTest  ,
ThirdPacketUnwrapsWithNoServerKeyIdOnTheWire   
)

Definition at line 931 of file test_psid_cookie.cpp.

◆ TEST_F() [13/37]

TEST_F ( PsidCookieTest  ,
CheckSetup   
)

Definition at line 127 of file test_psid_cookie.cpp.

◆ TEST_F() [14/37]

TEST_F ( PsidCookieTest  ,
ValidTime   
)

Definition at line 140 of file test_psid_cookie.cpp.

◆ TEST_F() [15/37]

TEST_F ( PsidCookieTlsCryptV2OnlyTest  ,
ControlNetValidateAcceptsTheWkcBearingPacket   
)

Definition at line 1033 of file test_psid_cookie.cpp.

◆ TEST_F() [16/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
ControlNetValidateAcceptsTheWkcBearingPacketOnATlsAuthServer   
)

Definition at line 1057 of file test_psid_cookie.cpp.

◆ TEST_F() [17/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
ControlNetValidateStillJudgesNonWkcOpcodesOnATlsAuthServer   
)

Definition at line 1083 of file test_psid_cookie.cpp.

◆ TEST_F() [18/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
DroppedThirdPacketRunsNoMetadataHook   
)

Definition at line 1423 of file test_psid_cookie.cpp.

◆ TEST_F() [19/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
FirstPacketIsLeftAsItArrived   
)

Definition at line 997 of file test_psid_cookie.cpp.

◆ TEST_F() [20/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
NothingIsLeftOnTheSharedConfig   
)

Definition at line 737 of file test_psid_cookie.cpp.

◆ TEST_F() [21/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
PacketRejectedByMetadataHookIsDroppedAndCounted   
)

Definition at line 1443 of file test_psid_cookie.cpp.

◆ TEST_F() [22/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
SessionDerivesItsKeyFromTheWkcOnItsFirstPacket   
)

Definition at line 846 of file test_psid_cookie.cpp.

◆ TEST_F() [23/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
SessionDropsAPacketWhoseWkcDoesNotUnwrap   
)

Definition at line 893 of file test_psid_cookie.cpp.

◆ TEST_F() [24/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
SessionKeepsNoKeyFromAPacketThatFailedToAuthenticate   
)

Definition at line 1219 of file test_psid_cookie.cpp.

◆ TEST_F() [25/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
SessionKeepsNoPeerPsidFromAPacketThatFailedToAuthenticate   
)

Definition at line 1251 of file test_psid_cookie.cpp.

◆ TEST_F() [26/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
SessionKeepsTheKeyOfItsPeersPacketThatYieldedNoMessage   
)

Definition at line 1275 of file test_psid_cookie.cpp.

◆ TEST_F() [27/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
SessionWithoutACookieLayerJudgesTheRecordItself   
)

Definition at line 1312 of file test_psid_cookie.cpp.

◆ TEST_F() [28/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
SessionWithoutMetadataFactoryMakesNoHandler   
)

Definition at line 1366 of file test_psid_cookie.cpp.

◆ TEST_F() [29/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
ShortInitialResetIsDroppedRatherThanThrown   
)

Definition at line 1191 of file test_psid_cookie.cpp.

◆ TEST_F() [30/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
ThirdPacketIsForwardedIntact   
)

Definition at line 714 of file test_psid_cookie.cpp.

◆ TEST_F() [31/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
ThirdPacketParsesWKcMetadata   
)

Definition at line 866 of file test_psid_cookie.cpp.

◆ TEST_F() [32/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
TimestampMetadataIsNotUserMetadata   
)

Definition at line 1382 of file test_psid_cookie.cpp.

◆ TEST_F() [33/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
UnauthenticatedWkcRunsNoMetadataHook   
)

Definition at line 1331 of file test_psid_cookie.cpp.

◆ TEST_F() [34/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
WkcWithoutMetadataReportsNoMetadata   
)

Definition at line 1402 of file test_psid_cookie.cpp.

◆ TEST_F() [35/37]

TEST_F ( PsidCookieTlsCryptV2Test  ,
WkcWrappingTooLittleKeyIsRejectedRatherThanThrown   
)

Definition at line 964 of file test_psid_cookie.cpp.

◆ TEST_F() [36/37]

TEST_F ( TlsAuthSessionTest  ,
ControlNetValidateAcceptsAPacketBeforeAPeerIsPinned   
)

Definition at line 1169 of file test_psid_cookie.cpp.

◆ TEST_F() [37/37]

TEST_F ( TlsCryptV1SessionTest  ,
ControlNetValidateDoesNotPinThePeer   
)

Definition at line 1129 of file test_psid_cookie.cpp.