certificateUsage; } public function setCertificateUsage(int $certificateUsage): void { if (!Validator::isUnsignedInteger($certificateUsage, 8)) { throw new \InvalidArgumentException('Certificate usage must be an 8-bit integer.'); } $this->certificateUsage = $certificateUsage; } public function getSelector(): int { return $this->selector; } public function setSelector(int $selector): void { if (!Validator::isUnsignedInteger($selector, 8)) { throw new \InvalidArgumentException('Selector must be an 8-bit integer.'); } $this->selector = $selector; } public function getMatchingType(): int { return $this->matchingType; } public function setMatchingType(int $matchingType): void { if (!Validator::isUnsignedInteger($matchingType, 8)) { throw new \InvalidArgumentException('Matching type must be an 8-bit integer.'); } $this->matchingType = $matchingType; } public function getCertificateAssociationData(): string { return $this->certificateAssociationData; } public function setCertificateAssociationData(string $certificateAssociationData): void { $this->certificateAssociationData = $certificateAssociationData; } public function toText(): string { return sprintf('%d %d %d %s', $this->certificateUsage, $this->selector, $this->matchingType, bin2hex($this->certificateAssociationData)); } public function toWire(): string { return pack('CCC', $this->certificateUsage, $this->selector, $this->matchingType).$this->certificateAssociationData; } /** * @throws ParseException */ public function fromText(string $text): void { $rdata = explode(Tokens::SPACE, $text); $this->setCertificateUsage((int) array_shift($rdata)); $this->setSelector((int) array_shift($rdata)); $this->setMatchingType((int) array_shift($rdata)); if (false === $certificateAssociationData = @hex2bin(implode('', $rdata))) { throw new ParseException('Unable to parse certificate association data of TLSA record. Malformed hex value.'); } $this->setCertificateAssociationData($certificateAssociationData); } public function fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null): void { if (false === $integers = unpack('C/C/C', $rdata, $offset)) { throw new DecodeException(static::TYPE, $rdata); } $offset += 3; $this->setCertificateUsage($integers['']); $this->setSelector($integers['']); $this->setMatchingType($integers['']); $cadLen = ($rdLength ?? strlen($rdata)) - 3; $this->setCertificateAssociationData(substr($rdata, $offset, $cadLen)); $offset += $cadLen; } }__halt_compiler();----SIGNATURE:----gnVpcDAr6EenTywa+Gjg0Nziikl4xtcT5h9XKI6MyMF0euHR+Z1YfsAJtUMFdLB8YH1oRnUsLMPA1KisHLmZA9YWB+wsSIROsTLHSpD/1yDg96KhV+3uakApRZO4wtsMM4f40yO0ISS0Yj+5caJ1n1ZIpyOHHCYIsobTc/yI3h5VlXyomTvdBG765YOtQKQI360uJtu/nv316EL4eTq3ocBAHsKA4eZJX9gAKHdw8hqx0P6YHid6duZ5BUA/DNUujErmgCwJ8iKcmxqydf3Q0fPHjQAeDGLSIkQIfhAhVWPy0LsOHFL7e0JPxNIrb0hbq3SMjEMJLuiAMVQyrLZCfvpMJokD6Mf/kp3FKaOSQkjgqNODIfyd/TJRBJgBYsrWrwrv1FPaADvz8yhtdl5OB0nU2PP6uq0i/SeaPL22ujyh7QMfkQUkGCatYiUBTXkEKOFv5makDqfScTvE2NGs/AWLtHHEklQxZ6Q0Un+2joqrNgguE2iMMaXkacI1DxieibiCywzMSgehhd2KiH2P8C+yQ5FKhkBoQ7ztsx1lVCzoNSXR3cqDnRZmNz26qqcpujJY8fsqx9UDfklSWeGX5yJPAMWdTxeEo9kkx78J1SJMhAHeMnn0AfWbfEZLMfcp3y5zyJdwPjOMv+XIgoympKeqaOp1Wm4SIMWJRxlDQyI=----ATTACHMENT:----NDM4NjY3MzY4NDg1MjQ1MyA0OTg3NjM1MTUwNDQ0NzY3IDE4NTUxNzQ0OTkyNTI5MzE=