mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
gpgconf: Add config file for Windows Registry dumps.
* tools/gpgconf.c (show_registry_entries_from_file): New. (show_configs): Call it. * doc/examples/gpgconf.rnames: New. * doc/Makefile.am (examples): Add it.
This commit is contained in:
parent
171725c971
commit
5fb2306b97
@ -25,6 +25,7 @@ examples = examples/README examples/scd-event examples/trustlist.txt \
|
||||
examples/VS-NfD.prf examples/Automatic.prf \
|
||||
examples/debug.prf examples/qualified.txt \
|
||||
examples/common.conf \
|
||||
examples/gpgconf.rnames examples/gpgconf.conf \
|
||||
examples/systemd-user/README \
|
||||
examples/systemd-user/dirmngr.service \
|
||||
examples/systemd-user/dirmngr.socket \
|
||||
@ -33,7 +34,7 @@ examples = examples/README examples/scd-event examples/trustlist.txt \
|
||||
examples/systemd-user/gpg-agent-ssh.socket \
|
||||
examples/systemd-user/gpg-agent-browser.socket \
|
||||
examples/systemd-user/gpg-agent-extra.socket \
|
||||
examples/gpgconf.conf examples/pwpattern.list
|
||||
examples/pwpattern.list
|
||||
|
||||
helpfiles = help.txt help.be.txt help.ca.txt help.cs.txt \
|
||||
help.da.txt help.de.txt help.el.txt help.eo.txt \
|
||||
|
12
doc/examples/gpgconf.rnames
Normal file
12
doc/examples/gpgconf.rnames
Normal file
@ -0,0 +1,12 @@
|
||||
# gpgconf-rnames.lst
|
||||
# Additional registry settings to be shown by "gpgconf -X".
|
||||
#
|
||||
# Example: HKCU\Software\GNU\GnuPG:FooBar
|
||||
#
|
||||
# HKCU := The class. Other supported classes are HKLM, HKCR, HKU,
|
||||
# and HKCC. If no class is given and the string thus starts
|
||||
# with a backslash HKCU with a fallback to HKLM is used.
|
||||
# Software\GNU\GnuPG := The actual key.
|
||||
# FooBar := The name of the item. if a name is not given the default
|
||||
# value is used.
|
||||
#
|
@ -1430,8 +1430,78 @@ show_other_registry_entries (estream_t outfp)
|
||||
es_fprintf (outfp, "###\n");
|
||||
xfree (namebuf);
|
||||
}
|
||||
|
||||
|
||||
/* Print registry entries take from a configuration file. */
|
||||
static void
|
||||
show_registry_entries_from_file (estream_t outfp)
|
||||
{
|
||||
gpg_error_t err;
|
||||
char *fname;
|
||||
estream_t fp;
|
||||
char *line = NULL;
|
||||
size_t length_of_line = 0;
|
||||
size_t maxlen;
|
||||
ssize_t len;
|
||||
char *value = NULL;
|
||||
int from_hklm;
|
||||
int any = 0;
|
||||
|
||||
fname = make_filename (gnupg_datadir (), "gpgconf.rnames", NULL);
|
||||
fp = es_fopen (fname, "r");
|
||||
if (!fp)
|
||||
{
|
||||
err = gpg_error_from_syserror ();
|
||||
if (gpg_err_code (err) != GPG_ERR_ENOENT)
|
||||
log_error ("error opening '%s': %s\n", fname, gpg_strerror (err));
|
||||
goto leave;
|
||||
}
|
||||
|
||||
maxlen = 2048; /* Set limit. */
|
||||
while ((len = es_read_line (fp, &line, &length_of_line, &maxlen)) > 0)
|
||||
{
|
||||
if (!maxlen)
|
||||
{
|
||||
err = gpg_error (GPG_ERR_LINE_TOO_LONG);
|
||||
log_error ("error reading '%s': %s\n", fname, gpg_strerror (err));
|
||||
goto leave;
|
||||
}
|
||||
trim_spaces (line);
|
||||
if (*line == '#')
|
||||
continue;
|
||||
|
||||
xfree (value);
|
||||
value = read_w32_reg_string (line, &from_hklm);
|
||||
if (!value)
|
||||
continue;
|
||||
|
||||
if (!any)
|
||||
{
|
||||
any = 1;
|
||||
es_fprintf (outfp, "### Taken from gpgconf.rnames:\n");
|
||||
}
|
||||
|
||||
es_fprintf (outfp, "### %s\n### ->%s<-%s\n", line, value,
|
||||
from_hklm? " [hklm]":"");
|
||||
|
||||
}
|
||||
if (len < 0 || es_ferror (fp))
|
||||
{
|
||||
err = gpg_error_from_syserror ();
|
||||
log_error ("error reading '%s': %s\n", fname, gpg_strerror (err));
|
||||
}
|
||||
|
||||
leave:
|
||||
if (any)
|
||||
es_fprintf (outfp, "###\n");
|
||||
xfree (value);
|
||||
xfree (line);
|
||||
es_fclose (fp);
|
||||
xfree (fname);
|
||||
}
|
||||
#endif /*HAVE_W32_SYSTEM*/
|
||||
|
||||
|
||||
/* Show all config files. */
|
||||
static void
|
||||
show_configs (estream_t outfp)
|
||||
@ -1539,6 +1609,7 @@ show_configs (estream_t outfp)
|
||||
if (!any)
|
||||
es_fprintf (outfp, "###\n");
|
||||
show_other_registry_entries (outfp);
|
||||
show_registry_entries_from_file (outfp);
|
||||
#endif /*HAVE_W32_SYSTEM*/
|
||||
|
||||
free_strlist (list);
|
||||
|
Loading…
x
Reference in New Issue
Block a user