code: func getNames(sub pkix.Name) []Name {
  	// anonymous func for finding the max of a list of interger
  	max := func(v1 int, vn ...int) (max int) {
  		max = v1
  		for i := 0; i < len(vn); i++ {
  			if vn[i] > max {
  				max = vn[i]
  			}
  		}
  		return max
  	}
  
  	nc := len(sub.Country)
  	norg := len(sub.Organization)
  	nou := len(sub.OrganizationalUnit)
  	nl := len(sub.Locality)
  	np := len(sub.Province)
  
  	n := max(nc, norg, nou, nl, np)
  
  	names := make([]Name, n)
  	for i := range names {
  		if i < nc {
  			names[i].C = sub.Country[i]
  		}
  		if i < norg {
  			names[i].O = sub.Organization[i]
  		}
  		if i < nou {
  			names[i].OU = sub.OrganizationalUnit[i]
  		}
  		if i < nl {
  			names[i].L = sub.Locality[i]
  		}
  		if i < np {
  			names[i].ST = sub.Province[i]
  		}
  	}
  	return names
  }
docs: // getNames returns an array of Names from the certificate
  // It onnly cares about Country, Organization, OrganizationalUnit, Locality, Province