Submit
Path:
~
/
/
usr
/
local
/
psa
/
admin
/
plib
/
modules
/
platform360
/
vendor
/
spomky-labs
/
pki-framework
/
src
/
ASN1
/
File Content:
DERData.php
<?php declare (strict_types=1); namespace Platform360\SpomkyLabs\Pki\ASN1; use BadMethodCallException; use Platform360\SpomkyLabs\Pki\ASN1\Component\Identifier; use Platform360\SpomkyLabs\Pki\ASN1\Component\Length; use Platform360\SpomkyLabs\Pki\ASN1\Feature\ElementBase; use function mb_strlen; /** * Container for raw DER encoded data. * * May be inserted into structure without decoding first. * @see \SpomkyLabs\Pki\Test\ASN1\DERDataTest */ final class DERData extends Element { /** * DER encoded data. */ private readonly string $der; /** * Identifier of the underlying type. */ private readonly Identifier $identifier; /** * Offset to the content in DER data. */ private int $contentOffset = 0; /** * @param string $data DER encoded data */ private function __construct(string $data) { $this->identifier = Identifier::fromDER($data, $this->contentOffset); // check that length encoding is valid Length::expectFromDER($data, $this->contentOffset); $this->der = $data; parent::__construct($this->identifier->intTag()); } public static function create(string $data) : self { return new self($data); } public function typeClass() : int { return $this->identifier->typeClass(); } public function isConstructed() : bool { return $this->identifier->isConstructed(); } public function toDER() : string { return $this->der; } protected function encodedAsDER() : string { // if there's no content payload if (mb_strlen($this->der, '8bit') === $this->contentOffset) { return ''; } return \mb_substr($this->der, $this->contentOffset, null, '8bit'); } protected static function decodeFromDER(Identifier $identifier, string $data, int &$offset) : ElementBase { throw new BadMethodCallException(__METHOD__ . ' must be implemented in derived class.'); } }
Submit
FILE
FOLDER
INFO
Name
Size
Permission
Action
Component
---
0755
Exception
---
0755
Feature
---
0755
Type
---
0755
Util
---
0755
DERData.php
2029 bytes
0644
Element.php
15378 bytes
0644
N4ST4R_ID | Naxtarrr