aboutsummaryrefslogtreecommitdiffstats
path: root/g10/mainproc.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/mainproc.c')
-rw-r--r--g10/mainproc.c37
1 files changed, 32 insertions, 5 deletions
diff --git a/g10/mainproc.c b/g10/mainproc.c
index 02a423804..9023168b2 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -1275,14 +1275,13 @@ check_sig_and_print( CTX c, KBNODE node )
}
if( !rc || rc == G10ERR_BAD_SIGN ) {
KBNODE un, keyblock;
- char *us;
int count=0;
+ char keyid_str[50];
keyblock = get_pubkeyblock( sig->keyid );
- us = get_long_user_id_string( sig->keyid );
- write_status_text( rc? STATUS_BADSIG : STATUS_GOODSIG, us );
- m_free(us);
+ sprintf (keyid_str, "%08lX%08lX [uncertain] ",
+ (ulong)sig->keyid[0], (ulong)sig->keyid[1]);
/* find and print the primary user ID */
for( un=keyblock; un; un = un->next ) {
@@ -1293,6 +1292,13 @@ check_sig_and_print( CTX c, KBNODE node )
if ( !un->pkt->pkt.user_id->is_primary )
continue;
+ keyid_str[17] = 0; /* cut off the "[uncertain]" part */
+ write_status_text_and_buffer (rc? STATUS_BADSIG:STATUS_GOODSIG,
+ keyid_str,
+ un->pkt->pkt.user_id->name,
+ un->pkt->pkt.user_id->len,
+ -1 );
+
log_info(rc? _("BAD signature from \"")
: _("Good signature from \""));
print_utf8_string( log_stream(), un->pkt->pkt.user_id->name,
@@ -1301,9 +1307,30 @@ check_sig_and_print( CTX c, KBNODE node )
count++;
}
if( !count ) { /* just in case that we have no userid */
+ for( un=keyblock; un; un = un->next ) {
+ if( un->pkt->pkttype == PKT_USER_ID )
+ break;
+ }
+
+ if (opt.always_trust || !un)
+ keyid_str[17] = 0; /* cut off the "[uncertain]" part */
+
+ write_status_text_and_buffer (rc? STATUS_BADSIG:STATUS_GOODSIG,
+ keyid_str,
+ un? un->pkt->pkt.user_id->name:"[?]",
+ un? un->pkt->pkt.user_id->len:3,
+ -1 );
+
log_info(rc? _("BAD signature from \"")
: _("Good signature from \""));
- fputs("[?]\"\n", log_stream() );
+ if (!opt.always_trust && un) {
+ fputs(_("[uncertain]"), log_stream() );
+ putc(' ', log_stream() );
+ }
+ print_utf8_string( log_stream(),
+ un? un->pkt->pkt.user_id->name:"[?]",
+ un? un->pkt->pkt.user_id->len:3 );
+ fputs("\"\n", log_stream() );
}
/* If we have a good signature and already printed