code: def _parse_subject(subject):
      '''
      Returns a dict containing all values in an X509 Subject
      '''
      ret = {}
      nids = []
      for nid_name, nid_num in six.iteritems(subject.nid):
          if nid_num in nids:
              continue
          try:
              val = getattr(subject, nid_name)
              if val:
                  ret[nid_name] = val
                  nids.append(nid_num)
          except TypeError as err:
              log.debug("Missing attribute '%s'. Error: %s", nid_name, err)
  
      return ref _parse_subject(subject):
      '''
      Returns a dict containing all values in an X509 Subject
      '''
      ret = {}
      nids = []
      for nid_name, nid_num in six.iteritems(subject.nid):
          if nid_num in nids:
              continue
          try:
              val = getattr(subject, nid_name)
              if val:
                  ret[nid_name] = val
                  nids.append(nid_num)
          except TypeError as err:
              log.debug("Missing attribute '%s'. Error: %s", nid_name, err)
  
      return ret
docs: Returns a dict containing all values in an X509 Subject