diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2024-05-27 13:08:29 +0200 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2024-05-27 13:08:29 +0200 |
commit | 75160b12821f7f4299cce7f0b69c83c1502ae071 (patch) | |
tree | 27e25e4ccaef45f0c58b22831164050d1af1d4db /vendor/fgrosse/phpasn1/lib/ASN1/TemplateParser.php | |
parent | prvi-commit (diff) | |
download | 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.gz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.bz2 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.lz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.xz 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.tar.zst 1ka-75160b12821f7f4299cce7f0b69c83c1502ae071.zip |
Diffstat (limited to '')
-rw-r--r-- | vendor/fgrosse/phpasn1/lib/ASN1/TemplateParser.php | 140 |
1 files changed, 70 insertions, 70 deletions
diff --git a/vendor/fgrosse/phpasn1/lib/ASN1/TemplateParser.php b/vendor/fgrosse/phpasn1/lib/ASN1/TemplateParser.php index 90a40b0..3377ecd 100644 --- a/vendor/fgrosse/phpasn1/lib/ASN1/TemplateParser.php +++ b/vendor/fgrosse/phpasn1/lib/ASN1/TemplateParser.php @@ -1,70 +1,70 @@ -<?php -/* - * This file is part of the PHPASN1 library. - * - * Copyright © Friedrich Große <friedrich.grosse@gmail.com> - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace FG\ASN1; - -use Exception; -use FG\ASN1\Exception\ParserException; -use FG\ASN1\Universal\Sequence; - -class TemplateParser -{ - /** - * @param string $data - * @param array $template - * @return \FG\ASN1\ASNObject|Sequence - * @throws ParserException if there was an issue parsing - */ - public function parseBase64($data, array $template) - { - // TODO test with invalid data - return $this->parseBinary(base64_decode($data), $template); - } - - /** - * @param string $binary - * @param array $template - * @return \FG\ASN1\ASNObject|Sequence - * @throws ParserException if there was an issue parsing - */ - public function parseBinary($binary, array $template) - { - $parsedObject = ASNObject::fromBinary($binary); - - foreach ($template as $key => $value) { - $this->validate($parsedObject, $key, $value); - } - - return $parsedObject; - } - - private function validate(ASNObject $object, $key, $value) - { - if (is_array($value)) { - $this->assertTypeId($key, $object); - - /* @var Construct $object */ - foreach ($value as $key => $child) { - $this->validate($object->current(), $key, $child); - $object->next(); - } - } else { - $this->assertTypeId($value, $object); - } - } - - private function assertTypeId($expectedTypeId, ASNObject $object) - { - $actualType = $object->getType(); - if ($expectedTypeId != $actualType) { - throw new Exception("Expected type ($expectedTypeId) does not match actual type ($actualType"); - } - } -} +<?php
+/*
+ * This file is part of the PHPASN1 library.
+ *
+ * Copyright © Friedrich Große <friedrich.grosse@gmail.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace FG\ASN1;
+
+use Exception;
+use FG\ASN1\Exception\ParserException;
+use FG\ASN1\Universal\Sequence;
+
+class TemplateParser
+{
+ /**
+ * @param string $data
+ * @param array $template
+ * @return \FG\ASN1\ASNObject|Sequence
+ * @throws ParserException if there was an issue parsing
+ */
+ public function parseBase64($data, array $template)
+ {
+ // TODO test with invalid data
+ return $this->parseBinary(base64_decode($data), $template);
+ }
+
+ /**
+ * @param string $binary
+ * @param array $template
+ * @return \FG\ASN1\ASNObject|Sequence
+ * @throws ParserException if there was an issue parsing
+ */
+ public function parseBinary($binary, array $template)
+ {
+ $parsedObject = ASNObject::fromBinary($binary);
+
+ foreach ($template as $key => $value) {
+ $this->validate($parsedObject, $key, $value);
+ }
+
+ return $parsedObject;
+ }
+
+ private function validate(ASNObject $object, $key, $value)
+ {
+ if (is_array($value)) {
+ $this->assertTypeId($key, $object);
+
+ /* @var Construct $object */
+ foreach ($value as $key => $child) {
+ $this->validate($object->current(), $key, $child);
+ $object->next();
+ }
+ } else {
+ $this->assertTypeId($value, $object);
+ }
+ }
+
+ private function assertTypeId($expectedTypeId, ASNObject $object)
+ {
+ $actualType = $object->getType();
+ if ($expectedTypeId != $actualType) {
+ throw new Exception("Expected type ($expectedTypeId) does not match actual type ($actualType");
+ }
+ }
+}
|