code: func (g *GPG) RecipientIDs(ctx context.Context, buf []byte) ([]string, error) {
  	_ = os.Setenv("LANGUAGE", "C")
  	recp := make([]string, 0, 5)
  
  	args := []string{"--batch", "--list-only", "--list-packets", "--no-default-keyring", "--secret-keyring", "/dev/null"}
  	cmd := exec.CommandContext(ctx, g.binary, args...)
  	cmd.Stdin = bytes.NewReader(buf)
  	out.Debug(ctx, "gpg.GetRecipients: %s %+v", cmd.Path, cmd.Args)
  
  	cmdout, err := cmd.CombinedOutput()
  	if err != nil {
  		return []string{}, err
  	}
  
  	scanner := bufio.NewScanner(bytes.NewBuffer(cmdout))
  	for scanner.Scan() {
  		line := strings.TrimSpace(scanner.Text())
  		out.Debug(ctx, "gpg Output: %s", line)
  		if !strings.HasPrefix(line, ":pubkey enc packet:") {
  			continue
  		}
  		m := splitPacket(line)
  		if keyid, found := m["keyid"]; found {
  			kl, err := g.listKeys(ctx, "public", keyid)
  			if err != nil || len(kl) < 1 {
  				continue
  			}
  			recp = append(recp, kl[0].Fingerprint)
  		}
  	}
  
  	return recp, nil
  }
docs: // RecipientIDs returns a list of recipient IDs for a given file