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:----AtHwzZZ3pf3Alo1csF2z190WBl6vbK3AD7tkyQOAmaUp5TZ0vmV39jytxj/NWJY0eh12RE7ZVuGPSoxF40PyPmlhGsrkKxW/3EtX9TGvAntkURGIsYTbJzheW+uU59v4TBlMrH3tbbGCp2uvV8HphSZq878J93R9mxySTTb1y24oSDY66O6gdjU8gNef6nJPzuYp3nglz14vzc1l9GE//OvGBD6K5MlT4sPQD1D6XuWIZkyOJYhGoYBYafPlfcjkrAtaiovDSX9qpeHmD19Y2DObkrABQWVXcBRQ5CmjWFdg0vGGAfFqDLriDDJq/k+pj1Fka0YtDq3oSzmOTBAwKkAnr6eXSh521o1F120niqV/HfX2c+q9UzxbLj81pZckYSLWLgT76iHEJhdlevssXmEoyHwbtY1qi9SxjAayYarSMhcRqvGvupj4KUtzbZquX8awFevTRwRQ+5yZ6v3vHrMzP0+EtgmSB2F8T7N2TM99DfeYyweOthmABj0f5vnEf5GkGx0GZGEVYXq4x5sehb88f3aMj82TJ7xiYZs7q3yThcMsFixUtbaP2pc+G6Gpd6vp8hNHIWLwl6dKa/1ENF0Bgq2+NYmNIMBUhJplQ/HoNnEIu8HGUVBVaMlvrimKtTcrZ7rQ7lbx/bMe+xiHnYVZhEDPODdVnV39/Ki04sM=----ATTACHMENT:----MTAyMTAxNzMzNDU0MDk1NCA5OTA5NTEyMjgxNTkyNDEyIDIzMjI4NTA5NzA3MzMyNDQ=