code: def get_identity(self, name_id, entities=None,
                       check_not_on_or_after=True):
          
          if not entities:
              try:
                  cni = code(name_id)
                  entities = self._db[cni].keys()
              except KeyError:
                  return {}, []
  
          res = {}
          oldees = []
          for entity_id in entities:
              try:
                  info = self.get(name_id, entity_id, check_not_on_or_after)
              except ToOld:
                  oldees.append(entity_id)
                  continue
  
              if not info:
                  oldees.append(entity_id)
                  continue
  
              for key, vals in info["ava"].items():
                  try:
                      tmp = set(res[key]).union(set(vals))
                      res[key] = list(tmp)
                  except KeyError:
                      res[key] = vals
          return res, oldees
docs: Get all the identity information that has been received and
          are still valid about the subject.
  
          :param name_id: The subject identifier, a NameID instance
          :param entities: The identifiers of the entities whoes assertions are
              interesting. If the list is empty all entities are interesting.
          :return: A 2-tuple consisting of the identity information (a
              dictionary of attributes and values) and the list of entities
              whoes information has timed out.