aboutsummaryrefslogtreecommitdiffstats
path: root/g10/trustdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/trustdb.c')
-rw-r--r--g10/trustdb.c15
1 files changed, 10 insertions, 5 deletions
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 );
}
/*