PluginProbe
Defender Security – Malware Scanner, Login Security & Firewall / 6.3.0
Defender Security – Malware Scanner, Login Security & Firewall v6.3.0
6.3.0 6.2.3 6.2.4 6.2.0 6.2.1 6.2.2 6.1.0 5.3.1 5.4.0 5.4.1 5.5.0 5.5.1 5.6.0 5.6.1 5.6.2 5.7.0 5.7.1 5.7.2 5.8.0 5.8.1 5.9.0 6.0.0 6.0.1 3.0.1 3.1.0 All 141 releases
defender-security / lib / packages / FG / X509 / SAN / IPAddress.php

IPAddress.php in Defender Security – Malware Scanner, Login Security & Firewall 6.3.0, at lib/packages/FG/X509/SAN/IPAddress.php

74 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 WP_DEFENDER_VENDOR\FG\X509\SAN;
12
13 use WP_DEFENDER_VENDOR\FG\ASN1\ASNObject;
14 use WP_DEFENDER_VENDOR\FG\ASN1\Parsable;
15 use WP_DEFENDER_VENDOR\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 WP_DEFENDER_VENDOR\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 }
74