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 / ASN1 / Universal / RelativeObjectIdentifier.php

RelativeObjectIdentifier.php in Defender Security – Malware Scanner, Login Security & Firewall 6.3.0, at lib/packages/FG/ASN1/Universal/RelativeObjectIdentifier.php

58 lines 1.9 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\ASN1\Universal;
12
13 use Exception;
14 use WP_DEFENDER_VENDOR\FG\ASN1\Parsable;
15 use WP_DEFENDER_VENDOR\FG\ASN1\Identifier;
16 use WP_DEFENDER_VENDOR\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 }
58