aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--g10/parse-packet.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/g10/parse-packet.c b/g10/parse-packet.c
index b22c63ffd..dcda8ef59 100644
--- a/g10/parse-packet.c
+++ b/g10/parse-packet.c
@@ -1621,6 +1621,7 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
int npkey, nskey;
int is_v4=0;
int rc=0;
+ u32 keyid[2];
version = iobuf_get_noeof(inp); pktlen--;
if( pkttype == PKT_PUBLIC_SUBKEY && version == '#' ) {
@@ -1718,7 +1719,6 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
unknown_pubkey_warning( algorithm );
}
-
if( pkttype == PKT_SECRET_KEY || pkttype == PKT_SECRET_SUBKEY ) {
PKT_secret_key *sk = pkt->pkt.secret_key;
byte temp[16];
@@ -1743,6 +1743,9 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
}
if (rc) /* one of the MPIs were bad */
goto leave;
+ if (list_mode && npkey)
+ keyid_from_sk (sk, keyid);
+
sk->protect.algo = iobuf_get_noeof(inp); pktlen--;
sk->protect.sha1chk = 0;
if( sk->protect.algo ) {
@@ -1973,8 +1976,15 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
}
if (rc)
goto leave;
+
+ if (list_mode)
+ keyid_from_pk (pk, keyid);
}
+ if (list_mode && npkey)
+ fprintf (listfp, "\tkeyid: %08lX%08lX\n",
+ (ulong) keyid[0], (ulong) keyid[1]);
+
leave:
iobuf_skip_rest(inp, pktlen, 0);
return rc;