/** * Initialize from ASN.1. * * @param Sequence $seq */ public static function fromASN1(Sequence $seq) { $cert_id = null; $entity_name = null; $digest_info = null; if ($seq->hasTagged(0)) { $cert_id = IssuerSerial::fromASN1($seq->getTagged(0)->asImplicit(Element::TYPE_SEQUENCE)->asSequence()); } if ($seq->hasTagged(1)) { $entity_name = GeneralNames::fromASN1($seq->getTagged(1)->asImplicit(Element::TYPE_SEQUENCE)->asSequence()); } if ($seq->hasTagged(2)) { $digest_info = ObjectDigestInfo::fromASN1($seq->getTagged(2)->asImplicit(Element::TYPE_SEQUENCE)->asSequence()); } $obj = new self($cert_id, $entity_name); $obj->_objectDigestInfo = $digest_info; return $obj; }
/** * Initialize from ASN.1. * * @param Sequence $seq * @return self */ public static function fromV2ASN1(Sequence $seq) { $issuer = null; $cert_id = null; $digest_info = null; if ($seq->has(0, Element::TYPE_SEQUENCE)) { $issuer = GeneralNames::fromASN1($seq->at(0)->asSequence()); } if ($seq->hasTagged(0)) { $cert_id = IssuerSerial::fromASN1($seq->getTagged(0)->asImplicit(Element::TYPE_SEQUENCE)->asSequence()); } if ($seq->hasTagged(1)) { $digest_info = ObjectDigestInfo::fromASN1($seq->getTagged(1)->asImplicit(Element::TYPE_SEQUENCE)->asSequence()); } $obj = new self($issuer); $obj->_baseCertificateID = $cert_id; $obj->_objectDigestInfo = $digest_info; return $obj; }