From ad55de70930543c1681b11e4bd624be074122b23 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Wed, 26 Feb 2020 12:53:22 -0500 Subject: gpg: Update --trusted-key to accept fingerprint as well as long key id. * g10/trustdb.c (tdb_register_trusted_key): accept fingerprint as well as long key ID. * doc/gpg.texi: document that --trusted-key can accept a fingerprint. -- GnuPG-bug-id: 4855 Signed-off-by: Daniel Kahn Gillmor --- g10/trustdb.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'g10/trustdb.c') diff --git a/g10/trustdb.c b/g10/trustdb.c index 64e6ec349..2c096357c 100644 --- a/g10/trustdb.c +++ b/g10/trustdb.c @@ -210,15 +210,20 @@ tdb_register_trusted_key( const char *string ) { gpg_error_t err; KEYDB_SEARCH_DESC desc; + u32 kid[2]; err = classify_user_id (string, &desc, 1); - if (err || desc.mode != KEYDB_SEARCH_MODE_LONG_KID ) + if (!err) { - log_error(_("'%s' is not a valid long keyID\n"), string ); - return; + if (desc.mode == KEYDB_SEARCH_MODE_LONG_KID) + return register_trusted_keyid(desc.u.kid); + if (desc.mode == KEYDB_SEARCH_MODE_FPR && desc.fprlen == 20) { + kid[0] = buf32_to_u32 (desc.u.fpr+12); + kid[1] = buf32_to_u32 (desc.u.fpr+16); + return register_trusted_keyid(kid); + } } - - register_trusted_keyid(desc.u.kid); + log_error(_("'%s' is not a valid long keyID or fingerprint\n"), string ); } /* -- cgit v1.2.3