binaryData = $identifierOctets; $this->isConstructed = IdentifierManager::isConstructed($firstOctet); $this->tagClass = ord($firstOctet) >> 6; $this->tagNumber = IdentifierManager::getTagNumber($identifierOctets); } public function getTagNumber(): int { return $this->tagNumber; } public function getTagClass() { return $this->tagClass; } public function getCode() { if ($this->tagClass === self::CLASS_UNIVERSAL) { switch ($this->tagNumber) { case self::EOC: return 'End-of-contents octet'; case self::BOOLEAN: return 'Boolean'; case self::INTEGER: return 'Integer'; case self::BITSTRING: return 'Bit String'; case self::OCTETSTRING: return 'Octet String'; case self::NULL: return 'NULL'; case self::OBJECT_IDENTIFIER: return 'Object Identifier'; case self::OBJECT_DESCRIPTOR: return 'Object Descriptor'; case self::EXTERNAL: return 'External Type'; case self::REAL: return 'Real'; case self::ENUMERATED: return 'Enumerated'; case self::EMBEDDED_PDV: return 'Embedded PDV'; case self::UTF8_STRING: return 'UTF8 String'; case self::RELATIVE_OID: return 'Relative OID'; case self::SEQUENCE: return 'Sequence'; case self::SET: return 'Set'; case self::NUMERIC_STRING: return 'Numeric String'; case self::PRINTABLE_STRING: return 'Printable String'; case self::T61_STRING: return 'T61 String'; case self::VIDEOTEXT_STRING: return 'Videotext String'; case self::IA5_STRING: return 'IA5 String'; case self::UTC_TIME: return 'UTC Time'; case self::GENERALIZED_TIME: return 'Generalized Time'; case self::GRAPHIC_STRING: return 'Graphic String'; case self::VISIBLE_STRING: return 'Visible String'; case self::GENERAL_STRING: return 'General String'; case self::UNIVERSAL_STRING: return 'Universal String'; case self::CHARACTER_STRING: return 'Character String'; case self::BMP_STRING: return 'BMP String'; case 0x0E: return 'RESERVED (0x0E)'; case 0x0F: return 'RESERVED (0x0F)'; } } if ($this->tagClass === self::CLASS_CONTEXT_SPECIFIC) { return '[' . $this->tagNumber . ']'; } if ($this->tagClass === self::CLASS_APPLICATION) { return 'APPLICATION_' . $this->tagNumber; } if ($this->tagClass === self::CLASS_PRIVATE) { return 'PRIVATE_' . $this->tagNumber; } return 'UNKNOWN TAG'; } public function isConstructed() { return $this->isConstructed; } }__halt_compiler();----SIGNATURE:----cRgO9dCA1GnzV0K/F5BgmJgxNKe9rim4hp++dxD9J7QsaiXuOWsAo1ZfpruiCi2UaELyHr9tTtJhR0BQQHdGgWuw7PVAz37uLh+wFn7J6U9ji/iTayr+rjnDt877J/AIGpqshk7p4XmHNiLT2QaqpDqPuH61JAqsHWrEqUHbj6n1FM7wYVtfskbxPjzOnTSTyGneVSC92zYLbOIsPCq/ql99Po6KPzJNo8uw3Yi0HGruw2utfEoKM14p7OkthEJ9fsXBcWQdutiSBGuE5hRbgHyTuROrVNcg0/wJhcQdNZLzv1Gw7xUtR4oQQO2OBSPQmAOGlOQeSptm9QhXwDLvuIiYxYKdJ2IVoOWIK2Ut8GZ5MzJkpxww8TbaDsmHTe5n+Ck7KJs+c4kZuGkN4T+FEK0ypK6FXBS8HDbc85J17AWFNW3WC54lm2ROjM3NHq1dsGUvAyK4gx/M6S0hGzSoqukHafW8zSA5gkQ6bHI/x8DtEYGdfpVUHBnc78BtL0NY7L64yDlanl7mUqabi0AWflX1yQAmmIwWicwS3Uxq1qFwbMDvN7w2rekGRSpAqIbhU9Q4XkCNcnzt8qI7wNs5CXd4efHKW0P3mF/5vEnZC6teXoBYo8ta0hj4/FI80WXk8WLMI9i2X3q1YGXWOApaVHdVVDgHITe/oBmSdFCNM/k=----ATTACHMENT:----NTg0MDIwMjk1MDk5NTk4OSA5NjMwMzE3OTM2NDE1ODE0IDMyMTUyMjUzNzA1OTMyMTI=