From 8e62304471e349aff025381baad198754fd2be00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EC=B0=BD=EC=9A=B1?= Date: Sat, 11 Jul 2026 23:21:00 +0900 Subject: [PATCH] feat(cloud): HMAC sign/verify matching P1-A edge contract --- cloud/src/Security/Hmac.php | 17 +++++++++++++++++ cloud/tests/HmacTest.php | 25 +++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 cloud/src/Security/Hmac.php create mode 100644 cloud/tests/HmacTest.php diff --git a/cloud/src/Security/Hmac.php b/cloud/src/Security/Hmac.php new file mode 100644 index 0000000..6d0709d --- /dev/null +++ b/cloud/src/Security/Hmac.php @@ -0,0 +1,17 @@ +assertSame($expected, $sig); + $this->assertSame(64, strlen($sig)); + } + + public function testVerifyTrueOnMatchFalseOnTamper(): void + { + $sig = Hmac::sign('secret', 'n1', '1000.0', 'body'); + $this->assertTrue(Hmac::verify('secret', 'n1', '1000.0', 'body', $sig)); + $this->assertFalse(Hmac::verify('secret', 'n1', '1000.0', 'body-TAMPERED', $sig)); + $this->assertFalse(Hmac::verify('wrong', 'n1', '1000.0', 'body', $sig)); + } +}