gnupg/doc
Werner Koch a8895c99a7
gpg: Revamp reading and writing of ring trust packets.
* g10/parse-packet.c (parse_trust): Rename to ...
(parse_ring_trust): this.  Change args and implement new ring trust
packet format.
(parse): Add special ring trust packet handling.
* g10/packet.h (PKT_user_id): New fields KEYUPDATE, UPDATEURL, and
KEYSRC.
(PKT_public_key): Ditto.
(RING_TRUST_SIG, RING_TRUST_KEY, RING_TRUST_UID): New consts.
(PKT_ring_trust): New.
(struct packet_struct): Remove member RING_TRUST.
(strcu parse_packet_ctx_s): Add field SKIP_META.
(init_parse_packet): Init SKIPT_META.
* g10/free-packet.c (release_public_key_parts): Free UDPATEURL.
(free_user_id): Ditto.
* g10/mainproc.c (list_node): Remove printing of non-documented "rtv"
lines.
* g10/build-packet.c (build_packet_and_meta): New.
(do_ring_trust): New.
* g10/export.c (write_keyblock_to_output): Use build_packet_and_meta
in backup mode.
(do_export_one_keyblock): Ditto.
* g10/import.c (read_block): Add arg WITH_META.  Skip ring trust
packets if that ism not set.
(import): Call read_block WITH_META in restore mode.
* g10/keydb.h (KEYSRC_UNKNOWN, KEYSRC_FILE, KEYSRC_KS, KEYSRC_PREF_KS)
(KEYSRC_WKD, KEYSRC_WKD_SD, KEYSRC_DANE): New constants.  They are not
yet used, though.
* g10/keydb.c (parse_keyblock_image): Allow ring trust packets.
(build_keyblock_image): Ditto.  Use build_packet_and_meta.
* g10/keyring.c (keyring_get_keyblock): Remove specila treatment of
ring trust packets.
(write_keyblock): Use build_packet_and_meta.  Remove special treatment
of ring trust packets and initialization of the signature caches.
--

This patch introduced the framework to store meta data for keys and
user ids in the keyrings/keyboxes.  Ring trust packets are
implementation defined and have always been used in gpg to cache the
signature verification status.

Ring trust packets are only exported with the export option "backup"
and only imported with the import option "restore".

The new code uses a cleaner way to handle the ring trust packets: When
the parser reads a ring trust packet and the previously read packet
matches the type of that ring trust packet, the information is stored
in that previously read packet (signature, user id, or primary key)
and the next packet is read immediately.  Thus only the parser sees
the ring trust packets.  Ring trust packets are written by using the
new function build_packet_and_meta instead of build_packet.  That
function writes a ring trust packet when the needed information is
available.

As a side-effect of this patch the signature status cache works again
and "gpg --check-sigs" is thus much faster.

Signed-off-by: Werner Koch <wk@gnupg.org>
2017-03-30 09:07:02 +02:00
..
examples systemd-user: Enable "systemctl --user reload {dirmngr,gpg-agent}" 2017-01-10 17:16:38 -05:00
ChangeLog-2011 Generate the ChangeLog from commit logs. 2011-12-01 11:09:02 +01:00
DCO Add missing file. 2013-04-17 11:26:27 +02:00
DETAILS gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
FAQ doc: Fix FAQ stub and remove faq build rules. 2015-03-04 15:10:52 +01:00
HACKING gpg: Remove unused stuff. 2017-03-20 08:40:21 +01:00
KEYSERVER Migrated more stuff to doc/ 2006-08-21 20:20:23 +00:00
Makefile.am gpgconf: New command --apply-profile. 2016-12-16 16:05:02 +01:00
Notes Fix more spelling 2016-09-17 16:00:37 +09:00
OpenPGP gpg: Remove all support for v3 keys and always create v4-signatures. 2014-10-17 13:32:16 +02:00
TRANSLATE Clean up word replication. 2017-02-21 13:11:46 -05:00
a-decade-of-gnupg.txt doc: Typo fixes. 2014-12-14 12:15:21 +01:00
announce-2.0.txt sm/ 2006-11-14 10:23:21 +00:00
announce-2.1.txt Reword feature description. 2016-08-03 17:00:40 +02:00
com-certs.pem Remove all expired common CA certificates. 2014-11-04 21:47:03 +01:00
contrib.texi doc: Fix Martin Hellman's name. 2016-09-20 09:32:25 +09:00
debugging.texi g10,sm: Spell out --gen-key. 2016-12-13 17:30:55 +01:00
dirmngr.texi Clean up word replication. 2017-02-21 13:11:46 -05:00
faq.org Clean up word replication. 2017-02-21 13:11:46 -05:00
fdl.texi Taken from NewPG 2003-01-09 13:24:01 +00:00
glossary.texi doc: Fix typos. 2016-09-20 09:56:22 +09:00
gnupg-badge-openpgp.eps * preset-passphrase.c (preset_passphrase): Handle --passphrase. 2004-12-21 19:05:15 +00:00
gnupg-badge-openpgp.jpg * preset-passphrase.c (preset_passphrase): Handle --passphrase. 2004-12-21 19:05:15 +00:00
gnupg-badge-openpgp.pdf Made make distcheck work again 2006-06-20 17:47:10 +00:00
gnupg-card-architecture.fig Changed to GPLv3. 2007-07-04 19:49:40 +00:00
gnupg-logo-tr.png Beautified the online html manual 2011-08-12 14:40:47 +02:00
gnupg-logo.eps Add new logo. 2007-03-08 18:31:56 +00:00
gnupg-logo.pdf doc: Add gnupg-logo.pdf 2014-07-03 11:03:22 +02:00
gnupg-logo.png doc: Improve the rendering of the manual 2014-06-25 11:15:45 +02:00
gnupg-module-overview.svg doc: Add a gnupg-module-overview picture. 2016-02-16 13:01:17 +01:00
gnupg.texi doc: Add files and envvars to a new index. 2016-06-14 14:58:00 +02:00
gnupg7.texi Include dirmngr manual 2010-06-10 10:39:44 +00:00
gpg-agent.texi agent: New option --enable-extended-key-format. 2017-03-24 10:35:36 +01:00
gpg.texi gpg: New command --quick-set-primary-uid. 2017-03-21 15:09:30 +01:00
gpgsm.texi Clean up word replication. 2017-02-21 13:11:46 -05:00
gpgv.texi gpgv: New options --log-file and --debug 2017-02-24 13:23:16 +01:00
gpl.texi Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.be.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.ca.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.cs.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.da.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.de.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.el.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.eo.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.es.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.et.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.fi.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.fr.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.gl.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.hu.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.id.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.it.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.ja.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.nb.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.pl.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.pt.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.pt_BR.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.ro.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.ru.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.sk.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.sv.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.tr.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.zh_CN.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
help.zh_TW.txt Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
howto-create-a-server-cert.texi g10,sm: Spell out --gen-key. 2016-12-13 17:30:55 +01:00
howtos.texi Add a howto section. 2007-05-08 13:59:41 +00:00
instguide.texi doc: Do not end section names with "." 2016-09-20 16:15:19 +09:00
mkdefsinc.c doc: Escape file names in generated macros. 2016-07-06 19:35:15 +02:00
mksamplekeys Adjust awk to not add trailing whitespace. 2012-11-30 12:43:34 -05:00
opt-homedir.texi doc: Fix typos. 2016-09-20 09:56:22 +09:00
qualified.txt add new certifciates 2008-06-25 11:14:48 +00:00
samplekeys.asc Refresh sample keys 2012-11-30 12:47:49 -05:00
scdaemon.texi Clean up word replication. 2017-02-21 13:11:46 -05:00
see-also-note.texi More man pages. Added include files for 2 common paragraphs. 2006-08-18 13:05:39 +00:00
specify-user-id.texi doc: Fix full stops. 2016-09-20 13:02:39 +09:00
sysnotes.texi doc: Do not end section names with "." 2016-09-20 16:15:19 +09:00
texi.css Beautified the online html manual 2011-08-12 14:40:47 +02:00
tools.texi gpgconf: Allow "all" for --launch, --kill, and --reload. 2017-01-18 10:07:53 +01:00
vuln-announce-2007-multiple-message.txt Clean up word replication. 2017-02-21 13:11:46 -05:00
vuln-announce-2010-kbx-realloc.txt Some work on the dirmngr 2010-07-23 16:16:14 +00:00
vuln-announce-cve-2006-6235.txt 2006-12-06 16:38:34 +00:00
whats-new-in-2.1.txt Clean up word replication. 2017-02-21 13:11:46 -05:00
yat2m.c doc: minor fix for @xref. 2016-09-20 15:41:36 +09:00