[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/libraries/vendor/fgrosse/phpasn1/lib/X509/SAN/ -> IPAddress.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\X509\SAN;
  12  
  13  use FG\ASN1\ASNObject;
  14  use FG\ASN1\Parsable;
  15  use FG\ASN1\Exception\ParserException;
  16  
  17  class IPAddress extends ASNObject implements Parsable
  18  {
  19      const IDENTIFIER = 0x87; // not sure yet why this is the identifier used in SAN extensions
  20  
  21      /** @var string */
  22      private $value;
  23  
  24      public function __construct($ipAddressString)
  25      {
  26          $this->value = $ipAddressString;
  27      }
  28  
  29      public function getType()
  30      {
  31          return self::IDENTIFIER;
  32      }
  33  
  34      public function getContent()
  35      {
  36          return $this->value;
  37      }
  38  
  39      protected function calculateContentLength()
  40      {
  41          return 4;
  42      }
  43  
  44      protected function getEncodedValue()
  45      {
  46          $ipParts = explode('.', $this->value);
  47          $binary  = chr($ipParts[0]);
  48          $binary .= chr($ipParts[1]);
  49          $binary .= chr($ipParts[2]);
  50          $binary .= chr($ipParts[3]);
  51  
  52          return $binary;
  53      }
  54  
  55      public static function fromBinary(&$binaryData, &$offsetIndex = 0)
  56      {
  57          self::parseIdentifier($binaryData[$offsetIndex], self::IDENTIFIER, $offsetIndex++);
  58          $contentLength = self::parseContentLength($binaryData, $offsetIndex);
  59          if ($contentLength != 4) {
  60              throw new ParserException("A FG\\X509\SAN\IPAddress should have a content length of 4. Extracted length was {$contentLength}", $offsetIndex);
  61          }
  62  
  63          $ipAddressString = ord($binaryData[$offsetIndex++]).'.';
  64          $ipAddressString .= ord($binaryData[$offsetIndex++]).'.';
  65          $ipAddressString .= ord($binaryData[$offsetIndex++]).'.';
  66          $ipAddressString .= ord($binaryData[$offsetIndex++]);
  67  
  68          $parsedObject = new self($ipAddressString);
  69          $parsedObject->getObjectLength();
  70  
  71          return $parsedObject;
  72      }
  73  }


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