code: func (s *Store) RemoveRecipient(ctx context.Context, id string) error {
  	keys, err := s.crypto.FindPublicKeys(ctx, id)
  	if err != nil {
  		out.Cyan(ctx, "Warning: Failed to get GPG Key Info for %s: %s", id, err)
  	}
  
  	rs, err := s.GetRecipients(ctx, "")
  	if err != nil {
  		return errors.Wrapf(err, "failed to read recipient list")
  	}
  
  	nk := make([]string, 0, len(rs)-1)
  RECIPIENTS:
  	for _, k := range rs {
  		if k == id {
  			continue RECIPIENTS
  		}
  		// if the key is available locally we can also match the id against
  		// the fingerprint
  		for _, key := range keys {
  			if strings.HasSuffix(key, k) {
  				continue RECIPIENTS
  			}
  		}
  		nk = append(nk, k)
  	}
  
  	if len(rs) == len(nk) {
  		return errors.Errorf("recipient not in store")
  	}
  
  	if err := s.saveRecipients(ctx, nk, "Removed Recipient "+id, true); err != nil {
  		return errors.Wrapf(err, "failed to save recipients")
  	}
  
  	return s.reencrypt(WithReason(ctx, "Removed Recipient "+id))
  }
docs: // RemoveRecipient will remove the given recipient from the store
  // but if this key is not available on this machine we
  // just try to remove it literally