gpg: Refresh expired keys originating from the WKD.
authorWerner Koch <wk@gnupg.org>
Tue, 28 Aug 2018 13:22:35 +0000 (15:22 +0200)
committerWerner Koch <wk@gnupg.org>
Tue, 28 Aug 2018 13:22:35 +0000 (15:22 +0200)
commit7f172404bfcf719b9b1af4a182d4803525ebff7c
treeb0cf601d2819c4d5e402b0350d1a60ef185e18f0
parentdb67ccb759426c1173761574b14bdfe6a76394c2
gpg: Refresh expired keys originating from the WKD.

* g10/getkey.c (getkey_ctx_s): New field found_via_akl.
(get_pubkey_byname): Set it.
(only_expired_enc_subkeys): New.
(get_best_pubkey_byname): Add support to refresh expired keys from the
WKD.
--

A little drawback of that code is that if the WKD has no update for an
expired key each access of the key will trigger a WKD lookup (unless
cached by the dirmngr).  To avoid this we need to record the last time
we have checked for an update but that would in turn require that we
update the keyring for each check.  We defer this until we have a
better key database which allows for fast updates of meta data.

Testing the code is currently a bit cumbersome because it requires to
update a key in the WKD several times.  Eventually we we need a
network emulation layer to provide sample data for the regression
tests.

GnuPG-bug-id: 2917
Signed-off-by: Werner Koch <wk@gnupg.org>
g10/getkey.c
g10/import.c