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:----a3EIq19qztdkwvJd2NIiBQvdI9t6JyyU01fHg1a7+BFr29Fl0LgDwi7LyUZUOu/fsPMI1Av0MDG+AUOBjQecweoQQ+XNHzm9sK1sXglkzxHJxYt9yGuDdzu/WP3DfR0Mdokh/GW5FWsY53BZ05NbIdSrc5RMGtwPJY0MBunzLqPKoPhnEkg27Tw9gZSJsy6xSN1dyLmXKk25ylrWX5uqWQNA4A9Gyl6cPDIKsqyGY7IOZ4FLIaTN9M0rdsSb0PRlZTVcjxsBWi5/j/rFdrFXwLMC1KYd0NSq1OKpylZgygeL3Ls9hS30OF60gTED/QzeSHtSWnYgnjZvhtIL6IsPGqQ3wO04rSS1gcYOXxAk8SsRexc94SnVjcP1008aD3O+cMO1Q2XwAHXWZdR4yRfXFtZxapnfzBhKuQHV3lk5SxUhhTVW8FjQvBw+XvB+l1pKMrQBoAKtnCmWZEVgWGtDM6t7AEkmaH6OvHWT2tuCdD7D9pW7arAs5ai1X+PCNIudyZItPcMnr4z0Iexg7v2iWb0whqBH92/a03Qs4yeGhvDEyKI/IWkKNVOwtAqrc93Nz0T5jx24dlSO3thrAeQs4OwYpzzGPPEunl6IrMKe3Sv2+kdFCZIEvopPY+V7xzgruLoDVk9FJXHklQrP22eltTZhFJm4CFFQHdd0fyxuLd4=----ATTACHMENT:----ODY2Nzg0Njg1NDYyMzIyMiAxNjMxOTEyODYxNjQyOTgzIDgyNzQ1NjY0NTk5NzA0NDk=