[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/vendor/fgrosse/phpasn1/lib/ASN1/Universal/ -> RelativeObjectIdentifier.php (source)

   1  <?php
   2  /*
   3   * This file is part of the PHPASN1 library.
   4   *
   5   * Copyright © Friedrich Große <[email protected]>
   6   *
   7   * For the full copyright and license information, please view the LICENSE
   8   * file that was distributed with this source code.
   9   */
  10  
  11  namespace FG\ASN1\Universal;
  12  
  13  use Exception;
  14  use FG\ASN1\Parsable;
  15  use FG\ASN1\Identifier;
  16  use FG\ASN1\Exception\ParserException;
  17  
  18  class RelativeObjectIdentifier extends ObjectIdentifier implements Parsable
  19  {
  20      public function __construct($subIdentifiers)
  21      {
  22          $this->value = $subIdentifiers;
  23          $this->subIdentifiers = explode('.', $subIdentifiers);
  24          $nrOfSubIdentifiers = count($this->subIdentifiers);
  25  
  26          for ($i = 0; $i < $nrOfSubIdentifiers; $i++) {
  27              if (is_numeric($this->subIdentifiers[$i])) {
  28                  // enforce the integer type
  29                  $this->subIdentifiers[$i] = intval($this->subIdentifiers[$i]);
  30              } else {
  31                  throw new Exception("[{$subIdentifiers}] is no valid object identifier (sub identifier ".($i + 1).' is not numeric)!');
  32              }
  33          }
  34      }
  35  
  36      public function getType()
  37      {
  38          return Identifier::RELATIVE_OID;
  39      }
  40  
  41      public static function fromBinary(&$binaryData, &$offsetIndex = 0)
  42      {
  43          self::parseIdentifier($binaryData[$offsetIndex], Identifier::RELATIVE_OID, $offsetIndex++);
  44          $contentLength = self::parseContentLength($binaryData, $offsetIndex, 1);
  45  
  46          try {
  47              $oidString = self::parseOid($binaryData, $offsetIndex, $contentLength);
  48          } catch (ParserException $e) {
  49              throw new ParserException('Malformed ASN.1 Relative Object Identifier', $e->getOffset());
  50          }
  51  
  52          $parsedObject = new self($oidString);
  53          $parsedObject->setContentLength($contentLength);
  54  
  55          return $parsedObject;
  56      }
  57  }


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer