aboutsummaryrefslogtreecommitdiffstats
path: root/g10/passphrase.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/passphrase.c')
-rw-r--r--g10/passphrase.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/g10/passphrase.c b/g10/passphrase.c
index c3260b69d..67db368e4 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -521,12 +521,29 @@ passphrase_to_dek( u32 *keyid, int pubkey_algo,
if( !next_pw && is_status_enabled() ) {
char buf[50];
+
if( keyid ) {
- sprintf( buf, "%08lX%08lX", (ulong)keyid[0], (ulong)keyid[1] );
- if( keyid[2] && keyid[3] && keyid[0] != keyid[2]
- && keyid[1] != keyid[3] )
- sprintf( buf+strlen(buf), " %08lX%08lX %d 0",
- (ulong)keyid[2], (ulong)keyid[3], pubkey_algo );
+ u32 used_kid[2];
+ char *us;
+
+ if( keyid[2] && keyid[3] ) {
+ used_kid[0] = keyid[2];
+ used_kid[1] = keyid[3];
+ }
+ else {
+ used_kid[0] = keyid[0];
+ used_kid[1] = keyid[1];
+ }
+
+ us = get_long_user_id_string( keyid );
+ write_status_text( STATUS_USERID_HINT, us );
+ m_free(us);
+
+ sprintf( buf, "%08lX%08lX %08lX%08lX %d 0",
+ (ulong)keyid[0], (ulong)keyid[1],
+ (ulong)used_kid[0], (ulong)used_kid[1],
+ pubkey_algo );
+
write_status_text( STATUS_NEED_PASSPHRASE, buf );
}
else {