summaryrefslogtreecommitdiffstats
path: root/vendor/fgrosse/phpasn1/lib/ASN1/Composite
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/fgrosse/phpasn1/lib/ASN1/Composite')
-rw-r--r--vendor/fgrosse/phpasn1/lib/ASN1/Composite/AttributeTypeAndValue.php35
-rw-r--r--vendor/fgrosse/phpasn1/lib/ASN1/Composite/RDNString.php37
-rw-r--r--vendor/fgrosse/phpasn1/lib/ASN1/Composite/RelativeDistinguishedName.php50
3 files changed, 122 insertions, 0 deletions
diff --git a/vendor/fgrosse/phpasn1/lib/ASN1/Composite/AttributeTypeAndValue.php b/vendor/fgrosse/phpasn1/lib/ASN1/Composite/AttributeTypeAndValue.php
new file mode 100644
index 0000000..3f4027c
--- /dev/null
+++ b/vendor/fgrosse/phpasn1/lib/ASN1/Composite/AttributeTypeAndValue.php
@@ -0,0 +1,35 @@
+<?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\Composite;
+
+use FG\ASN1\ASNObject;
+use FG\ASN1\Universal\Sequence;
+use FG\ASN1\Universal\ObjectIdentifier;
+
+class AttributeTypeAndValue extends Sequence
+{
+ /**
+ * @param ObjectIdentifier|string $objIdentifier
+ * @param \FG\ASN1\ASNObject $value
+ */
+ public function __construct($objIdentifier, ASNObject $value)
+ {
+ if ($objIdentifier instanceof ObjectIdentifier == false) {
+ $objIdentifier = new ObjectIdentifier($objIdentifier);
+ }
+ parent::__construct($objIdentifier, $value);
+ }
+
+ public function __toString()
+ {
+ return $this->children[0].': '.$this->children[1];
+ }
+}
diff --git a/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RDNString.php b/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RDNString.php
new file mode 100644
index 0000000..e95e7ac
--- /dev/null
+++ b/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RDNString.php
@@ -0,0 +1,37 @@
+<?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\Composite;
+
+use FG\ASN1\Universal\PrintableString;
+use FG\ASN1\Universal\IA5String;
+use FG\ASN1\Universal\UTF8String;
+
+class RDNString extends RelativeDistinguishedName
+{
+ /**
+ * @param string|\FG\ASN1\Universal\ObjectIdentifier $objectIdentifierString
+ * @param string|\FG\ASN1\ASNObject $value
+ */
+ public function __construct($objectIdentifierString, $value)
+ {
+ if (PrintableString::isValid($value)) {
+ $value = new PrintableString($value);
+ } else {
+ if (IA5String::isValid($value)) {
+ $value = new IA5String($value);
+ } else {
+ $value = new UTF8String($value);
+ }
+ }
+
+ parent::__construct($objectIdentifierString, $value);
+ }
+}
diff --git a/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RelativeDistinguishedName.php b/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RelativeDistinguishedName.php
new file mode 100644
index 0000000..4185f41
--- /dev/null
+++ b/vendor/fgrosse/phpasn1/lib/ASN1/Composite/RelativeDistinguishedName.php
@@ -0,0 +1,50 @@
+<?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\Composite;
+
+use FG\ASN1\Exception\NotImplementedException;
+use FG\ASN1\ASNObject;
+use FG\ASN1\Universal\Set;
+
+class RelativeDistinguishedName extends Set
+{
+ /**
+ * @param string|\FG\ASN1\Universal\ObjectIdentifier $objIdentifierString
+ * @param \FG\ASN1\ASNObject $value
+ */
+ public function __construct($objIdentifierString, ASNObject $value)
+ {
+ // TODO: This does only support one element in the RelativeDistinguishedName Set but it it is defined as follows:
+ // RelativeDistinguishedName ::= SET SIZE (1..MAX) OF AttributeTypeAndValue
+ parent::__construct(new AttributeTypeAndValue($objIdentifierString, $value));
+ }
+
+ public function getContent()
+ {
+ /** @var \FG\ASN1\ASNObject $firstObject */
+ $firstObject = $this->children[0];
+ return $firstObject->__toString();
+ }
+
+ /**
+ * At the current version this code can not work since the implementation of Construct requires
+ * the class to support a constructor without arguments.
+ *
+ * @deprecated this function is not yet implemented! Feel free to submit a pull request on github
+ * @param string $binaryData
+ * @param int $offsetIndex
+ * @throws NotImplementedException
+ */
+ public static function fromBinary(&$binaryData, &$offsetIndex = 0)
+ {
+ throw new NotImplementedException();
+ }
+}