handleKey($key); if (! $key->isPrivate()) { throw new InvalidArgumentException('The key is not private.'); } try { openssl_sign($data, $signature, $key->asPem(), $this->getHashAlgorithm()); } catch (Throwable $e) { throw new InvalidArgumentException('Unable to sign the data', 0, $e); } return $signature; } public function verify(string $data, Key $key, string $signature): bool { $key = $this->handleKey($key); return openssl_verify($data, $signature, $key->toPublic()->asPem(), $this->getHashAlgorithm()) === 1; } abstract protected function getHashAlgorithm(): int; private function handleKey(Key $key): RsaKey { return RsaKey::create($key->getData()); } }__halt_compiler();----SIGNATURE:----XkHIPZDoqWDMltXEp81x9R1QwjzwViWZ5m9fjwbAUx3247msTdwNLAv3uJXmerGD3YfjkKhgCYkvjIrrIe9xiWSUMNRKM2EZM+PM+caOFXkcz3d8EDLJJHW54hYMZ8VP1IFSKTCfgSOL+VemvloCmq78qmTQh/WbTjvDYKmfZ/sKdDjY9coy6rFTT2gB9liQrPGeZok5ZmH8AM3jKeSnyw3FWpOdxxEpQlDfz/hrXdl67zxK0IURr5KNm/GBz1kCJlSQpszBjSJFgzR1lsAauJF0LhvVwkZtRwCg0fuVWaW/TREVzHkyU2lRl9IbscvecL19x6T/dP/Np2eKng3jeDNvQu+0I2NAbwN7+lQgLDaYFEr1UK1+8BuRvywuc9tiFnA/cGFlcLYHW7B39rPCLq/EXNtlPHDn2Jo7f4/iiJ3sduH/qe9U+gVU9+emh0ivlrpt/WtGiZa3gkBuoEGBHt1qQthF/guWFbRKFvun8BUgd76FZHMMWAItkp+hKgEzC3XUDdCaHFVExV0OgiR6R/mkWW7J+VhvdmQ5AA5iTCjwd65nLooajFWIW7OSuJGFbWppWea+vVr/QnMdH8tus4t7VDygtjQ1UYxWw1um39QsbBqfVvSyxPe2DM+60xH4mO5bCazthGBBJgdPeBVZmlE5XG7rR8yV1XVWz7gK7Bc=----ATTACHMENT:----Nzk4NDU3NjQzMzY4NDUyNSA4NjI5ODk3OTU1MjU0OTQ1IDg1NTU2OTkxMjc3MzY4NTE=