1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-06-09 23:39:51 +02:00
gnupg/g10
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
..
armor.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
build-packet.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
call-agent.c agent,g10: Remove redundant SERIALNO request. 2017-03-16 14:32:51 +09:00
call-agent.h agent,g10: Remove redundant SERIALNO request. 2017-03-16 14:32:51 +09:00
call-dirmngr.c g10: Move more flags into the flag bitfield. 2017-03-08 13:31:10 +01:00
call-dirmngr.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
card-util.c g10: Support specifying SERIALNO for --card-status. 2017-03-27 14:02:01 +09:00
ChangeLog-2011 Spelling: correct spelling of "passphrase". 2016-11-02 12:53:58 +01:00
cipher.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
compress-bz2.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
compress.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
cpr.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
dearmor.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
decrypt-data.c g10: Fix memory leak. 2017-03-28 12:11:02 +02:00
decrypt.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
dek.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
delkey.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
dirmngr-conf.skel dirmngr: Do not put a keyserver into a new dirmngr.conf 2017-03-08 11:35:53 +01:00
distsigkey.gpg build: Update distributed signature key. 2016-12-20 10:22:05 +01:00
ecdh.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
encrypt.c gpg: Extend free_packet to handle a packet parser context. 2017-03-29 12:08:31 +02:00
exec.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
exec.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
export.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
filter.h Remove -I option to common. 2017-03-07 20:25:54 +09:00
free-packet.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
getkey.c g10: Move more flags into the flag bitfield. 2017-03-08 13:31:10 +01:00
gpg-w32info.rc w32: Add manifest to gpg. 2015-02-04 09:15:34 +01:00
gpg.c g10: Support specifying SERIALNO for --card-status. 2017-03-27 14:02:01 +09:00
gpg.h doc: Add comment to make clear that KBNODE is deprecated. 2016-11-15 16:29:08 +01:00
gpg.w32-manifest.in w32: Add manifest to gpg. 2015-02-04 09:15:34 +01:00
gpgcompose.c Replace use of variable-length-arrays. 2017-01-02 13:29:18 +01:00
gpgsql.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
gpgsql.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
gpgv.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
helptext.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
import.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
kbnode.c gpg: Extend free_packet to handle a packet parser context. 2017-03-29 12:08:31 +02:00
keydb.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
keydb.h gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
keyedit.c gpg: Extend free_packet to handle a packet parser context. 2017-03-29 12:08:31 +02:00
keygen.c gpg: Extend free_packet to handle a packet parser context. 2017-03-29 12:08:31 +02:00
keyid.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
keylist.c gpg: Prepare for listing last_update and key origin data. 2017-03-28 12:32:05 +02:00
keyring.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
keyring.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
keyserver-internal.h Remove -I option to common. 2017-03-07 20:25:54 +09:00
keyserver.c g10: Move more flags into the flag bitfield. 2017-03-08 13:31:10 +01:00
main.h g10: Support specifying SERIALNO for --card-status. 2017-03-27 14:02:01 +09:00
mainproc.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
Makefile.am Remove -I option to common. 2017-03-07 20:25:54 +09:00
mdfilter.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
migrate.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
misc.c gpg: Add new field no 18 to the colon listing. 2017-03-20 10:09:40 +01:00
openfile.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
options.h gpg: Remove unused stuff. 2017-03-20 08:40:21 +01:00
options.skel gpg: Rework gpg-conf.skel 2016-01-22 10:54:10 +01:00
packet.h gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
parse-packet.c gpg: Revamp reading and writing of ring trust packets. 2017-03-30 09:07:02 +02:00
passphrase.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
photoid.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
photoid.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
pkclist.c g10: Move more flags into the flag bitfield. 2017-03-08 13:31:10 +01:00
pkglue.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
pkglue.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
plaintext.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
progress.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
pubkey-enc.c g10: Move more flags into the flag bitfield. 2017-03-08 13:31:10 +01:00
pubring.asc Update copyright notices for 2017. 2017-01-23 19:16:55 +01:00
revoke.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
rmd160.c Clean up word replication. 2017-02-21 13:11:46 -05:00
rmd160.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
seckey-cert.c More change for common. 2017-03-07 20:32:09 +09:00
server.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
seskey.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
sig-check.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
sign.c gpg: Extend free_packet to handle a packet parser context. 2017-03-29 12:08:31 +02:00
skclist.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
sqrtu32.c Update copyright notices for 2017. 2017-01-23 19:16:55 +01:00
sqrtu32.h g10: Add missing sqrtu32.h and sqrtu32.c. 2016-09-07 08:55:17 +02:00
t-keydb-get-keyblock.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-keydb-get-keyblock.gpg gpg: Correctly handle keyblocks followed by legacy keys. 2015-11-17 14:53:03 +01:00
t-keydb-keyring.kbx g10: Add test for keydb as well as new testing infrastructure. 2015-09-02 15:08:57 +02:00
t-keydb.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-rmd160.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
t-stutter-data.asc gpg: Add a new test. 2016-03-08 14:08:49 +01:00
t-stutter.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
tdbdump.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
tdbio.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
tdbio.h Remove -I option to common. 2017-03-07 20:25:54 +09:00
test-stubs.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
test.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
textfilter.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
tofu.c gpg: Make sure the conflict set includes the current key. 2017-03-17 14:35:00 +01:00
tofu.h g10: Remove dead code. 2016-12-06 12:16:56 +01:00
trust.c g10: Move more flags into the flag bitfield. 2017-03-08 13:31:10 +01:00
trustdb.c g10: Move more flags into the flag bitfield. 2017-03-08 13:31:10 +01:00
trustdb.h gpg: Fix (quick) key generation with --always-trust. 2017-03-02 14:50:23 +01:00
verify.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
zlib-riscos.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00