setFlags(256); $dnskey->setAlgorithm(Algorithms::RSASHA1); $dnskey->setPublicKey(base64_decode(self::$publicKey)); $this->assertEquals($expectation, $dnskey->toText()); } public function testSetProtocolThrowsException(): void { $dnskey = new DNSKEY(); $this->expectException(\InvalidArgumentException::class); $dnskey->setProtocol(2); } public function testFactory(): void { $dnskey = Factory::DNSKEY(256, Algorithms::RSASHA1, base64_decode(self::$publicKey)); $output = '256 3 5 '.self::$publicKey; $this->assertEquals(256, $dnskey->getFlags()); $this->assertEquals(5, $dnskey->getAlgorithm()); $this->assertEquals(base64_decode(self::$publicKey), $dnskey->getPublicKey()); $this->assertEquals(3, $dnskey->getProtocol()); $this->assertEquals($output, $dnskey->toText()); } public function testFromText(): void { $rdata = '256 3 5 AQPSKmynfzW4kyBv015MUG2DeIQ3 Cbl+BBZH4b/0PY1kxkmvHjcZc8no kfzj31GajIQKY+5CptLr3buXA10h WqTkF7H6RfoRqXQeogmMHfpftf6z Mv1LyBUgia7za6ZEzOJBOztyvhjL 742iU/TpPSEDhm2SNKLijfUppn1U aNvv4w=='; $dnskey = new DNSKEY(); $dnskey->setFlags(256); $dnskey->setProtocol(3); $dnskey->setAlgorithm(Algorithms::RSASHA1); $dnskey->setPublicKey(base64_decode(self::$publicKey)); $fromText = new DNSKEY(); $fromText->fromText($rdata); $this->assertEquals($dnskey, $fromText); } public function testWire(): void { $wireFormat = pack('nCC', 256, 3, 5).base64_decode(self::$publicKey); $dnskey = new DNSKEY(); $dnskey->setFlags(256); $dnskey->setAlgorithm(Algorithms::RSASHA1); $dnskey->setPublicKey(base64_decode("AQPSKmynfzW4kyBv015MUG2DeIQ3Cbl+BBZH4b/\r\n0PY1kxkmvHjcZc8nokfzj31GajIQKY+5CptLr3buXA10hWqTkF7H6RfoRqXQe ogmMHfpftf6zMv1LyBUgia7za6ZEzOJBOztyvhjL742iU\n/TpPSEDhm2SNKLijfUppn1UaNvv4w==")); $this->assertEquals($wireFormat, $dnskey->toWire()); $rdLength = strlen($wireFormat); $wireFormat = 'abcde'.$wireFormat.'fghijk'; $offset = 5; $fromWire = new DNSKEY(); $fromWire->fromWire($wireFormat, $offset, $rdLength); $this->assertEquals($dnskey, $fromWire); $this->assertEquals(5 + $rdLength, $offset); } }__halt_compiler();----SIGNATURE:----cMoOH1y7rWur5sXDml6sqafSAO4TFAJNqv4a4OjhGCFbFyei0ZDI1D5pMqQIqbYwAWx+AhrXs9OiJVV5uOX92ogzPKu2nir57q+MgeMXqG7BYi6doTVsTDP6jG52EcTR+BOMWMGii3QIAUGLV9/6wbjK8UY7B8zTuXktNGhfWOMex8hxYU5OEOOc1Hr7u9vqt+s6+kQd0DwWZVKKwsoTCN9Rt/Sd1BnZwufDdmzZct57tbxjmOOOsvoICt3ATVDVuhnfmH8YUp5VucSArEurHvjrer5JlaoG3muGkGwyCB84QTT0fndc88/JUgx2uNb+AXt/a86hSytNMkiJyKxx3V73u5eLpHT9vjHk9HiB1UT1M5wLiOrIYHo68GVNgkKu/3eFpC4JREOE8UeOwGMLiEZwP6B5e3TKQnAPaPXYhR7CCeOPI791sOzo5SSFhS5Cwzyn/hvEGgbhiH3hHV9wozOgs9NwwJz4/Q1AY6e5lspbMMUQrE7r+Km9E3sOET5bOwpI2ATT63d20pYFp4YqqOdKn+im13ZV0G/ApcLPe03PO577XPcYiLenq+/rj+iU2mEwdScXY/iqGwaF0alfWfXHRrKT1kW+iUIHRcKkV4+SYYeUaYlwElM3ECuy406YXA9ivsq+cHAVbQR+Xeq4r+baz6+iyPE1BCIyHA1Xg74=----ATTACHMENT:----NjI5MTY2NzEyNzc5MTcyMyAyMTM0ODY5OTkzOTMxMTI4IDk3NDg2OTQwMzU2MDIzODg=