From 3d8c1cfdb2ac537e1bcf486d8a9d0800bebfb952 Mon Sep 17 00:00:00 2001 From: Keith Solomon Date: Sat, 25 Jul 2026 22:39:29 -0500 Subject: [PATCH] feat: add TurnToken HMAC for match-action anti-cheat --- src/Application/TurnToken.php | 79 +++++++++++++++++++++ tests/Unit/Application/TurnTokenTest.php | 88 ++++++++++++++++++++++++ 2 files changed, 167 insertions(+) create mode 100644 src/Application/TurnToken.php create mode 100644 tests/Unit/Application/TurnTokenTest.php diff --git a/src/Application/TurnToken.php b/src/Application/TurnToken.php new file mode 100644 index 0000000..33f13fd --- /dev/null +++ b/src/Application/TurnToken.php @@ -0,0 +1,79 @@ +expectException(InvalidArgumentException::class); + + TurnToken::issue(self::SECRET, 'not-hex!', 'alpha', 1, 0); + } + + public function testIssueRejectsAnEmptyActiveTeamId(): void + { + $this->expectException(InvalidArgumentException::class); + + TurnToken::issue(self::SECRET, '0123456789abcdef', '', 1, 0); + } + + public function testIssueRejectsANegativeRound(): void + { + $this->expectException(InvalidArgumentException::class); + + TurnToken::issue(self::SECRET, '0123456789abcdef', 'alpha', 0, 0); + } +}