protected static function _fromDER($data, $critical)
 {
     $policies = array_map(function (UnspecifiedType $el) {
         return PolicyInformation::fromASN1($el->asSequence());
     }, Sequence::fromDER($data)->elements());
     if (!count($policies)) {
         throw new \UnexpectedValueException("certificatePolicies must contain" . " at least one PolicyInformation.");
     }
     return new self($critical, ...$policies);
 }