code: func GenerateIssuerKey() ([]byte, []byte, error) {
  	rng, err := idemix.GetRand()
  	if err != nil {
  		return nil, nil, err
  	}
  	AttributeNames := []string{msp.AttributeNameOU, msp.AttributeNameRole, msp.AttributeNameEnrollmentId, msp.AttributeNameRevocationHandle}
  	key, err := idemix.NewIssuerKey(AttributeNames, rng)
  	if err != nil {
  		return nil, nil, errors.WithMessage(err, "cannot generate CA key")
  	}
  	ipkSerialized, err := proto.Marshal(key.Ipk)
  
  	return key.Isk, ipkSerialized, err
  }
docs: // GenerateIssuerKey invokes Idemix library to generate an issuer (CA) signing key pair.
  // Currently four attributes are supported by the issuer:
  // AttributeNameOU is the organization unit name
  // AttributeNameRole is the role (member or admin) name
  // AttributeNameEnrollmentId is the enrollment id
  // AttributeNameRevocationHandle contains the revocation handle, which can be used to revoke this user
  // Generated keys are serialized to bytes.