gpg: Prepare revocation keys for use with v5 keys.
authorWerner Koch <wk@gnupg.org>
Tue, 4 Dec 2018 14:43:19 +0000 (15:43 +0100)
committerWerner Koch <wk@gnupg.org>
Tue, 4 Dec 2018 14:43:19 +0000 (15:43 +0100)
commitc6e2ee020784de63edfa83c76095e086eae49eef
tree54c84e99311f06dc18cf38dfea1794a2e984b87e
parentba46a359b9d6549b74ec8401ea39bad434d87564
gpg: Prepare revocation keys for use with v5 keys.

* g10/packet.h (struct revocation_key): Add field 'fprlen'.
* g10/parse-packet.c (parse_revkeys): Set fprlen and allow for v5
keys.  Also fix reading of unitialized data at place where
MAX_FINGERPRINT_LEN is used.
* g10/revoke.c (gen_desig_revoke): Allow for v5 keys and use fprlen.
Do an explicit compare to avoid reading unitialized data.
* g10/sig-check.c (check_revocation_keys): Use the fprlen.
* g10/getkey.c (merge_selfsigs_main): Do an explicit copy to avoid
reading unitialized data.
* g10/import.c (revocation_present): Use fprlen.
* g10/keyedit.c (show_key_with_all_names): Use fprlen.
(menu_addrevoker): Use fprlen.  Allow for v5 keys.
* g10/keygen.c (keygen_add_revkey): Use fprlen.
(parse_revocation_key): Allow for v5 keys.
* g10/keyid.c (keyid_from_fingerprint): Allow for v5 keys.  Print a
better error message in case of bogus fingerprints.
* g10/keylist.c (print_revokers): Use fprlen.
--

The reading of uninitialized data is harmless but we better fix it to
make valgrind happy.  More serious was that we always passed
MAX_FINGERPRINT_LEN but we will need to support 20 and 32 octet
fingerprints and MAX_FINGERPRINT_LEN would be too large for a v4.

Signed-off-by: Werner Koch <wk@gnupg.org>
g10/getkey.c
g10/import.c
g10/keyedit.c
g10/keygen.c
g10/keyid.c
g10/keylist.c
g10/packet.h
g10/parse-packet.c
g10/revoke.c
g10/sig-check.c