Group Lines
There is not yet an easy way to access groups configured in the gpg.conf file from within GPGME. As a consequence these central groupings of keys cannot be shared amongst multiple programs, such as MUAs readily.
The following code, however, provides a work-around for obtaining this information in Python.
import subprocess lines = subprocess.getoutput("gpgconf --list-options gpg").splitlines() for i in range(len(lines)): if lines[i].startswith("group") is True: line = lines[i] else: pass groups = line.split(":")[-1].replace('"', '').split(',') group_lines = [] group_lists = [] for i in range(len(groups)): group_lines.append(groups[i].split("=")) group_lists.append(groups[i].split("=")) for i in range(len(group_lists)): group_lists[i][1] = group_lists[i][1].split()
The result of that code is that group_lines
is a list of lists where
group_lines[i][0]
is the name of the group and
group_lines[i][1]
is the key IDs of the group as a string.
The group_lists
result is very similar in that it is a list of lists. The
first part, group_lists[i][0]
matches group_lines[i][0]
as
the name of the group, but group_lists[i][1]
is the key IDs of the group as
a string.
To use this code as a module use:
from groups import group_lists
A demonstration of using the groups.py module is also available in the form of the executable mutt-groups.py script. This second script reads all the group entries in a user's gpg.conf file and converts them into crypt-hooks suitable for use with the Mutt and Neomutt mail clients.