From d355df841c53e7104efe3c43dcb8951cb08324e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nu=C5=A1a=20Puk=C5=A1i=C4=8D?= Date: Thu, 11 Sep 2025 14:37:47 +0200 Subject: [PATCH] Verify signatures --- src/Factory/ArticleFactory.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Factory/ArticleFactory.php b/src/Factory/ArticleFactory.php index 5c69126..2f752be 100644 --- a/src/Factory/ArticleFactory.php +++ b/src/Factory/ArticleFactory.php @@ -6,6 +6,7 @@ use App\Entity\Article; use App\Enum\EventStatusEnum; use App\Enum\KindsEnum; use InvalidArgumentException; +use Mdanter\Ecc\Crypto\Signature\SchnorrSignature; /** * Map nostr events of kind 30023 to local article entity @@ -17,6 +18,12 @@ class ArticleFactory if ($source->kind !== KindsEnum::LONGFORM->value) { throw new InvalidArgumentException('Source event kind should be 30023'); } + + $validity = (new SchnorrSignature())->verify($source->pubkey, $source->sig, $source->id); + if (!$validity) { + throw new InvalidArgumentException('Invalid event signature'); + } + $entity = new Article(); $entity->setRaw($source); $entity->setEventId($source->id);