/** * * @param UnspecifiedType $el * @return self */ public static function fromASN1(UnspecifiedType $el) { $seq = $el->asSequence(); $authority = null; if ($seq->hasTagged(0)) { $authority = GeneralNames::fromASN1($seq->getTagged(0)->asImplicit(Element::TYPE_SEQUENCE)->asSequence()); } $name = GeneralName::fromASN1($seq->getTagged(1)->asExplicit()->asTagged()); return new self($name, $authority); }
/** * Initialize from ASN.1. * * @param Sequence $seq * @throws \UnexpectedValueException * @return self */ public static function fromASN1(Sequence $seq) { if (!count($seq)) { throw new \UnexpectedValueException("GeneralNames must have at least one GeneralName."); } $names = array_map(function (UnspecifiedType $el) { return GeneralName::fromASN1($el->asTagged()); }, $seq->elements()); return new self(...$names); }
public static function fromASN1(UnspecifiedType $el) { $seq = $el->asSequence(); $service = GeneralName::fromASN1($seq->at(0)->asTagged()); $ident = GeneralName::fromASN1($seq->at(1)->asTagged()); $auth_info = null; if ($seq->has(2, Element::TYPE_OCTET_STRING)) { $auth_info = $seq->at(2)->asString()->string(); } return new static($service, $ident, $auth_info); }
/** * Initialize from ASN.1. * * @param Sequence $seq * @return self */ public static function fromASN1(Sequence $seq) { $base = GeneralName::fromASN1($seq->at(0)->asTagged()); $min = 0; $max = null; if ($seq->hasTagged(0)) { $min = $seq->getTagged(0)->asImplicit(Element::TYPE_INTEGER)->asInteger()->number(); } if ($seq->hasTagged(1)) { $max = $seq->getTagged(1)->asImplicit(Element::TYPE_INTEGER)->asInteger()->number(); } return new self($base, $min, $max); }
public static function fromChosenASN1(TaggedType $el) { return new self(GeneralName::fromASN1($el)); }