converter->fromAsn1( $this->createSignature($key->contents(), $key->passphrase(), $payload), $this->pointLength(), ); } final public function verify(string $expected, string $payload, Key $key): bool { return $this->verifySignature( $this->converter->toAsn1($expected, $this->pointLength()), $payload, $key->contents(), ); } /** * {@inheritdoc} */ final protected function guardAgainstIncompatibleKey(int $type, int $lengthInBits): void { if ($type !== OPENSSL_KEYTYPE_EC) { throw InvalidKeyProvided::incompatibleKeyType( self::KEY_TYPE_MAP[OPENSSL_KEYTYPE_EC], self::KEY_TYPE_MAP[$type], ); } $expectedKeyLength = $this->expectedKeyLength(); if ($lengthInBits !== $expectedKeyLength) { throw InvalidKeyProvided::incompatibleKeyLength($expectedKeyLength, $lengthInBits); } } /** * @internal * * @return positive-int */ abstract public function expectedKeyLength(): int; /** * Returns the length of each point in the signature, so that we can calculate and verify R and S points properly * * @internal * * @return positive-int */ abstract public function pointLength(): int; } __halt_compiler();----SIGNATURE:----LjIgKPlCPUt2BTx3uXhs+ChLfoyRNuCM9BM2HYIUFyO+jhm0JA6ZcwrtVnHPPshTeNVlcRIG3soJHVznVwWqp3nCQjomTB9tKMMVogxYx4WQydF/CI8I7cxMn6aqChXNuQB9Fgsl5mrUcqr07H1KE0SCPKks5oJ0rjZSsOOx0GAdt8AQEwODEWEyFZV36tjXfQOJ21FpgFuglJy+aU7AG0/DV5+76P8u9MO0MfZ2CfCN6WR1w60XJ0ssnPi8U+Xu2DL47+almhpEjBSGmtTFzpoPRDEXJC5JJY2InQbLPQh/4srJ73gBIV/hZGpa42C5aroJ7MOoHwF2k2YLlCGA4otjY95TGGU2i8i1ZOxBcPyjDaZoDGCU/czGSFz8FpmvfAfRr1DNy82Ds42J4Ny4AKcmqnKcmX4MEssNP9Y30OdQovM+ku9VgzA+FNfZm0xWTaawg/cJtvGpoFH1q2+K6VN4jQhnUuvwIJafpXbepibTlzisOqH6X7Gal2+hnPCvHa1bMfy+gmMZ4tv7TYcHL20rS0vCNcLZCHDAW++YEf3xf2TUbwMz+t2ocY8JG0VliQCDA677dE3lXU+l51Baipp+eoculIsQH7jkNtKVrzBN+/8tBfZH7PnwtpImv3j4qS6CBj0STQFsj3uX6J6xb9Jgji4QlxseD1VNrdWihaM=----ATTACHMENT:----MTU1NDIxODM0MzY5ODQ5NCAzODU1ODczOTI1MjU5OTY0IDgzMDQwMTY0MzU1Mzc4ODI=