Пример #1
0
 /**
  *
  * @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);
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 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);
 }
Пример #4
0
 /**
  * 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);
 }
Пример #5
0
 public static function fromChosenASN1(TaggedType $el)
 {
     return new self(GeneralName::fromASN1($el));
 }